Feat: Strait of Hormuz map (#2747)

## Description:
Introduces the Strait of Hormuz section in the Persian Gulf as a map!
This map is actually crazy fun to play on because of how the water
narrows to a small strait where control is necessary otherwise enemies
can transport boat to you easily. I figured a strategic map based on
modern-ish day conflicts would fit the theme, but man it's a great map
to play on.

### Full Map
<img width="2739" height="1822" alt="image"
src="https://github.com/user-attachments/assets/f35bdefa-723a-4bb2-9dc9-fb42898528ce"
/>

### In game with nations
<img width="2218" height="1502" alt="image"
src="https://github.com/user-attachments/assets/00e350cf-8654-4638-8654-178accdf6a48"
/>



## 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:

bijx
This commit is contained in:
bijx
2025-12-31 18:55:43 -05:00
committed by GitHub
parent 59b9cf521a
commit 9d5f167446
12 changed files with 235 additions and 1 deletions
@@ -0,0 +1,105 @@
{
"name": "Strait of Hormuz",
"nations": [
{
"coordinates": [837, 356],
"name": "Hormozgan",
"flag": ""
},
{
"coordinates": [717, 162],
"name": "Fars",
"flag": ""
},
{
"coordinates": [97, 939],
"name": "Ash Sharqiyah",
"flag": ""
},
{
"coordinates": [1725, 360],
"name": "Sistan and Baluchestan",
"flag": ""
},
{
"coordinates": [745, 1003],
"name": "Abu Dhabi",
"flag": ""
},
{
"coordinates": [1513, 289],
"name": "Kerman",
"flag": ""
},
{
"coordinates": [311, 147],
"name": "Bushehr",
"flag": ""
},
{
"coordinates": [1165, 1092],
"name": "Al Dhahira",
"flag": ""
},
{
"coordinates": [1219, 959],
"name": "Al Batnah North",
"flag": ""
},
{
"coordinates": [1114, 956],
"name": "Al Buraymi",
"flag": ""
},
{
"coordinates": [1316, 1141],
"name": "Ad Dakhliyah",
"flag": ""
},
{
"coordinates": [1431, 1111],
"name": "Al Batnah South",
"flag": ""
},
{
"coordinates": [979, 807],
"name": "Dubay",
"flag": ""
},
{
"coordinates": [1615, 1134],
"name": "Muscat",
"flag": ""
},
{
"coordinates": [1070, 774],
"name": "Sharjah",
"flag": ""
},
{
"coordinates": [1166, 583],
"name": "Musandam",
"flag": ""
},
{
"coordinates": [159, 756],
"name": "Ar Rayyān",
"flag": ""
},
{
"coordinates": [1103, 647],
"name": "Ras Al Khaymah",
"flag": ""
},
{
"coordinates": [1155, 703],
"name": "Fujayrah",
"flag": ""
},
{
"coordinates": [216, 815],
"name": "Al Wakrah",
"flag": ""
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

+2 -1
View File
@@ -246,7 +246,8 @@
"svalmel": "Svalmel",
"manicouagan": "Manicouagan",
"lemnos": "Lemnos",
"twolakes": "Two Lakes"
"twolakes": "Two Lakes",
"straitofhormuz": "Strait of Hormuz"
},
"map_categories": {
"continental": "Continental",
+120
View File
@@ -0,0 +1,120 @@
{
"map": {
"height": 1202,
"num_land_tiles": 1258353,
"width": 1800
},
"map16x": {
"height": 300,
"num_land_tiles": 77228,
"width": 450
},
"map4x": {
"height": 601,
"num_land_tiles": 313011,
"width": 900
},
"name": "straitofhormuz",
"nations": [
{
"coordinates": [837, 356],
"flag": "",
"name": "Hormozgan"
},
{
"coordinates": [717, 162],
"flag": "",
"name": "Fars"
},
{
"coordinates": [97, 939],
"flag": "",
"name": "Ash Sharqiyah"
},
{
"coordinates": [1725, 360],
"flag": "",
"name": "Sistan and Baluchestan"
},
{
"coordinates": [745, 1003],
"flag": "",
"name": "Abu Dhabi"
},
{
"coordinates": [1513, 289],
"flag": "",
"name": "Kerman"
},
{
"coordinates": [311, 147],
"flag": "",
"name": "Bushehr"
},
{
"coordinates": [1165, 1092],
"flag": "",
"name": "Al Dhahira"
},
{
"coordinates": [1219, 959],
"flag": "",
"name": "Al Batnah North"
},
{
"coordinates": [1114, 956],
"flag": "",
"name": "Al Buraymi"
},
{
"coordinates": [1316, 1141],
"flag": "",
"name": "Ad Dakhliyah"
},
{
"coordinates": [1431, 1111],
"flag": "",
"name": "Al Batnah South"
},
{
"coordinates": [979, 807],
"flag": "",
"name": "Dubay"
},
{
"coordinates": [1615, 1134],
"flag": "",
"name": "Muscat"
},
{
"coordinates": [1070, 774],
"flag": "",
"name": "Sharjah"
},
{
"coordinates": [1166, 583],
"flag": "",
"name": "Musandam"
},
{
"coordinates": [159, 756],
"flag": "",
"name": "Ar Rayy\u0101n"
},
{
"coordinates": [1103, 647],
"flag": "",
"name": "Ras Al Khaymah"
},
{
"coordinates": [1155, 703],
"flag": "",
"name": "Fujayrah"
},
{
"coordinates": [216, 815],
"flag": "",
"name": "Al Wakrah"
}
]
}
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: 10 KiB

+1
View File
@@ -45,6 +45,7 @@ export const MapDescription: Record<keyof typeof GameMapType, string> = {
Manicouagan: "Manicouagan",
Lemnos: "Lemnos",
TwoLakes: "Two Lakes",
StraitOfHormuz: "Strait of Hormuz",
};
@customElement("map-display")
+1
View File
@@ -86,6 +86,7 @@ const numPlayersConfig = {
[GameMapType.World]: [50, 30, 20],
[GameMapType.Lemnos]: [20, 15, 10],
[GameMapType.TwoLakes]: [60, 50, 40],
[GameMapType.StraitOfHormuz]: [40, 36, 30],
} as const satisfies Record<GameMapType, [number, number, number]>;
export abstract class DefaultServerConfig implements ServerConfig {
+2
View File
@@ -108,6 +108,7 @@ export enum GameMapType {
Manicouagan = "Manicouagan",
Lemnos = "Lemnos",
TwoLakes = "Two Lakes",
StraitOfHormuz = "Strait of Hormuz",
}
export type GameMapName = keyof typeof GameMapType;
@@ -147,6 +148,7 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.Manicouagan,
GameMapType.Lemnos,
GameMapType.TwoLakes,
GameMapType.StraitOfHormuz,
],
fantasy: [
GameMapType.Pangaea,
+1
View File
@@ -58,6 +58,7 @@ const frequency: Partial<Record<GameMapName, number>> = {
World: 8,
Lemnos: 3,
TwoLakes: 6,
StraitOfHormuz: 4,
};
interface MapWithMode {