Feat: Lemnos Map (#2683)

## Description:

Introduces the Greek island, Lemnos, as a map. The island is both fun
and challenging to play (because of the terrain and elevation) and this
addition was inspired by Altis from the game [Arma
3](https://armedassault.fandom.com/wiki/Altis). The nation names are set
based on the real landmarks, towns, and regions.

<img width="2190" height="1791" alt="image"
src="https://github.com/user-attachments/assets/a7a6de54-f376-43ac-87da-f20aecfebbe0"
/>

<img width="1994" height="1608" alt="image"
src="https://github.com/user-attachments/assets/bc280780-298f-4342-8313-db6cc27ac188"
/>



## 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-26 15:15:54 -05:00
committed by GitHub
parent 77504a26b3
commit 677a17d05a
13 changed files with 916 additions and 1 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

@@ -0,0 +1,50 @@
{
"name": "Lemnos",
"nations": [
{
"coordinates": [550, 317],
"name": "Gomati",
"flag": ""
},
{
"coordinates": [1371, 254],
"name": "Zematas",
"flag": ""
},
{
"coordinates": [1096, 605],
"name": "Kotsinas",
"flag": ""
},
{
"coordinates": [518, 894],
"name": "Evgatis",
"flag": ""
},
{
"coordinates": [250, 879],
"name": "Kavala",
"flag": ""
},
{
"coordinates": [814, 460],
"name": "Atsiki",
"flag": ""
},
{
"coordinates": [474, 542],
"name": "Sardes",
"flag": ""
},
{
"coordinates": [691, 755],
"name": "Portianou",
"flag": ""
},
{
"coordinates": [1074, 913],
"name": "Pyrgos",
"flag": ""
}
]
}
+1
View File
@@ -59,6 +59,7 @@ var maps = []struct {
{Name: "straitofgibraltar"},
{Name: "svalmel"},
{Name: "world"},
{Name: "lemnos"},
{Name: "big_plains", IsTest: true},
{Name: "half_land_half_ocean", IsTest: true},
{Name: "ocean_and_land", IsTest: true},
+2 -1
View File
@@ -243,7 +243,8 @@
"gulfofstlawrence": "Gulf of St. Lawrence",
"lisbon": "Lisbon",
"svalmel": "Svalmel",
"manicouagan": "Manicouagan"
"manicouagan": "Manicouagan",
"lemnos": "Lemnos"
},
"map_categories": {
"continental": "Continental",
+65
View File
@@ -0,0 +1,65 @@
{
"map": {
"height": 1420,
"num_land_tiles": 874650,
"width": 1750
},
"map16x": {
"height": 355,
"num_land_tiles": 53106,
"width": 437
},
"map4x": {
"height": 710,
"num_land_tiles": 216592,
"width": 875
},
"name": "lemnos",
"nations": [
{
"coordinates": [550, 317],
"flag": "",
"name": "Gomati"
},
{
"coordinates": [1371, 254],
"flag": "",
"name": "Zematas"
},
{
"coordinates": [1096, 605],
"flag": "",
"name": "Kotsinas"
},
{
"coordinates": [518, 894],
"flag": "",
"name": "Evgatis"
},
{
"coordinates": [250, 879],
"flag": "",
"name": "Kavala"
},
{
"coordinates": [814, 460],
"flag": "",
"name": "Atsiki"
},
{
"coordinates": [474, 542],
"flag": "",
"name": "Sardes"
},
{
"coordinates": [691, 755],
"flag": "",
"name": "Portianou"
},
{
"coordinates": [1177, 975],
"flag": "",
"name": "Pyrgos"
}
]
}
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: 11 KiB

+1
View File
@@ -43,6 +43,7 @@ export const MapDescription: Record<keyof typeof GameMapType, string> = {
GulfOfStLawrence: "Gulf of St. Lawrence",
Lisbon: "Lisbon",
Manicouagan: "Manicouagan",
Lemnos: "Lemnos",
};
@customElement("map-display")
+1
View File
@@ -83,6 +83,7 @@ const numPlayersConfig = {
[GameMapType.StraitOfGibraltar]: [100, 70, 50],
[GameMapType.Svalmel]: [40, 36, 30],
[GameMapType.World]: [50, 30, 20],
[GameMapType.Lemnos]: [20, 15, 10],
} as const satisfies Record<GameMapType, [number, number, number]>;
export abstract class DefaultServerConfig implements ServerConfig {
+2
View File
@@ -106,6 +106,7 @@ export enum GameMapType {
GulfOfStLawrence = "Gulf of St. Lawrence",
Lisbon = "Lisbon",
Manicouagan = "Manicouagan",
Lemnos = "Lemnos",
}
export type GameMapName = keyof typeof GameMapType;
@@ -143,6 +144,7 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.Lisbon,
GameMapType.NewYorkCity,
GameMapType.Manicouagan,
GameMapType.Lemnos,
],
fantasy: [
GameMapType.Pangaea,
+1
View File
@@ -56,6 +56,7 @@ const frequency: Partial<Record<GameMapName, number>> = {
StraitOfGibraltar: 5,
Svalmel: 8,
World: 8,
Lemnos: 3,
};
interface MapWithMode {