New map! "Didier" 🧸 (#2794)

## Description:

Didier map for the big french youtuber Fuze which already published
several OpenFront videos.
I took the real france, cut away the bordering countries and made it
look like Didier 😄
Gave it eyes, hands and feet.
Made sure we have some rivers, also put Corsica in the right bottom
corner!
It's quite large. Similar to the europe map. Has 42 nations (38 french
cities and 4 funny custom nations for the youtuber).
Made with [TsProphets map
generator](https://github.com/TsProphet94/OpenFrontMapGenerator), QGIS
and GIMP.
For public games I put a rare map frequenzy of 2 because most people
probably don't know Fuze.

@ibnhalwa from discord gave some insider knowledge about Fuze (He's
french, I'm not).

<img width="2100" height="2250" alt="image"
src="https://github.com/user-attachments/assets/5d1c3c45-4b2e-4f60-a02f-89b26f938652"
/>

<img width="1278" height="1218" alt="Screenshot 2026-01-05 184540"
src="https://github.com/user-attachments/assets/6e300bb0-6e9f-4b0f-bad8-94f031d250b1"
/>


![1_1200x1200_crop_center](https://github.com/user-attachments/assets/09b2aca7-32be-4ddc-9638-de7fe8c9f30c)

## 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
This commit is contained in:
FloPinguin
2026-01-06 01:19:13 +01:00
committed by GitHub
parent f73953c240
commit ecc174d248
13 changed files with 2184 additions and 1 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 725 KiB

+211
View File
@@ -0,0 +1,211 @@
{
"name": "Didier",
"nations": [
{
"coordinates": [120, 680],
"name": "Brest",
"flag": "fr"
},
{
"coordinates": [551, 748],
"name": "Rennes",
"flag": "fr"
},
{
"coordinates": [752, 500],
"name": "Caen",
"flag": "fr"
},
{
"coordinates": [841, 773],
"name": "Le Mans",
"flag": "fr"
},
{
"coordinates": [829, 424],
"name": "Le Havre",
"flag": "fr"
},
{
"coordinates": [980, 437],
"name": "Rouen",
"flag": "fr"
},
{
"coordinates": [1168, 577],
"name": "Paris",
"flag": "fr"
},
{
"coordinates": [1165, 331],
"name": "Amiens",
"flag": "fr"
},
{
"coordinates": [1279, 155],
"name": "Lille",
"flag": "fr"
},
{
"coordinates": [1096, 81],
"name": "Calais",
"flag": "fr"
},
{
"coordinates": [1426, 480],
"name": "Reims",
"flag": "fr"
},
{
"coordinates": [1758, 517],
"name": "Metz",
"flag": "fr"
},
{
"coordinates": [1762, 613],
"name": "Nancy",
"flag": "fr"
},
{
"coordinates": [1999, 642],
"name": "Strasbourg",
"flag": "fr"
},
{
"coordinates": [1939, 831],
"name": "Mulhouse",
"flag": "fr"
},
{
"coordinates": [1735, 948],
"name": "Besançon",
"flag": "fr"
},
{
"coordinates": [1583, 928],
"name": "Dijon",
"flag": "fr"
},
{
"coordinates": [1003, 799],
"name": "Orléans",
"flag": "fr"
},
{
"coordinates": [916, 911],
"name": "Tours",
"flag": "fr"
},
{
"coordinates": [1001, 1259],
"name": "Limoges",
"flag": "fr"
},
{
"coordinates": [861, 1095],
"name": "Poitiers",
"flag": "fr"
},
{
"coordinates": [939, 1186],
"name": "La Rochelle",
"flag": "fr"
},
{
"coordinates": [569, 949],
"name": "Nantes",
"flag": "fr"
},
{
"coordinates": [721, 1479],
"name": "Bordeaux",
"flag": "fr"
},
{
"coordinates": [1033, 1743],
"name": "Toulouse",
"flag": "fr"
},
{
"coordinates": [1258, 1929],
"name": "Perpignan",
"flag": "fr"
},
{
"coordinates": [1407, 1739],
"name": "Montpellier",
"flag": "fr"
},
{
"coordinates": [1480, 1690],
"name": "Nîmes",
"flag": "fr"
},
{
"coordinates": [1555, 1669],
"name": "Avignon",
"flag": "fr"
},
{
"coordinates": [1634, 1808],
"name": "Marseille",
"flag": "fr"
},
{
"coordinates": [1722, 1843],
"name": "Toulon",
"flag": "fr"
},
{
"coordinates": [1829, 1817],
"name": "Saint-Tropez",
"flag": "fr"
},
{
"coordinates": [1887, 1749],
"name": "Cannes",
"flag": "fr"
},
{
"coordinates": [1925, 1718],
"name": "Nice",
"flag": "fr"
},
{
"coordinates": [565, 1784],
"name": "Biarritz",
"flag": "fr"
},
{
"coordinates": [1483, 1349],
"name": "Saint-Étienne",
"flag": "fr"
},
{
"coordinates": [1558, 1278],
"name": "Lyon",
"flag": "fr"
},
{
"coordinates": [1692, 1402],
"name": "Grenoble",
"flag": "fr"
},
{
"coordinates": [1459, 1888],
"name": "Didier's Right Foot"
},
{
"coordinates": [482, 1196],
"name": "Didier's Left Hand"
},
{
"coordinates": [1237, 1147],
"name": "Napolidier"
},
{
"coordinates": [2012, 2198],
"name": "Arryn"
}
]
}
+1
View File
@@ -62,6 +62,7 @@ var maps = []struct {
{Name: "world"},
{Name: "lemnos"},
{Name: "twolakes"},
{Name: "didier"},
{Name: "big_plains", IsTest: true},
{Name: "half_land_half_ocean", IsTest: true},
{Name: "ocean_and_land", IsTest: true},
+2 -1
View File
@@ -252,7 +252,8 @@
"lemnos": "Lemnos",
"twolakes": "Two Lakes",
"straitofhormuz": "Strait of Hormuz",
"surrounded": "Surrounded"
"surrounded": "Surrounded",
"didier": "Didier"
},
"map_categories": {
"continental": "Continental",
+226
View File
@@ -0,0 +1,226 @@
{
"map": {
"height": 2248,
"num_land_tiles": 2303633,
"width": 2100
},
"map16x": {
"height": 562,
"num_land_tiles": 141151,
"width": 525
},
"map4x": {
"height": 1124,
"num_land_tiles": 571943,
"width": 1050
},
"name": "Didier",
"nations": [
{
"coordinates": [120, 680],
"name": "Brest",
"flag": "fr"
},
{
"coordinates": [551, 748],
"name": "Rennes",
"flag": "fr"
},
{
"coordinates": [752, 500],
"name": "Caen",
"flag": "fr"
},
{
"coordinates": [841, 773],
"name": "Le Mans",
"flag": "fr"
},
{
"coordinates": [829, 424],
"name": "Le Havre",
"flag": "fr"
},
{
"coordinates": [980, 437],
"name": "Rouen",
"flag": "fr"
},
{
"coordinates": [1168, 577],
"name": "Paris",
"flag": "fr"
},
{
"coordinates": [1165, 331],
"name": "Amiens",
"flag": "fr"
},
{
"coordinates": [1279, 155],
"name": "Lille",
"flag": "fr"
},
{
"coordinates": [1096, 81],
"name": "Calais",
"flag": "fr"
},
{
"coordinates": [1426, 480],
"name": "Reims",
"flag": "fr"
},
{
"coordinates": [1758, 517],
"name": "Metz",
"flag": "fr"
},
{
"coordinates": [1762, 613],
"name": "Nancy",
"flag": "fr"
},
{
"coordinates": [1999, 642],
"name": "Strasbourg",
"flag": "fr"
},
{
"coordinates": [1939, 831],
"name": "Mulhouse",
"flag": "fr"
},
{
"coordinates": [1735, 948],
"name": "Besançon",
"flag": "fr"
},
{
"coordinates": [1583, 928],
"name": "Dijon",
"flag": "fr"
},
{
"coordinates": [1003, 799],
"name": "Orléans",
"flag": "fr"
},
{
"coordinates": [916, 911],
"name": "Tours",
"flag": "fr"
},
{
"coordinates": [1001, 1259],
"name": "Limoges",
"flag": "fr"
},
{
"coordinates": [861, 1095],
"name": "Poitiers",
"flag": "fr"
},
{
"coordinates": [939, 1186],
"name": "La Rochelle",
"flag": "fr"
},
{
"coordinates": [569, 949],
"name": "Nantes",
"flag": "fr"
},
{
"coordinates": [721, 1479],
"name": "Bordeaux",
"flag": "fr"
},
{
"coordinates": [1033, 1743],
"name": "Toulouse",
"flag": "fr"
},
{
"coordinates": [1258, 1929],
"name": "Perpignan",
"flag": "fr"
},
{
"coordinates": [1407, 1739],
"name": "Montpellier",
"flag": "fr"
},
{
"coordinates": [1480, 1690],
"name": "Nîmes",
"flag": "fr"
},
{
"coordinates": [1555, 1669],
"name": "Avignon",
"flag": "fr"
},
{
"coordinates": [1634, 1808],
"name": "Marseille",
"flag": "fr"
},
{
"coordinates": [1722, 1843],
"name": "Toulon",
"flag": "fr"
},
{
"coordinates": [1829, 1817],
"name": "Saint-Tropez",
"flag": "fr"
},
{
"coordinates": [1887, 1749],
"name": "Cannes",
"flag": "fr"
},
{
"coordinates": [1925, 1718],
"name": "Nice",
"flag": "fr"
},
{
"coordinates": [565, 1784],
"name": "Biarritz",
"flag": "fr"
},
{
"coordinates": [1483, 1349],
"name": "Saint-Étienne",
"flag": "fr"
},
{
"coordinates": [1558, 1278],
"name": "Lyon",
"flag": "fr"
},
{
"coordinates": [1692, 1402],
"name": "Grenoble",
"flag": "fr"
},
{
"coordinates": [1459, 1888],
"name": "Didier's Right Foot"
},
{
"coordinates": [482, 1196],
"name": "Didier's Left Hand"
},
{
"coordinates": [1237, 1147],
"name": "Napolidier"
},
{
"coordinates": [2012, 2198],
"name": "Arryn"
}
]
}
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

+1
View File
@@ -47,6 +47,7 @@ export const MapDescription: Record<keyof typeof GameMapType, string> = {
TwoLakes: "Two Lakes",
StraitOfHormuz: "Strait of Hormuz",
Surrounded: "Surrounded",
Didier: "Didier",
};
@customElement("map-display")
+1
View File
@@ -88,6 +88,7 @@ const numPlayersConfig = {
[GameMapType.TwoLakes]: [60, 50, 40],
[GameMapType.StraitOfHormuz]: [40, 36, 30],
[GameMapType.Surrounded]: [42, 28, 14], // 3, 2, 1 player(s) per island
[GameMapType.Didier]: [100, 70, 50],
} as const satisfies Record<GameMapType, [number, number, number]>;
export abstract class DefaultServerConfig implements ServerConfig {
+2
View File
@@ -110,6 +110,7 @@ export enum GameMapType {
TwoLakes = "Two Lakes",
StraitOfHormuz = "Strait of Hormuz",
Surrounded = "Surrounded",
Didier = "Didier",
}
export type GameMapName = keyof typeof GameMapType;
@@ -161,6 +162,7 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.FourIslands,
GameMapType.Svalmel,
GameMapType.Surrounded,
GameMapType.Didier,
],
};
+1
View File
@@ -60,6 +60,7 @@ const frequency: Partial<Record<GameMapName, number>> = {
TwoLakes: 6,
StraitOfHormuz: 4,
Surrounded: 4,
Didier: 2,
};
interface MapWithMode {