mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-17 07:39:17 +00:00
Move map metadata into info.json and generate map TypeScript from it (#4227)
**Add approved & assigned issue number here:** N/A — maintainer refactor. ## Description: Makes each map's `info.json` the single source of truth for map metadata — adding a map is now a folder with `image.png` + `info.json`, a `gen-maps` run, and an en.json display name. **info.json / manifest.json carry full map metadata.** Every `map-generator/assets/maps/<map>/info.json` declares `id` (the `GameMapType` enum key), `name` (the enum value — wire format, unchanged for all 94 maps), `translation_key`, `categories`, and `multiplayer_frequency` (the public-playlist weight that used to be the `FREQUENCY` record in MapPlaylist.ts). The generator validates everything and mirrors it into `resources/maps/<map>/manifest.json`. 23 stale info.json `name` values were normalized to the canonical enum value; enum values are byte-identical, so replays and stored game configs are unaffected. **The generator emits the TypeScript and discovers maps itself.** New `map-generator/codegen.go` generates `src/core/game/Maps.gen.ts` (`GameMapType`, `GameMapName`, `mapCategories`, `mapTranslationKeys`, `multiplayerFrequency` — now a full `Record<GameMapName, number>`, killing the old `Partial`) on every run; `Game.ts` re-exports it. The hardcoded map registry in `main.go` is gone — maps are auto-discovered from the `assets/maps` / `assets/test_maps` directories. MapConsistency tests fail with a "run `npm run gen-maps`" message if info.json, manifest.json, and Maps.gen.ts drift. The tracked `map-generator/map-generator` binary is rebuilt to match. **New categories: continents + world/cosmic/tournament/other, multi-category support.** `continental`/`regional`/`fantasy`/`arcade` are replaced by `featured`, `world`, `europe`, `asia`, `north_america`, `africa`, `south_america`, `oceania`, `antarctica`, `cosmic`, `tournament`, and `other`. Maps can list multiple categories, so straddlers (Black Sea, Bosphorus, Caucasus, Between Two Seas, Bering Sea/Strait, Mena, Strait of Gibraltar, Hawaii, Arctic) appear under both regions. Featured is itself a category (same 7 maps as before). MapPlaylist keeps its arcade exclusion via an explicit set. **Map picker UI.** Two tabs: **Featured** (default — featured maps plus a Favorites section when maps are starred) and **All** (one prominent collapsible bar per category with a map count, collapsed by default). The selected map is prepended to the featured grid when it lives elsewhere. `getMapName()` resolves through the generated `mapTranslationKeys`, which also fixes tourney maps never resolving a valid translation key. ## Please complete the following: - [ ] I have added screenshots for all UI updates (maintainer change — picker described above) - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory ## Please put your Discord username so you can be contacted if a bug or regression is found: evanpelle 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+11
-207
@@ -93,213 +93,17 @@ export const ColoredTeams: Record<string, Team> = {
|
||||
Nations: "Nations",
|
||||
} as const;
|
||||
|
||||
export enum GameMapType {
|
||||
World = "World",
|
||||
WorldInverted = "World Inverted",
|
||||
GiantWorldMap = "Giant World Map",
|
||||
Europe = "Europe",
|
||||
EuropeClassic = "Europe Classic",
|
||||
Mena = "Mena",
|
||||
NorthAmerica = "North America",
|
||||
SouthAmerica = "South America",
|
||||
Oceania = "Oceania",
|
||||
BlackSea = "Black Sea",
|
||||
Africa = "Africa",
|
||||
Pangaea = "Pangaea",
|
||||
Asia = "Asia",
|
||||
Mars = "Mars",
|
||||
BritanniaClassic = "Britannia Classic",
|
||||
Britannia = "Britannia",
|
||||
GatewayToTheAtlantic = "Gateway to the Atlantic",
|
||||
Australia = "Australia",
|
||||
Iceland = "Iceland",
|
||||
EastAsia = "East Asia",
|
||||
BetweenTwoSeas = "Between Two Seas",
|
||||
FaroeIslands = "Faroe Islands",
|
||||
DeglaciatedAntarctica = "Deglaciated Antarctica",
|
||||
FalklandIslands = "Falkland Islands",
|
||||
Baikal = "Baikal",
|
||||
Halkidiki = "Halkidiki",
|
||||
StraitOfGibraltar = "Strait of Gibraltar",
|
||||
Italia = "Italia",
|
||||
Japan = "Japan",
|
||||
Pluto = "Pluto",
|
||||
Montreal = "Montreal",
|
||||
NewYorkCity = "New York City",
|
||||
Achiran = "Achiran",
|
||||
BaikalNukeWars = "Baikal Nuke Wars",
|
||||
FourIslands = "Four Islands",
|
||||
Svalmel = "Svalmel",
|
||||
GulfOfStLawrence = "Gulf of St. Lawrence",
|
||||
Lisbon = "Lisbon",
|
||||
Manicouagan = "Manicouagan",
|
||||
Lemnos = "Lemnos",
|
||||
Tourney1 = "Tourney 2 Teams",
|
||||
Tourney2 = "Tourney 3 Teams",
|
||||
Tourney3 = "Tourney 4 Teams",
|
||||
Tourney4 = "Tourney 8 Teams",
|
||||
Passage = "Passage",
|
||||
Sierpinski = "Sierpinski",
|
||||
TheBox = "The Box",
|
||||
TwoLakes = "Two Lakes",
|
||||
StraitOfHormuz = "Strait of Hormuz",
|
||||
Surrounded = "Surrounded",
|
||||
Didier = "Didier",
|
||||
DidierFrance = "Didier France",
|
||||
AmazonRiver = "Amazon River",
|
||||
BosphorusStraits = "Bosphorus Straits",
|
||||
BeringStrait = "Bering Strait",
|
||||
Yenisei = "Yenisei",
|
||||
TradersDream = "Traders Dream",
|
||||
Hawaii = "Hawaii",
|
||||
Alps = "Alps",
|
||||
NileDelta = "Nile Delta",
|
||||
Arctic = "Arctic",
|
||||
SanFrancisco = "San Francisco",
|
||||
Aegean = "Aegean",
|
||||
MilkyWay = "MilkyWay",
|
||||
MareNostrum = "Mare Nostrum",
|
||||
Dyslexdria = "Dyslexdria",
|
||||
GreatLakes = "Great Lakes",
|
||||
StraitOfMalacca = "Strait Of Malacca",
|
||||
Luna = "Luna",
|
||||
Conakry = "Conakry",
|
||||
Caucasus = "Caucasus",
|
||||
LosAngeles = "Los Angeles",
|
||||
BeringSea = "Bering Sea",
|
||||
Antarctica = "Antarctica",
|
||||
ArchipelagoSea = "ArchipelagoSea",
|
||||
BajaCalifornia = "Baja California",
|
||||
MiddleEast = "Middle East",
|
||||
TaiwanStrait = "Taiwan Strait",
|
||||
IndianSubcontinent = "Indian Subcontinent",
|
||||
DanishStraits = "Danish Straits",
|
||||
NorthwestPassage = "Northwest Passage",
|
||||
Venice = "Venice",
|
||||
Korea = "Korea",
|
||||
Balkans = "Balkans",
|
||||
YellowSea = "Yellow Sea",
|
||||
Labyrinth = "Labyrinth",
|
||||
Caribbean = "Caribbean",
|
||||
Onion = "Onion",
|
||||
ChoppingBlock = "Chopping Block",
|
||||
SoutheastAsia = "SoutheastAsia",
|
||||
MississippiRiver = "Mississippi River",
|
||||
Titan = "Titan",
|
||||
HongKong = "Hong Kong",
|
||||
JuanDeFucaStrait = "Juan De Fuca Strait",
|
||||
}
|
||||
|
||||
export type GameMapName = keyof typeof GameMapType;
|
||||
|
||||
export const mapCategories: Record<string, GameMapType[]> = {
|
||||
continental: [
|
||||
GameMapType.World,
|
||||
GameMapType.GiantWorldMap,
|
||||
GameMapType.NorthAmerica,
|
||||
GameMapType.SouthAmerica,
|
||||
GameMapType.Europe,
|
||||
GameMapType.EuropeClassic,
|
||||
GameMapType.Asia,
|
||||
GameMapType.Africa,
|
||||
GameMapType.Oceania,
|
||||
GameMapType.Antarctica,
|
||||
],
|
||||
regional: [
|
||||
GameMapType.BritanniaClassic,
|
||||
GameMapType.Britannia,
|
||||
GameMapType.BlackSea,
|
||||
GameMapType.GatewayToTheAtlantic,
|
||||
GameMapType.BetweenTwoSeas,
|
||||
GameMapType.Iceland,
|
||||
GameMapType.EastAsia,
|
||||
GameMapType.Mena,
|
||||
GameMapType.Australia,
|
||||
GameMapType.FaroeIslands,
|
||||
GameMapType.FalklandIslands,
|
||||
GameMapType.Baikal,
|
||||
GameMapType.Halkidiki,
|
||||
GameMapType.StraitOfGibraltar,
|
||||
GameMapType.Italia,
|
||||
GameMapType.Japan,
|
||||
GameMapType.Montreal,
|
||||
GameMapType.GulfOfStLawrence,
|
||||
GameMapType.Lisbon,
|
||||
GameMapType.NewYorkCity,
|
||||
GameMapType.Manicouagan,
|
||||
GameMapType.Lemnos,
|
||||
GameMapType.TwoLakes,
|
||||
GameMapType.StraitOfHormuz,
|
||||
GameMapType.AmazonRiver,
|
||||
GameMapType.BosphorusStraits,
|
||||
GameMapType.BeringStrait,
|
||||
GameMapType.Yenisei,
|
||||
GameMapType.Hawaii,
|
||||
GameMapType.Alps,
|
||||
GameMapType.NileDelta,
|
||||
GameMapType.Arctic,
|
||||
GameMapType.SanFrancisco,
|
||||
GameMapType.Aegean,
|
||||
GameMapType.MareNostrum,
|
||||
GameMapType.GreatLakes,
|
||||
GameMapType.StraitOfMalacca,
|
||||
GameMapType.Conakry,
|
||||
GameMapType.Caucasus,
|
||||
GameMapType.LosAngeles,
|
||||
GameMapType.BeringSea,
|
||||
GameMapType.ArchipelagoSea,
|
||||
GameMapType.BajaCalifornia,
|
||||
GameMapType.Korea,
|
||||
GameMapType.MiddleEast,
|
||||
GameMapType.TaiwanStrait,
|
||||
GameMapType.Balkans,
|
||||
GameMapType.IndianSubcontinent,
|
||||
GameMapType.DanishStraits,
|
||||
GameMapType.NorthwestPassage,
|
||||
GameMapType.Venice,
|
||||
GameMapType.YellowSea,
|
||||
GameMapType.Caribbean,
|
||||
GameMapType.SoutheastAsia,
|
||||
GameMapType.MississippiRiver,
|
||||
GameMapType.HongKong,
|
||||
GameMapType.JuanDeFucaStrait,
|
||||
],
|
||||
fantasy: [
|
||||
GameMapType.Pangaea,
|
||||
GameMapType.DeglaciatedAntarctica,
|
||||
GameMapType.Achiran,
|
||||
GameMapType.BaikalNukeWars,
|
||||
GameMapType.FourIslands,
|
||||
GameMapType.Svalmel,
|
||||
GameMapType.Surrounded,
|
||||
GameMapType.TradersDream,
|
||||
GameMapType.Passage,
|
||||
GameMapType.Dyslexdria,
|
||||
GameMapType.WorldInverted,
|
||||
],
|
||||
cosmic: [
|
||||
GameMapType.Luna,
|
||||
GameMapType.Mars,
|
||||
GameMapType.Titan,
|
||||
GameMapType.Pluto,
|
||||
GameMapType.MilkyWay,
|
||||
],
|
||||
arcade: [
|
||||
GameMapType.TheBox,
|
||||
GameMapType.ChoppingBlock,
|
||||
GameMapType.Didier,
|
||||
GameMapType.DidierFrance,
|
||||
GameMapType.Labyrinth,
|
||||
GameMapType.Sierpinski,
|
||||
GameMapType.Onion,
|
||||
],
|
||||
tournament: [
|
||||
GameMapType.Tourney1,
|
||||
GameMapType.Tourney2,
|
||||
GameMapType.Tourney3,
|
||||
GameMapType.Tourney4,
|
||||
],
|
||||
};
|
||||
// GameMapType, GameMapName, mapCategories, mapTranslationKeys, and
|
||||
// multiplayerFrequency are generated from
|
||||
// map-generator/assets/maps/<map>/info.json by the map-generator
|
||||
// (`npm run gen-maps`).
|
||||
export {
|
||||
GameMapType,
|
||||
mapCategories,
|
||||
mapTranslationKeys,
|
||||
multiplayerFrequency,
|
||||
type GameMapName,
|
||||
} from "./Maps.gen";
|
||||
|
||||
export enum GameType {
|
||||
Singleplayer = "Singleplayer",
|
||||
|
||||
@@ -0,0 +1,428 @@
|
||||
// Code generated by map-generator; DO NOT EDIT.
|
||||
// Map metadata lives in map-generator/assets/maps/<map>/info.json.
|
||||
// Regenerate with `npm run gen-maps`.
|
||||
|
||||
export enum GameMapType {
|
||||
Achiran = "Achiran", // map-generator/assets/maps/achiran/info.json
|
||||
Aegean = "Aegean", // map-generator/assets/maps/aegean/info.json
|
||||
Africa = "Africa", // map-generator/assets/maps/africa/info.json
|
||||
Alps = "Alps", // map-generator/assets/maps/alps/info.json
|
||||
AmazonRiver = "Amazon River", // map-generator/assets/maps/amazonriver/info.json
|
||||
Antarctica = "Antarctica", // map-generator/assets/maps/antarctica/info.json
|
||||
ArchipelagoSea = "ArchipelagoSea", // map-generator/assets/maps/archipelagosea/info.json
|
||||
Arctic = "Arctic", // map-generator/assets/maps/arctic/info.json
|
||||
Asia = "Asia", // map-generator/assets/maps/asia/info.json
|
||||
Australia = "Australia", // map-generator/assets/maps/australia/info.json
|
||||
Baikal = "Baikal", // map-generator/assets/maps/baikal/info.json
|
||||
BaikalNukeWars = "Baikal Nuke Wars", // map-generator/assets/maps/baikalnukewars/info.json
|
||||
BajaCalifornia = "Baja California", // map-generator/assets/maps/bajacalifornia/info.json
|
||||
Balkans = "Balkans", // map-generator/assets/maps/balkans/info.json
|
||||
BeringSea = "Bering Sea", // map-generator/assets/maps/beringsea/info.json
|
||||
BeringStrait = "Bering Strait", // map-generator/assets/maps/beringstrait/info.json
|
||||
BetweenTwoSeas = "Between Two Seas", // map-generator/assets/maps/betweentwoseas/info.json
|
||||
BlackSea = "Black Sea", // map-generator/assets/maps/blacksea/info.json
|
||||
BosphorusStraits = "Bosphorus Straits", // map-generator/assets/maps/bosphorusstraits/info.json
|
||||
Britannia = "Britannia", // map-generator/assets/maps/britannia/info.json
|
||||
BritanniaClassic = "Britannia Classic", // map-generator/assets/maps/britanniaclassic/info.json
|
||||
Caribbean = "Caribbean", // map-generator/assets/maps/caribbean/info.json
|
||||
Caucasus = "Caucasus", // map-generator/assets/maps/caucasus/info.json
|
||||
ChoppingBlock = "Chopping Block", // map-generator/assets/maps/choppingblock/info.json
|
||||
Conakry = "Conakry", // map-generator/assets/maps/conakry/info.json
|
||||
DanishStraits = "Danish Straits", // map-generator/assets/maps/danishstraits/info.json
|
||||
DeglaciatedAntarctica = "Deglaciated Antarctica", // map-generator/assets/maps/deglaciatedantarctica/info.json
|
||||
Didier = "Didier", // map-generator/assets/maps/didier/info.json
|
||||
DidierFrance = "Didier France", // map-generator/assets/maps/didierfrance/info.json
|
||||
Dyslexdria = "Dyslexdria", // map-generator/assets/maps/dyslexdria/info.json
|
||||
EastAsia = "East Asia", // map-generator/assets/maps/eastasia/info.json
|
||||
Europe = "Europe", // map-generator/assets/maps/europe/info.json
|
||||
EuropeClassic = "Europe Classic", // map-generator/assets/maps/europeclassic/info.json
|
||||
FalklandIslands = "Falkland Islands", // map-generator/assets/maps/falklandislands/info.json
|
||||
FaroeIslands = "Faroe Islands", // map-generator/assets/maps/faroeislands/info.json
|
||||
FourIslands = "Four Islands", // map-generator/assets/maps/fourislands/info.json
|
||||
GatewayToTheAtlantic = "Gateway to the Atlantic", // map-generator/assets/maps/gatewaytotheatlantic/info.json
|
||||
GiantWorldMap = "Giant World Map", // map-generator/assets/maps/giantworldmap/info.json
|
||||
GreatLakes = "Great Lakes", // map-generator/assets/maps/greatlakes/info.json
|
||||
GulfOfStLawrence = "Gulf of St. Lawrence", // map-generator/assets/maps/gulfofstlawrence/info.json
|
||||
Halkidiki = "Halkidiki", // map-generator/assets/maps/halkidiki/info.json
|
||||
Hawaii = "Hawaii", // map-generator/assets/maps/hawaii/info.json
|
||||
HongKong = "Hong Kong", // map-generator/assets/maps/hongkong/info.json
|
||||
Iceland = "Iceland", // map-generator/assets/maps/iceland/info.json
|
||||
IndianSubcontinent = "Indian Subcontinent", // map-generator/assets/maps/indiansubcontinent/info.json
|
||||
Italia = "Italia", // map-generator/assets/maps/italia/info.json
|
||||
Japan = "Japan", // map-generator/assets/maps/japan/info.json
|
||||
JuanDeFucaStrait = "Juan De Fuca Strait", // map-generator/assets/maps/juandefucastrait/info.json
|
||||
Korea = "Korea", // map-generator/assets/maps/korea/info.json
|
||||
Labyrinth = "Labyrinth", // map-generator/assets/maps/labyrinth/info.json
|
||||
Lemnos = "Lemnos", // map-generator/assets/maps/lemnos/info.json
|
||||
Lisbon = "Lisbon", // map-generator/assets/maps/lisbon/info.json
|
||||
LosAngeles = "Los Angeles", // map-generator/assets/maps/losangeles/info.json
|
||||
Luna = "Luna", // map-generator/assets/maps/luna/info.json
|
||||
Manicouagan = "Manicouagan", // map-generator/assets/maps/manicouagan/info.json
|
||||
MareNostrum = "Mare Nostrum", // map-generator/assets/maps/marenostrum/info.json
|
||||
Mars = "Mars", // map-generator/assets/maps/mars/info.json
|
||||
Mena = "Mena", // map-generator/assets/maps/mena/info.json
|
||||
MiddleEast = "Middle East", // map-generator/assets/maps/middleeast/info.json
|
||||
MilkyWay = "MilkyWay", // map-generator/assets/maps/milkyway/info.json
|
||||
MississippiRiver = "Mississippi River", // map-generator/assets/maps/mississippiriver/info.json
|
||||
Montreal = "Montreal", // map-generator/assets/maps/montreal/info.json
|
||||
NewYorkCity = "New York City", // map-generator/assets/maps/newyorkcity/info.json
|
||||
NileDelta = "Nile Delta", // map-generator/assets/maps/niledelta/info.json
|
||||
NorthAmerica = "North America", // map-generator/assets/maps/northamerica/info.json
|
||||
NorthwestPassage = "Northwest Passage", // map-generator/assets/maps/northwestpassage/info.json
|
||||
Oceania = "Oceania", // map-generator/assets/maps/oceania/info.json
|
||||
Onion = "Onion", // map-generator/assets/maps/onion/info.json
|
||||
Pangaea = "Pangaea", // map-generator/assets/maps/pangaea/info.json
|
||||
Passage = "Passage", // map-generator/assets/maps/passage/info.json
|
||||
Pluto = "Pluto", // map-generator/assets/maps/pluto/info.json
|
||||
SanFrancisco = "San Francisco", // map-generator/assets/maps/sanfrancisco/info.json
|
||||
Sierpinski = "Sierpinski", // map-generator/assets/maps/sierpinski/info.json
|
||||
SouthAmerica = "South America", // map-generator/assets/maps/southamerica/info.json
|
||||
SoutheastAsia = "SoutheastAsia", // map-generator/assets/maps/southeastasia/info.json
|
||||
StraitOfGibraltar = "Strait of Gibraltar", // map-generator/assets/maps/straitofgibraltar/info.json
|
||||
StraitOfHormuz = "Strait of Hormuz", // map-generator/assets/maps/straitofhormuz/info.json
|
||||
StraitOfMalacca = "Strait Of Malacca", // map-generator/assets/maps/straitofmalacca/info.json
|
||||
Surrounded = "Surrounded", // map-generator/assets/maps/surrounded/info.json
|
||||
Svalmel = "Svalmel", // map-generator/assets/maps/svalmel/info.json
|
||||
TaiwanStrait = "Taiwan Strait", // map-generator/assets/maps/taiwanstrait/info.json
|
||||
TheBox = "The Box", // map-generator/assets/maps/thebox/info.json
|
||||
Titan = "Titan", // map-generator/assets/maps/titan/info.json
|
||||
Tourney1 = "Tourney 2 Teams", // map-generator/assets/maps/tourney1/info.json
|
||||
Tourney2 = "Tourney 3 Teams", // map-generator/assets/maps/tourney2/info.json
|
||||
Tourney3 = "Tourney 4 Teams", // map-generator/assets/maps/tourney3/info.json
|
||||
Tourney4 = "Tourney 8 Teams", // map-generator/assets/maps/tourney4/info.json
|
||||
TradersDream = "Traders Dream", // map-generator/assets/maps/tradersdream/info.json
|
||||
TwoLakes = "Two Lakes", // map-generator/assets/maps/twolakes/info.json
|
||||
Venice = "Venice", // map-generator/assets/maps/venice/info.json
|
||||
World = "World", // map-generator/assets/maps/world/info.json
|
||||
WorldInverted = "World Inverted", // map-generator/assets/maps/worldinverted/info.json
|
||||
YellowSea = "Yellow Sea", // map-generator/assets/maps/yellowsea/info.json
|
||||
Yenisei = "Yenisei", // map-generator/assets/maps/yenisei/info.json
|
||||
}
|
||||
|
||||
export type GameMapName = keyof typeof GameMapType;
|
||||
|
||||
export const mapCategories: Record<string, GameMapType[]> = {
|
||||
featured: [
|
||||
GameMapType.World,
|
||||
GameMapType.Europe,
|
||||
GameMapType.NorthAmerica,
|
||||
GameMapType.SouthAmerica,
|
||||
GameMapType.Asia,
|
||||
GameMapType.Africa,
|
||||
GameMapType.Japan,
|
||||
],
|
||||
world: [
|
||||
GameMapType.Dyslexdria,
|
||||
GameMapType.GiantWorldMap,
|
||||
GameMapType.World,
|
||||
GameMapType.WorldInverted,
|
||||
],
|
||||
europe: [
|
||||
GameMapType.Aegean,
|
||||
GameMapType.Alps,
|
||||
GameMapType.ArchipelagoSea,
|
||||
GameMapType.Arctic,
|
||||
GameMapType.Balkans,
|
||||
GameMapType.BetweenTwoSeas,
|
||||
GameMapType.BlackSea,
|
||||
GameMapType.BosphorusStraits,
|
||||
GameMapType.Britannia,
|
||||
GameMapType.BritanniaClassic,
|
||||
GameMapType.Caucasus,
|
||||
GameMapType.DanishStraits,
|
||||
GameMapType.Europe,
|
||||
GameMapType.EuropeClassic,
|
||||
GameMapType.FaroeIslands,
|
||||
GameMapType.GatewayToTheAtlantic,
|
||||
GameMapType.Halkidiki,
|
||||
GameMapType.Iceland,
|
||||
GameMapType.Italia,
|
||||
GameMapType.Lemnos,
|
||||
GameMapType.Lisbon,
|
||||
GameMapType.MareNostrum,
|
||||
GameMapType.StraitOfGibraltar,
|
||||
GameMapType.TwoLakes,
|
||||
GameMapType.Venice,
|
||||
],
|
||||
asia: [
|
||||
GameMapType.Asia,
|
||||
GameMapType.Baikal,
|
||||
GameMapType.BeringSea,
|
||||
GameMapType.BeringStrait,
|
||||
GameMapType.BetweenTwoSeas,
|
||||
GameMapType.BlackSea,
|
||||
GameMapType.BosphorusStraits,
|
||||
GameMapType.Caucasus,
|
||||
GameMapType.EastAsia,
|
||||
GameMapType.HongKong,
|
||||
GameMapType.IndianSubcontinent,
|
||||
GameMapType.Japan,
|
||||
GameMapType.Korea,
|
||||
GameMapType.Mena,
|
||||
GameMapType.MiddleEast,
|
||||
GameMapType.SoutheastAsia,
|
||||
GameMapType.StraitOfHormuz,
|
||||
GameMapType.StraitOfMalacca,
|
||||
GameMapType.TaiwanStrait,
|
||||
GameMapType.YellowSea,
|
||||
GameMapType.Yenisei,
|
||||
],
|
||||
north_america: [
|
||||
GameMapType.Arctic,
|
||||
GameMapType.BajaCalifornia,
|
||||
GameMapType.BeringSea,
|
||||
GameMapType.BeringStrait,
|
||||
GameMapType.Caribbean,
|
||||
GameMapType.GreatLakes,
|
||||
GameMapType.GulfOfStLawrence,
|
||||
GameMapType.Hawaii,
|
||||
GameMapType.JuanDeFucaStrait,
|
||||
GameMapType.LosAngeles,
|
||||
GameMapType.Manicouagan,
|
||||
GameMapType.MississippiRiver,
|
||||
GameMapType.Montreal,
|
||||
GameMapType.NewYorkCity,
|
||||
GameMapType.NorthAmerica,
|
||||
GameMapType.NorthwestPassage,
|
||||
GameMapType.SanFrancisco,
|
||||
],
|
||||
africa: [
|
||||
GameMapType.Africa,
|
||||
GameMapType.Conakry,
|
||||
GameMapType.Mena,
|
||||
GameMapType.NileDelta,
|
||||
GameMapType.StraitOfGibraltar,
|
||||
],
|
||||
south_america: [
|
||||
GameMapType.AmazonRiver,
|
||||
GameMapType.FalklandIslands,
|
||||
GameMapType.SouthAmerica,
|
||||
],
|
||||
oceania: [GameMapType.Australia, GameMapType.Hawaii, GameMapType.Oceania],
|
||||
antarctica: [GameMapType.Antarctica, GameMapType.DeglaciatedAntarctica],
|
||||
cosmic: [
|
||||
GameMapType.Luna,
|
||||
GameMapType.Mars,
|
||||
GameMapType.MilkyWay,
|
||||
GameMapType.Pluto,
|
||||
GameMapType.Titan,
|
||||
],
|
||||
tournament: [
|
||||
GameMapType.Tourney1,
|
||||
GameMapType.Tourney2,
|
||||
GameMapType.Tourney3,
|
||||
GameMapType.Tourney4,
|
||||
],
|
||||
other: [
|
||||
GameMapType.Achiran,
|
||||
GameMapType.BaikalNukeWars,
|
||||
GameMapType.ChoppingBlock,
|
||||
GameMapType.Didier,
|
||||
GameMapType.DidierFrance,
|
||||
GameMapType.FourIslands,
|
||||
GameMapType.Labyrinth,
|
||||
GameMapType.Onion,
|
||||
GameMapType.Pangaea,
|
||||
GameMapType.Passage,
|
||||
GameMapType.Sierpinski,
|
||||
GameMapType.Surrounded,
|
||||
GameMapType.Svalmel,
|
||||
GameMapType.TheBox,
|
||||
GameMapType.TradersDream,
|
||||
],
|
||||
};
|
||||
|
||||
export const mapTranslationKeys: Record<GameMapType, string> = {
|
||||
[GameMapType.Achiran]: "map.achiran",
|
||||
[GameMapType.Aegean]: "map.aegean",
|
||||
[GameMapType.Africa]: "map.africa",
|
||||
[GameMapType.Alps]: "map.alps",
|
||||
[GameMapType.AmazonRiver]: "map.amazonriver",
|
||||
[GameMapType.Antarctica]: "map.antarctica",
|
||||
[GameMapType.ArchipelagoSea]: "map.archipelagosea",
|
||||
[GameMapType.Arctic]: "map.arctic",
|
||||
[GameMapType.Asia]: "map.asia",
|
||||
[GameMapType.Australia]: "map.australia",
|
||||
[GameMapType.Baikal]: "map.baikal",
|
||||
[GameMapType.BaikalNukeWars]: "map.baikalnukewars",
|
||||
[GameMapType.BajaCalifornia]: "map.bajacalifornia",
|
||||
[GameMapType.Balkans]: "map.balkans",
|
||||
[GameMapType.BeringSea]: "map.beringsea",
|
||||
[GameMapType.BeringStrait]: "map.beringstrait",
|
||||
[GameMapType.BetweenTwoSeas]: "map.betweentwoseas",
|
||||
[GameMapType.BlackSea]: "map.blacksea",
|
||||
[GameMapType.BosphorusStraits]: "map.bosphorusstraits",
|
||||
[GameMapType.Britannia]: "map.britannia",
|
||||
[GameMapType.BritanniaClassic]: "map.britanniaclassic",
|
||||
[GameMapType.Caribbean]: "map.caribbean",
|
||||
[GameMapType.Caucasus]: "map.caucasus",
|
||||
[GameMapType.ChoppingBlock]: "map.choppingblock",
|
||||
[GameMapType.Conakry]: "map.conakry",
|
||||
[GameMapType.DanishStraits]: "map.danishstraits",
|
||||
[GameMapType.DeglaciatedAntarctica]: "map.deglaciatedantarctica",
|
||||
[GameMapType.Didier]: "map.didier",
|
||||
[GameMapType.DidierFrance]: "map.didierfrance",
|
||||
[GameMapType.Dyslexdria]: "map.dyslexdria",
|
||||
[GameMapType.EastAsia]: "map.eastasia",
|
||||
[GameMapType.Europe]: "map.europe",
|
||||
[GameMapType.EuropeClassic]: "map.europeclassic",
|
||||
[GameMapType.FalklandIslands]: "map.falklandislands",
|
||||
[GameMapType.FaroeIslands]: "map.faroeislands",
|
||||
[GameMapType.FourIslands]: "map.fourislands",
|
||||
[GameMapType.GatewayToTheAtlantic]: "map.gatewaytotheatlantic",
|
||||
[GameMapType.GiantWorldMap]: "map.giantworldmap",
|
||||
[GameMapType.GreatLakes]: "map.greatlakes",
|
||||
[GameMapType.GulfOfStLawrence]: "map.gulfofstlawrence",
|
||||
[GameMapType.Halkidiki]: "map.halkidiki",
|
||||
[GameMapType.Hawaii]: "map.hawaii",
|
||||
[GameMapType.HongKong]: "map.hongkong",
|
||||
[GameMapType.Iceland]: "map.iceland",
|
||||
[GameMapType.IndianSubcontinent]: "map.indiansubcontinent",
|
||||
[GameMapType.Italia]: "map.italia",
|
||||
[GameMapType.Japan]: "map.japan",
|
||||
[GameMapType.JuanDeFucaStrait]: "map.juandefucastrait",
|
||||
[GameMapType.Korea]: "map.korea",
|
||||
[GameMapType.Labyrinth]: "map.labyrinth",
|
||||
[GameMapType.Lemnos]: "map.lemnos",
|
||||
[GameMapType.Lisbon]: "map.lisbon",
|
||||
[GameMapType.LosAngeles]: "map.losangeles",
|
||||
[GameMapType.Luna]: "map.luna",
|
||||
[GameMapType.Manicouagan]: "map.manicouagan",
|
||||
[GameMapType.MareNostrum]: "map.marenostrum",
|
||||
[GameMapType.Mars]: "map.mars",
|
||||
[GameMapType.Mena]: "map.mena",
|
||||
[GameMapType.MiddleEast]: "map.middleeast",
|
||||
[GameMapType.MilkyWay]: "map.milkyway",
|
||||
[GameMapType.MississippiRiver]: "map.mississippiriver",
|
||||
[GameMapType.Montreal]: "map.montreal",
|
||||
[GameMapType.NewYorkCity]: "map.newyorkcity",
|
||||
[GameMapType.NileDelta]: "map.niledelta",
|
||||
[GameMapType.NorthAmerica]: "map.northamerica",
|
||||
[GameMapType.NorthwestPassage]: "map.northwestpassage",
|
||||
[GameMapType.Oceania]: "map.oceania",
|
||||
[GameMapType.Onion]: "map.onion",
|
||||
[GameMapType.Pangaea]: "map.pangaea",
|
||||
[GameMapType.Passage]: "map.passage",
|
||||
[GameMapType.Pluto]: "map.pluto",
|
||||
[GameMapType.SanFrancisco]: "map.sanfrancisco",
|
||||
[GameMapType.Sierpinski]: "map.sierpinski",
|
||||
[GameMapType.SouthAmerica]: "map.southamerica",
|
||||
[GameMapType.SoutheastAsia]: "map.southeastasia",
|
||||
[GameMapType.StraitOfGibraltar]: "map.straitofgibraltar",
|
||||
[GameMapType.StraitOfHormuz]: "map.straitofhormuz",
|
||||
[GameMapType.StraitOfMalacca]: "map.straitofmalacca",
|
||||
[GameMapType.Surrounded]: "map.surrounded",
|
||||
[GameMapType.Svalmel]: "map.svalmel",
|
||||
[GameMapType.TaiwanStrait]: "map.taiwanstrait",
|
||||
[GameMapType.TheBox]: "map.thebox",
|
||||
[GameMapType.Titan]: "map.titan",
|
||||
[GameMapType.Tourney1]: "map.tourney1",
|
||||
[GameMapType.Tourney2]: "map.tourney2",
|
||||
[GameMapType.Tourney3]: "map.tourney3",
|
||||
[GameMapType.Tourney4]: "map.tourney4",
|
||||
[GameMapType.TradersDream]: "map.tradersdream",
|
||||
[GameMapType.TwoLakes]: "map.twolakes",
|
||||
[GameMapType.Venice]: "map.venice",
|
||||
[GameMapType.World]: "map.world",
|
||||
[GameMapType.WorldInverted]: "map.worldinverted",
|
||||
[GameMapType.YellowSea]: "map.yellowsea",
|
||||
[GameMapType.Yenisei]: "map.yenisei",
|
||||
};
|
||||
|
||||
// How many times each map appears in the multiplayer playlist.
|
||||
export const multiplayerFrequency: Record<GameMapName, number> = {
|
||||
Achiran: 5,
|
||||
Aegean: 6,
|
||||
Africa: 7,
|
||||
Alps: 4,
|
||||
AmazonRiver: 3,
|
||||
Antarctica: 1,
|
||||
ArchipelagoSea: 3,
|
||||
Arctic: 6,
|
||||
Asia: 6,
|
||||
Australia: 4,
|
||||
Baikal: 5,
|
||||
BaikalNukeWars: 0,
|
||||
BajaCalifornia: 4,
|
||||
Balkans: 6,
|
||||
BeringSea: 5,
|
||||
BeringStrait: 2,
|
||||
BetweenTwoSeas: 5,
|
||||
BlackSea: 6,
|
||||
BosphorusStraits: 3,
|
||||
Britannia: 5,
|
||||
BritanniaClassic: 0,
|
||||
Caribbean: 5,
|
||||
Caucasus: 5,
|
||||
ChoppingBlock: 5,
|
||||
Conakry: 3,
|
||||
DanishStraits: 5,
|
||||
DeglaciatedAntarctica: 4,
|
||||
Didier: 1,
|
||||
DidierFrance: 1,
|
||||
Dyslexdria: 8,
|
||||
EastAsia: 5,
|
||||
Europe: 7,
|
||||
EuropeClassic: 0,
|
||||
FalklandIslands: 4,
|
||||
FaroeIslands: 4,
|
||||
FourIslands: 4,
|
||||
GatewayToTheAtlantic: 5,
|
||||
GiantWorldMap: 0,
|
||||
GreatLakes: 6,
|
||||
GulfOfStLawrence: 4,
|
||||
Halkidiki: 4,
|
||||
Hawaii: 4,
|
||||
HongKong: 6,
|
||||
Iceland: 4,
|
||||
IndianSubcontinent: 8,
|
||||
Italia: 6,
|
||||
Japan: 6,
|
||||
JuanDeFucaStrait: 4,
|
||||
Korea: 5,
|
||||
Labyrinth: 6,
|
||||
Lemnos: 3,
|
||||
Lisbon: 4,
|
||||
LosAngeles: 8,
|
||||
Luna: 6,
|
||||
Manicouagan: 4,
|
||||
MareNostrum: 6,
|
||||
Mars: 3,
|
||||
Mena: 6,
|
||||
MiddleEast: 8,
|
||||
MilkyWay: 8,
|
||||
MississippiRiver: 3,
|
||||
Montreal: 6,
|
||||
NewYorkCity: 3,
|
||||
NileDelta: 4,
|
||||
NorthAmerica: 5,
|
||||
NorthwestPassage: 5,
|
||||
Oceania: 0,
|
||||
Onion: 2,
|
||||
Pangaea: 5,
|
||||
Passage: 4,
|
||||
Pluto: 6,
|
||||
SanFrancisco: 3,
|
||||
Sierpinski: 10,
|
||||
SouthAmerica: 5,
|
||||
SoutheastAsia: 5,
|
||||
StraitOfGibraltar: 5,
|
||||
StraitOfHormuz: 4,
|
||||
StraitOfMalacca: 4,
|
||||
Surrounded: 4,
|
||||
Svalmel: 8,
|
||||
TaiwanStrait: 5,
|
||||
TheBox: 3,
|
||||
Titan: 3,
|
||||
Tourney1: 0,
|
||||
Tourney2: 0,
|
||||
Tourney3: 0,
|
||||
Tourney4: 0,
|
||||
TradersDream: 4,
|
||||
TwoLakes: 6,
|
||||
Venice: 6,
|
||||
World: 20,
|
||||
WorldInverted: 8,
|
||||
YellowSea: 5,
|
||||
Yenisei: 6,
|
||||
};
|
||||
Reference in New Issue
Block a user