Add a new Mars (Revised) map (#1435)

Fixes #1559

## Description:

The current Mars map has several issues:
- The map is very underdetailed
  - The coastlines are very smooth and visually unappealing
  
- The map was created from an incompatible source image, which results
in the height data being very wrong
  - As a result the map hardly resembles Mars at all.
  - There is too much land
  - The major landmass is almost entirely covered in plains
  - The ocean doesn't match the heightmap

- The gameplay is boring
  - The map is very succeptable to snowballing issues
  - The map seems commonly disliked in the community

I attempted to remedy this. 
- The water level and elevation are calculated from accurate height data
- Water level is much higher making the map much more interesting, both
in the gameplay and visual aspect.
  - The map has several contitents which should slow down snowballing
- The map is much more detailed overall
- I added a lot more NPC's. 8 for such a big map just wasn't enough.
<img width="2500" height="1150" alt="Mars_Out2"
src="https://github.com/user-attachments/assets/7b7009f7-6376-4059-b731-86931df8f926"
/>


- [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
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aceralex

---------

Co-authored-by: Drills Kibo <59177241+drillskibo@users.noreply.github.com>
This commit is contained in:
djmrFunnyMan
2025-08-05 22:40:56 +02:00
committed by GitHub
parent 215d231a53
commit 4b7bd3bcdb
9 changed files with 188 additions and 0 deletions
+1
View File
@@ -147,6 +147,7 @@
"africa": "Africa",
"asia": "Asia",
"mars": "Mars",
"marsrevised": "Mars (Revised)",
"southamerica": "South America",
"britannia": "Britannia",
"gatewaytotheatlantic": "Gateway to the Atlantic",
+171
View File
@@ -0,0 +1,171 @@
{
"map": {
"height": 1150,
"num_land_tiles": 1021856,
"width": 2500
},
"mini_map": {
"height": 575,
"num_land_tiles": 248400,
"width": 1250
},
"name": "Mars",
"nations": [
{
"coordinates": [2030, 868],
"flag": "us",
"name": "United States Colony",
"strength": 3
},
{
"coordinates": [1710, 340],
"flag": "ru",
"name": "Russian Colony",
"strength": 2
},
{
"coordinates": [192, 410],
"flag": "",
"name": "European Space Agency",
"strength": 2
},
{
"coordinates": [1460, 488],
"flag": "gb",
"name": "British Colony",
"strength": 3
},
{
"coordinates": [700, 600],
"flag": "cn",
"name": "Chinese Colony",
"strength": 3
},
{
"coordinates": [1200, 276],
"flag": "kp",
"name": "North Korean Colony",
"strength": 1
},
{
"coordinates": [1760, 840],
"flag": "",
"name": "Olympus Mons Tribe",
"strength": 1
},
{
"coordinates": [837, 200],
"flag": "African union",
"name": "African Space Agency",
"strength": 2
},
{
"coordinates": [1140, 890],
"flag": "",
"name": "Elysium Mons Tribe",
"strength": 1
},
{
"coordinates": [430, 740],
"flag": "in",
"name": "Indian Colony",
"strength": 2
},
{
"coordinates": [1350, 100],
"flag": "un",
"name": "United Nations Base",
"strength": 3
},
{
"coordinates": [460, 110],
"flag": "ca",
"name": "Canadian Colony",
"strength": 2
},
{
"coordinates": [1070, 575],
"flag": "jp",
"name": "Japanese Colony",
"strength": 3
},
{
"coordinates": [1960, 555],
"flag": "de",
"name": "German Colony",
"strength": 3
},
{
"coordinates": [2100, 400],
"flag": "fr",
"name": "French Colony",
"strength": 2
},
{
"coordinates": [2200, 515],
"flag": "tr",
"name": "Turkish Colony",
"strength": 1
},
{
"coordinates": [1924, 1015],
"flag": "za",
"name": "South African Colony",
"strength": 1
},
{
"coordinates": [1727, 510],
"flag": "es",
"name": "Spanish Colony",
"strength": 2
},
{
"coordinates": [295, 565],
"flag": "ch",
"name": "Swiss Colony",
"strength": 1
},
{
"coordinates": [94, 82],
"flag": "br",
"name": "Brazilian Colony",
"strength": 1
},
{
"coordinates": [1070, 69],
"flag": "sa",
"name": "Saudi Arabian Colony",
"strength": 1
},
{
"coordinates": [470, 240],
"flag": "is",
"name": "Iceland Colony",
"strength": 3
},
{
"coordinates": [106, 312],
"flag": "ie",
"name": "Irish Colony",
"strength": 1
},
{
"coordinates": [1900, 380],
"flag": "ro",
"name": "Romanian Colony",
"strength": 1
},
{
"coordinates": [1518, 40],
"flag": "se",
"name": "Swedish Colony",
"strength": 1
},
{
"coordinates": [1870, 200],
"flag": "mn",
"name": "Mongolian Colony",
"strength": 1
}
]
}
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
@@ -18,6 +18,7 @@ export const MapDescription: Record<keyof typeof GameMapType, string> = {
Pangaea: "Pangaea",
Asia: "Asia",
Mars: "Mars",
MarsRevised: "Mars Revised",
SouthAmerica: "South America",
Britannia: "Britannia",
GatewayToTheAtlantic: "Gateway to the Atlantic",
+1
View File
@@ -54,6 +54,7 @@ const numPlayersConfig = {
[GameMapType.FalklandIslands]: [80, 50, 30],
[GameMapType.Baikal]: [60, 50, 40],
[GameMapType.Mena]: [60, 50, 30],
[GameMapType.MarsRevised]: [70, 50, 40],
[GameMapType.Mars]: [50, 40, 30],
[GameMapType.Oceania]: [30, 20, 10],
[GameMapType.EastAsia]: [50, 40, 30],
+2
View File
@@ -69,6 +69,7 @@ export enum GameMapType {
Pangaea = "Pangaea",
Asia = "Asia",
Mars = "Mars",
MarsRevised = "Mars Revised",
Britannia = "Britannia",
GatewayToTheAtlantic = "Gateway to the Atlantic",
Australia = "Australia",
@@ -120,6 +121,7 @@ export const mapCategories: Record<string, GameMapType[]> = {
fantasy: [
GameMapType.Pangaea,
GameMapType.Pluto,
GameMapType.MarsRevised,
GameMapType.Mars,
GameMapType.DeglaciatedAntarctica,
],
+1
View File
@@ -37,6 +37,7 @@ const frequency: Partial<Record<GameMapName, number>> = {
Pangaea: 1,
Asia: 1,
Mars: 1,
MarsRevised: 1,
BetweenTwoSeas: 1,
EastAsia: 1,
BlackSea: 1,