New Map! "Four Islands" 🏝️ (#2482)

## Description:

Made a type of map we don't already have: Small square map, one Island
in each corner. Could be great for boat gameplay or maybe even nuke
wars.

The special thing is: **All islands are exactly 25% of the territory!**
Was a lot of work drawing that in GIMP...

<img width="1164" height="1168" alt="Screenshot 2025-11-20 000839"
src="https://github.com/user-attachments/assets/ad8345c7-562d-49e8-b367-12be9274f3e4"
/>

<img width="1227" height="1222" alt="Screenshot 2025-11-20 000633"
src="https://github.com/user-attachments/assets/f7e2c58a-fcb3-4e07-91f2-aead5f497fad"
/>

<img width="361" height="288" alt="Screenshot 2025-11-20 000655"
src="https://github.com/user-attachments/assets/120f82ef-2d19-497b-8a31-819e30013c89"
/>

<img width="756" height="282" alt="Screenshot 2025-11-20 005949"
src="https://github.com/user-attachments/assets/8ee04da3-d5fa-4ec9-9e99-9e30ebda2b78"
/>

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

FloPinguin

---------

Co-authored-by: Evan <evanpelle@gmail.com>
This commit is contained in:
FloPinguin
2025-11-20 04:33:05 +01:00
committed by GitHub
parent 4463236e8b
commit 46bbc8f296
12 changed files with 84 additions and 2 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

@@ -0,0 +1,29 @@
{
"name": "Four Islands",
"nations": [
{
"coordinates": [403, 1296],
"flag": "",
"name": "Korinthal",
"strength": 2
},
{
"coordinates": [1152, 1251],
"flag": "",
"name": "Lunareth",
"strength": 2
},
{
"coordinates": [1328, 322],
"flag": "",
"name": "Sylvoria",
"strength": 2
},
{
"coordinates": [114, 121],
"flag": "",
"name": "Myrkwind",
"strength": 2
}
]
}
+2 -1
View File
@@ -28,6 +28,7 @@ var maps = []struct {
{Name: "europeclassic"},
{Name: "falklandislands"},
{Name: "faroeislands"},
{Name: "fourislands"},
{Name: "gatewaytotheatlantic"},
{Name: "giantworldmap"},
{Name: "halkidiki"},
@@ -195,4 +196,4 @@ func main() {
}
fmt.Println("Terrain maps generated successfully")
}
}
+2 -1
View File
@@ -210,7 +210,8 @@
"pluto": "Pluto",
"montreal": "Montreal",
"achiran": "Achiran",
"baikalnukewars": "Baikal (Nuke Wars)"
"baikalnukewars": "Baikal (Nuke Wars)",
"fourislands": "Four Islands"
},
"map_categories": {
"continental": "Continental",
+44
View File
@@ -0,0 +1,44 @@
{
"map": {
"height": 1500,
"num_land_tiles": 517044,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 31134,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 127644,
"width": 750
},
"name": "Four Islands",
"nations": [
{
"coordinates": [403, 1296],
"flag": "",
"name": "Korinthal",
"strength": 2
},
{
"coordinates": [1152, 1251],
"flag": "",
"name": "Lunareth",
"strength": 2
},
{
"coordinates": [1328, 322],
"flag": "",
"name": "Sylvoria",
"strength": 2
},
{
"coordinates": [114, 121],
"flag": "",
"name": "Myrkwind",
"strength": 2
}
]
}
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: 4.2 KiB

+1
View File
@@ -38,6 +38,7 @@ export const MapDescription: Record<keyof typeof GameMapType, string> = {
Montreal: "Montreal",
Achiran: "Achiran",
BaikalNukeWars: "Baikal (Nuke Wars)",
FourIslands: "Four Islands",
};
@customElement("map-display")
+1
View File
@@ -60,6 +60,7 @@ const numPlayersConfig = {
[GameMapType.Europe]: [100, 70, 50],
[GameMapType.EuropeClassic]: [50, 30, 30],
[GameMapType.FalklandIslands]: [50, 30, 20],
[GameMapType.FourIslands]: [20, 15, 10],
[GameMapType.FaroeIslands]: [20, 15, 10],
[GameMapType.GatewayToTheAtlantic]: [100, 70, 50],
[GameMapType.GiantWorldMap]: [100, 70, 50],
+2
View File
@@ -101,6 +101,7 @@ export enum GameMapType {
Montreal = "Montreal",
Achiran = "Achiran",
BaikalNukeWars = "Baikal (Nuke Wars)",
FourIslands = "Four Islands",
}
export type GameMapName = keyof typeof GameMapType;
@@ -143,6 +144,7 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.DeglaciatedAntarctica,
GameMapType.Achiran,
GameMapType.BaikalNukeWars,
GameMapType.FourIslands,
],
};