Adds map of the Caribbean 🏴‍☠️ (#4067)

## Description:

Fixes #4069

Adds map of the Caribbean sea and its islands. Archipelago map with lots
of islands, lots of water and a lot of trade.

This map has multiple large landmasses of similar size to prevent
steamrolls (the largest islands and landmasses are around 30%), and
many, many small islands where players can survive and trade. Players
will have to island hop in order to win. 34 nations of Caribbean
countries and territories, with an extra 28 AdditionalNations for a
total of 62 nations for crowded HvN.

Heavy Island maps are very popular in the broader community and we dont
have one for v32, so i figured it would be nice to have a very requested
and popular world location

570k land tiles, fairly small for a map, would be right placed before
World (600k tiles). Also adds some flags of caribbean regions.


https://github.com/user-attachments/assets/9eae81ec-58eb-4594-89fd-2f95742f8b3a

Terrain source from OpenTopography, already credited. No modification to
the tests are needed for new maps added in Game.ts

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [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
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced

## Please put your Discord username so you can be contacted if a bug or
regression is found:

tri.star1011
This commit is contained in:
RickD004
2026-05-29 20:23:21 -06:00
committed by GitHub
parent b56e9438d1
commit c049a81b86
16 changed files with 692 additions and 3 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

@@ -0,0 +1,317 @@
{
"name": "Caribbean",
"nations": [
{
"coordinates": [538, 200],
"name": "Florida",
"flag": "Florida"
},
{
"coordinates": [65, 1211],
"name": "Mexico",
"flag": "mx"
},
{
"coordinates": [53, 1596],
"name": "Belize",
"flag": "bz"
},
{
"coordinates": [333, 1748],
"name": "Honduras",
"flag": "hn"
},
{
"coordinates": [960, 809],
"name": "Cuba",
"flag": "cu"
},
{
"coordinates": [1339, 943],
"name": "Guantanamo Bay",
"flag": "us"
},
{
"coordinates": [1213, 1210],
"name": "Jamaica",
"flag": "jm"
},
{
"coordinates": [1682, 674],
"name": "Turks and Caicos",
"flag": "tc"
},
{
"coordinates": [973, 481],
"name": "Bahamas",
"flag": "bs"
},
{
"coordinates": [786, 1167],
"name": "Cayman Islands",
"flag": "ky"
},
{
"coordinates": [1714, 971],
"name": "Haiti",
"flag": "ht"
},
{
"coordinates": [1867, 962],
"name": "Dominican Republic",
"flag": "do"
},
{
"coordinates": [2388, 934],
"name": "Puerto Rico",
"flag": "pr"
},
{
"coordinates": [1964, 1732],
"name": "Colombia",
"flag": "co"
},
{
"coordinates": [2503, 1791],
"name": "Venezuela",
"flag": "ve"
},
{
"coordinates": [3070, 1784],
"name": "Guyana",
"flag": "gy"
},
{
"coordinates": [3065, 1655],
"name": "Trinidad and Tobago",
"flag": "tt"
},
{
"coordinates": [3183, 1334],
"name": "Barbados",
"flag": "bb"
},
{
"coordinates": [2986, 1493],
"name": "Grenada",
"flag": "gd"
},
{
"coordinates": [3007, 1361],
"name": "St Vincent & the Grenadines",
"flag": "vc"
},
{
"coordinates": [3015, 1291],
"name": "Saint Lucia",
"flag": "lc"
},
{
"coordinates": [2989, 1202],
"name": "Martinique",
"flag": "mq"
},
{
"coordinates": [2937, 1130],
"name": "Dominica",
"flag": "dm"
},
{
"coordinates": [2887, 1063],
"name": "Guadeloupe",
"flag": "gp"
},
{
"coordinates": [2746, 959],
"name": "Saint Kitts and Nevis",
"flag": "kn"
},
{
"coordinates": [2853, 966],
"name": "Antigua and Barbuda",
"flag": "ag"
},
{
"coordinates": [2821, 1011],
"name": "Montserrat",
"flag": "ms"
},
{
"coordinates": [2700, 886],
"name": "Sint Maarten",
"flag": "sx"
},
{
"coordinates": [2528, 963],
"name": "U.S. Virgin Islands",
"flag": "vi"
},
{
"coordinates": [2233, 1660],
"name": "Curaçao",
"flag": "cw"
},
{
"coordinates": [3185, 13],
"name": "Bermuda",
"flag": "bm"
},
{
"coordinates": [603, 1768],
"name": "Nicaragua",
"flag": "ni"
},
{
"coordinates": [2528, 882],
"name": "British Virgin Islands",
"flag": "vg"
},
{
"coordinates": [903, 1700],
"name": "San Andres",
"flag": "co"
}
],
"additionalNations": [
{
"coordinates": [40, 1127],
"name": "Yucatan",
"flag": "Yucatan"
},
{
"coordinates": [30, 1437],
"name": "Quintana Roo",
"flag": "mx"
},
{
"coordinates": [20, 1795],
"name": "Guatemala",
"flag": "gt"
},
{
"coordinates": [590, 1684],
"name": "Moskitia",
"flag": "Mosquito Kingdom"
},
{
"coordinates": [1127, 1495],
"name": "Bajo Nuevo Bank",
"flag": "co"
},
{
"coordinates": [1009, 1522],
"name": "Serranilla Bank",
"flag": "co"
},
{
"coordinates": [2111, 1643],
"name": "Aruba",
"flag": "aw"
},
{
"coordinates": [2302, 1641],
"name": "Bonaire",
"flag": "bq"
},
{
"coordinates": [2841, 904],
"name": "Barbuda",
"flag": "Barbuda"
},
{
"coordinates": [2770, 974],
"name": "Nevis",
"flag": "Nevis"
},
{
"coordinates": [434, 198],
"name": "Tampa",
"flag": "Florida"
},
{
"coordinates": [556, 122],
"name": "Orlando",
"flag": "Florida"
},
{
"coordinates": [517, 8],
"name": "Jacksonville",
"flag": "Florida"
},
{
"coordinates": [16, 3],
"name": "Pensacola",
"flag": "Florida"
},
{
"coordinates": [214, 0],
"name": "Tallahassee",
"flag": "Florida"
},
{
"coordinates": [708, 392],
"name": "Miami",
"flag": "Florida"
},
{
"coordinates": [706, 292],
"name": "Fort Lauderdale",
"flag": "Florida"
},
{
"coordinates": [464, 285],
"name": "Sarasota",
"flag": "Florida"
},
{
"coordinates": [566, 394],
"name": "Fort Myers",
"flag": "Florida"
},
{
"coordinates": [710, 767],
"name": "Havana",
"flag": "cu"
},
{
"coordinates": [1249, 961],
"name": "Santiago de Cuba",
"flag": "cu"
},
{
"coordinates": [1234, 917],
"name": "Holguin",
"flag": "cu"
},
{
"coordinates": [1106, 867],
"name": "Camagüey",
"flag": "cu"
},
{
"coordinates": [829, 805],
"name": "Santa Clara",
"flag": "cu"
},
{
"coordinates": [1029, 437],
"name": "Republic of Pirates",
"flag": "Republic of Pirates"
},
{
"coordinates": [565, 939],
"name": "Nueva Gerona",
"flag": "cu"
},
{
"coordinates": [473, 852],
"name": "Pinar del Rio",
"flag": "cu"
},
{
"coordinates": [3113, 1563],
"name": "Tobago",
"flag": "tt"
}
]
}
+1
View File
@@ -42,6 +42,7 @@ var maps = []struct {
{Name: "bosphorusstraits"},
{Name: "britannia"},
{Name: "britanniaclassic"},
{Name: "caribbean"},
{Name: "caucasus"},
{Name: "conakry"},
{Name: "danishstraits"},
+20
View File
@@ -250,6 +250,11 @@
"continent": "North America",
"name": "Barbados"
},
{
"code": "Barbuda",
"continent": "North America",
"name": "Barbuda"
},
{
"code": "Babylonia",
"continent": "Asia",
@@ -1496,6 +1501,11 @@
"continent": "Africa",
"name": "Morocco"
},
{
"code": "Mosquito Kingdom",
"continent": "North America",
"name": "Mosquito Kingdom"
},
{
"code": "mz",
"continent": "Africa",
@@ -1549,6 +1559,11 @@
"continent": "North America",
"name": "Nevada"
},
{
"code": "Nevis",
"continent": "North America",
"name": "Nevis"
},
{
"code": "newbrunswick",
"continent": "North America",
@@ -2561,6 +2576,11 @@
"continent": "Asia",
"name": "Yemen"
},
{
"code": "Yucatan",
"continent": "North America",
"name": "Yucatan"
},
{
"code": "yugoslavia",
"continent": "Europe",
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.6 KiB

+2 -1
View File
@@ -607,7 +607,8 @@
"balkans": "Balkans",
"onion": "Onion",
"yellowsea": "Yellow Sea",
"labyrinth": "Labyrinth"
"labyrinth": "Labyrinth",
"caribbean": "Caribbean"
},
"map_categories": {
"featured": "Featured",
+332
View File
@@ -0,0 +1,332 @@
{
"additionalNations": [
{
"coordinates": [40, 1127],
"flag": "Yucatan",
"name": "Yucatan"
},
{
"coordinates": [30, 1437],
"flag": "mx",
"name": "Quintana Roo"
},
{
"coordinates": [20, 1795],
"flag": "gt",
"name": "Guatemala"
},
{
"coordinates": [590, 1684],
"flag": "Mosquito Kingdom",
"name": "Moskitia"
},
{
"coordinates": [1127, 1495],
"flag": "co",
"name": "Bajo Nuevo Bank"
},
{
"coordinates": [1009, 1522],
"flag": "co",
"name": "Serranilla Bank"
},
{
"coordinates": [2111, 1643],
"flag": "aw",
"name": "Aruba"
},
{
"coordinates": [2302, 1641],
"flag": "bq",
"name": "Bonaire"
},
{
"coordinates": [2841, 904],
"flag": "Barbuda",
"name": "Barbuda"
},
{
"coordinates": [2770, 974],
"flag": "Nevis",
"name": "Nevis"
},
{
"coordinates": [434, 198],
"flag": "Florida",
"name": "Tampa"
},
{
"coordinates": [556, 122],
"flag": "Florida",
"name": "Orlando"
},
{
"coordinates": [517, 8],
"flag": "Florida",
"name": "Jacksonville"
},
{
"coordinates": [16, 3],
"flag": "Florida",
"name": "Pensacola"
},
{
"coordinates": [214, 0],
"flag": "Florida",
"name": "Tallahassee"
},
{
"coordinates": [708, 392],
"flag": "Florida",
"name": "Miami"
},
{
"coordinates": [706, 292],
"flag": "Florida",
"name": "Fort Lauderdale"
},
{
"coordinates": [464, 285],
"flag": "Florida",
"name": "Sarasota"
},
{
"coordinates": [566, 394],
"flag": "Florida",
"name": "Fort Myers"
},
{
"coordinates": [710, 767],
"flag": "cu",
"name": "Havana"
},
{
"coordinates": [1249, 961],
"flag": "cu",
"name": "Santiago de Cuba"
},
{
"coordinates": [1234, 917],
"flag": "cu",
"name": "Holguin"
},
{
"coordinates": [1106, 867],
"flag": "cu",
"name": "Camagüey"
},
{
"coordinates": [829, 805],
"flag": "cu",
"name": "Santa Clara"
},
{
"coordinates": [1029, 437],
"flag": "Republic of Pirates",
"name": "Republic of Pirates"
},
{
"coordinates": [565, 939],
"flag": "cu",
"name": "Nueva Gerona"
},
{
"coordinates": [473, 852],
"flag": "cu",
"name": "Pinar del Rio"
},
{
"coordinates": [3113, 1563],
"flag": "tt",
"name": "Tobago"
}
],
"map": {
"height": 1808,
"num_land_tiles": 577573,
"width": 3200
},
"map16x": {
"height": 452,
"num_land_tiles": 32566,
"width": 800
},
"map4x": {
"height": 904,
"num_land_tiles": 138280,
"width": 1600
},
"name": "Caribbean",
"nations": [
{
"coordinates": [538, 200],
"flag": "Florida",
"name": "Florida"
},
{
"coordinates": [65, 1211],
"flag": "mx",
"name": "Mexico"
},
{
"coordinates": [53, 1596],
"flag": "bz",
"name": "Belize"
},
{
"coordinates": [333, 1748],
"flag": "hn",
"name": "Honduras"
},
{
"coordinates": [960, 809],
"flag": "cu",
"name": "Cuba"
},
{
"coordinates": [1339, 943],
"flag": "us",
"name": "Guantanamo Bay"
},
{
"coordinates": [1213, 1210],
"flag": "jm",
"name": "Jamaica"
},
{
"coordinates": [1682, 674],
"flag": "tc",
"name": "Turks and Caicos"
},
{
"coordinates": [973, 481],
"flag": "bs",
"name": "Bahamas"
},
{
"coordinates": [786, 1167],
"flag": "ky",
"name": "Cayman Islands"
},
{
"coordinates": [1714, 971],
"flag": "ht",
"name": "Haiti"
},
{
"coordinates": [1867, 962],
"flag": "do",
"name": "Dominican Republic"
},
{
"coordinates": [2388, 934],
"flag": "pr",
"name": "Puerto Rico"
},
{
"coordinates": [1964, 1732],
"flag": "co",
"name": "Colombia"
},
{
"coordinates": [2503, 1791],
"flag": "ve",
"name": "Venezuela"
},
{
"coordinates": [3070, 1784],
"flag": "gy",
"name": "Guyana"
},
{
"coordinates": [3065, 1655],
"flag": "tt",
"name": "Trinidad and Tobago"
},
{
"coordinates": [3183, 1334],
"flag": "bb",
"name": "Barbados"
},
{
"coordinates": [2986, 1493],
"flag": "gd",
"name": "Grenada"
},
{
"coordinates": [3007, 1361],
"flag": "vc",
"name": "St Vincent \u0026 the Grenadines"
},
{
"coordinates": [3015, 1291],
"flag": "lc",
"name": "Saint Lucia"
},
{
"coordinates": [2989, 1202],
"flag": "mq",
"name": "Martinique"
},
{
"coordinates": [2937, 1130],
"flag": "dm",
"name": "Dominica"
},
{
"coordinates": [2887, 1063],
"flag": "gp",
"name": "Guadeloupe"
},
{
"coordinates": [2746, 959],
"flag": "kn",
"name": "Saint Kitts and Nevis"
},
{
"coordinates": [2853, 966],
"flag": "ag",
"name": "Antigua and Barbuda"
},
{
"coordinates": [2821, 1011],
"flag": "ms",
"name": "Montserrat"
},
{
"coordinates": [2700, 886],
"flag": "sx",
"name": "Sint Maarten"
},
{
"coordinates": [2528, 963],
"flag": "vi",
"name": "U.S. Virgin Islands"
},
{
"coordinates": [2233, 1660],
"flag": "cw",
"name": "Curaçao"
},
{
"coordinates": [3185, 13],
"flag": "bm",
"name": "Bermuda"
},
{
"coordinates": [603, 1768],
"flag": "ni",
"name": "Nicaragua"
},
{
"coordinates": [2528, 882],
"flag": "vg",
"name": "British Virgin Islands"
},
{
"coordinates": [903, 1700],
"flag": "co",
"name": "San Andres"
}
]
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

+2
View File
@@ -179,6 +179,7 @@ export enum GameMapType {
Balkans = "Balkans",
YellowSea = "Yellow Sea",
Labyrinth = "Labyrinth",
Caribbean = "Caribbean",
Onion = "Onion",
}
@@ -250,6 +251,7 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.NorthwestPassage,
GameMapType.Venice,
GameMapType.YellowSea,
GameMapType.Caribbean,
],
fantasy: [
GameMapType.Pangaea,
+3 -2
View File
@@ -50,6 +50,7 @@ const FREQUENCY: Partial<Record<GameMapName, number>> = {
BlackSea: 6,
BosphorusStraits: 3,
Britannia: 5,
Caribbean: 5,
Caucasus: 5,
Conakry: 3,
DanishStraits: 5,
@@ -72,6 +73,7 @@ const FREQUENCY: Partial<Record<GameMapName, number>> = {
Italia: 6,
Japan: 6,
Korea: 5,
Labyrinth: 6,
Lemnos: 3,
Lisbon: 4,
LosAngeles: 8,
@@ -89,6 +91,7 @@ const FREQUENCY: Partial<Record<GameMapName, number>> = {
NorthwestPassage: 5,
Pangaea: 5,
Passage: 4,
Onion: 2,
Pluto: 6,
SanFrancisco: 3,
Sierpinski: 10,
@@ -106,8 +109,6 @@ const FREQUENCY: Partial<Record<GameMapName, number>> = {
World: 20,
YellowSea: 5,
Yenisei: 6,
Labyrinth: 6,
Onion: 2,
};
const TEAM_WEIGHTS: { config: TeamCountConfig; weight: number }[] = [