Feat: Tournament Maps (#3483)

## Description:

Introduces 4 new private match maps for the OFM tournament in May.
Includes 2, 3, 4, and 8 player maps. Playtested, and include as many
default nations as the map expects players, named after compass points.
Give it a try at https://tourney-maps.openfront.dev/

<img width="1500" height="1500" alt="image"
src="https://github.com/user-attachments/assets/9138b636-5dd7-4118-82e2-50a5125a7963"
/>

The base images were created from scratch based on prototype designs,
and they were converted from vector versions I made. I haven't decided
on what the names should be for the maps themselves, so for now they're
just `Tourney Map 1`, `Tourney Map 2`, etc. Ideas welcome.


## 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
2026-03-21 16:54:49 -04:00
committed by GitHub
parent bf09b9c9be
commit 837458c369
31 changed files with 267 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

@@ -0,0 +1,13 @@
{
"name": "Tourney1",
"nations": [
{
"coordinates": [177, 510],
"name": "Left"
},
{
"coordinates": [847, 511],
"name": "Right"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

@@ -0,0 +1,17 @@
{
"name": "Tourney2",
"nations": [
{
"coordinates": [339, 987],
"name": "South West"
},
{
"coordinates": [1162, 990],
"name": "South East"
},
{
"coordinates": [750, 278],
"name": "North"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

@@ -0,0 +1,21 @@
{
"name": "Tourney3",
"nations": [
{
"coordinates": [437, 410],
"name": "North West"
},
{
"coordinates": [1066, 408],
"name": "North East"
},
{
"coordinates": [433, 1088],
"name": "South West"
},
{
"coordinates": [1068, 1075],
"name": "South East"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

@@ -0,0 +1,37 @@
{
"name": "Tourney4",
"nations": [
{
"coordinates": [568, 309],
"name": "North North West"
},
{
"coordinates": [308, 562],
"name": "West North West"
},
{
"coordinates": [945, 303],
"name": "North North East"
},
{
"coordinates": [1188, 556],
"name": "East North East"
},
{
"coordinates": [1196, 931],
"name": "East South East"
},
{
"coordinates": [941, 1178],
"name": "South South East"
},
{
"coordinates": [564, 1185],
"name": "South South West"
},
{
"coordinates": [315, 927],
"name": "West South West"
}
]
}
+4
View File
@@ -68,6 +68,10 @@ var maps = []struct {
{Name: "world"},
{Name: "lemnos"},
{Name: "twolakes"},
{Name: "tourney1"},
{Name: "tourney2"},
{Name: "tourney3"},
{Name: "tourney4"},
{Name: "thebox"},
{Name: "didier"},
{Name: "didierfrance"},
+5
View File
@@ -329,6 +329,10 @@
"svalmel": "Svalmel",
"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",
@@ -352,6 +356,7 @@
"featured": "Featured",
"continental": "Continental",
"regional": "Regional",
"tournament": "Tournament",
"fantasy": "Other",
"special": "Special",
"arcade": "Arcade"
+28
View File
@@ -0,0 +1,28 @@
{
"map": {
"height": 1500,
"num_land_tiles": 984577,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 60237,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 244567,
"width": 750
},
"name": "Tourney1",
"nations": [
{
"coordinates": [177, 510],
"name": "Left"
},
{
"coordinates": [847, 511],
"name": "Right"
}
]
}
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: 5.8 KiB

+32
View File
@@ -0,0 +1,32 @@
{
"map": {
"height": 1500,
"num_land_tiles": 1024327,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 62691,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 254300,
"width": 750
},
"name": "Tourney2",
"nations": [
{
"coordinates": [339, 987],
"name": "South West"
},
{
"coordinates": [1162, 990],
"name": "South East"
},
{
"coordinates": [750, 278],
"name": "North"
}
]
}
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: 6.9 KiB

+36
View File
@@ -0,0 +1,36 @@
{
"map": {
"height": 1500,
"num_land_tiles": 1008007,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 61644,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 250191,
"width": 750
},
"name": "Tourney3",
"nations": [
{
"coordinates": [437, 410],
"name": "North West"
},
{
"coordinates": [1066, 408],
"name": "North East"
},
{
"coordinates": [433, 1088],
"name": "South West"
},
{
"coordinates": [1068, 1075],
"name": "South East"
}
]
}
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: 6.4 KiB

+52
View File
@@ -0,0 +1,52 @@
{
"map": {
"height": 1500,
"num_land_tiles": 905705,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 54860,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 224342,
"width": 750
},
"name": "Tourney4",
"nations": [
{
"coordinates": [568, 309],
"name": "North North West"
},
{
"coordinates": [308, 562],
"name": "West North West"
},
{
"coordinates": [945, 303],
"name": "North North East"
},
{
"coordinates": [1188, 556],
"name": "East North East"
},
{
"coordinates": [1196, 931],
"name": "East South East"
},
{
"coordinates": [941, 1178],
"name": "South South East"
},
{
"coordinates": [564, 1185],
"name": "South South West"
},
{
"coordinates": [315, 927],
"name": "West South West"
}
]
}
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: 8.9 KiB

+10
View File
@@ -120,6 +120,10 @@ export enum GameMapType {
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",
@@ -210,6 +214,12 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.DidierFrance,
GameMapType.Sierpinski,
],
tournament: [
GameMapType.Tourney1,
GameMapType.Tourney2,
GameMapType.Tourney3,
GameMapType.Tourney4,
],
};
export enum GameType {