Add Titan map with random spawn nations - along new Cosmic map category (#4183)

Resolves #4182

## Description:

Adds "Titan" (real moon of Saturn with methane seas) map . Uses new
random spawn nation feature by FloPinguin.
https://github.com/openfrontio/OpenFrontIO/pull/4156

Also adds new Cosmic map category. The "Other" map category has become a
wastebasket of unrelated maps, and with increasing number of maps, i
think its a good addition to have better categories for these maps.

I figured these 2 changes should go together since im adding a cosmic
map, and a cosmic category.

proof of nations spawning randomly and how the cosmic category looks in
the menu:


https://github.com/user-attachments/assets/b84bd3ef-6b8f-46fe-a6ea-ea5e79c6dc00

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

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

tri.star1011

---------

Co-authored-by: Evan <evanpelle@gmail.com>
This commit is contained in:
RickD004
2026-06-11 11:55:46 -06:00
committed by GitHub
parent 21776e81af
commit 7405339ea7
14 changed files with 1939 additions and 4 deletions
+5
View File
@@ -86,6 +86,11 @@ Ernie Wright (USRA) ORCID logo.
Scientist
Noah Petro (NASA/GSFC) ORCID logo.
### Titan Map
[NASA/JPL-Caltech/ASI/USGS](https://science.nasa.gov/photojournal/titans-north/)
[Public Domain](https://www.nasa.gov/nasa-brand-center/images-and-media/)
### Antarctica Map
Polar Geospatial Center, 2018, "PGC Map Catalog", https://doi.org/10.7910/DVN/6R8F7U, Harvard Dataverse, V1, [2364], [Apr-02-2026].
Binary file not shown.

After

Width:  |  Height:  |  Size: 975 KiB

+117
View File
@@ -0,0 +1,117 @@
{
"name": "Titan",
"nations": [
{
"name": "Stone-Keeping Purple Aliens",
"flag": "Purple Flag"
},
{
"name": "European Space Agency",
"flag": "eu"
},
{
"name": "UKSA",
"flag": "gb"
},
{
"name": "CNSA",
"flag": "cn"
},
{
"name": "NASA",
"flag": "us"
},
{
"name": "Roscosmos",
"flag": "ru"
},
{
"name": "JAXA",
"flag": "jp"
},
{
"name": "UAESA",
"flag": "ae"
},
{
"name": "NATA",
"flag": "kp"
},
{
"name": "CONAE",
"flag": "ar"
},
{
"name": "ASA",
"flag": "au"
},
{
"name": "UEB",
"flag": "br"
},
{
"name": "CSA",
"flag": "ca"
},
{
"name": "CNES",
"flag": "fr"
},
{
"name": "ISRO",
"flag": "in"
},
{
"name": "Iranian Space Agency",
"flag": "ir"
},
{
"name": "Israel Space Agency",
"flag": "il"
},
{
"name": "ASI",
"flag": "it"
},
{
"name": "KARI",
"flag": "kr"
},
{
"name": "MSA",
"flag": "mx"
},
{
"name": "NZSA",
"flag": "nz"
},
{
"name": "SUPARCO",
"flag": "pk"
},
{
"name": "POLSA",
"flag": "pl"
},
{
"name": "SNSA",
"flag": "se"
},
{
"name": "SSAU",
"flag": "ua"
},
{
"name": "LuxSpace",
"flag": "lu"
},
{
"name": "TUA",
"flag": "tr"
},
{
"name": "UNOOSA",
"flag": "un"
}
]
}
+1
View File
@@ -103,6 +103,7 @@ var maps = []struct {
{Name: "svalmel"},
{Name: "taiwanstrait"},
{Name: "thebox"},
{Name: "titan"},
{Name: "tourney1"},
{Name: "tourney2"},
{Name: "tourney3"},
+4
View File
@@ -1963,6 +1963,10 @@
"continent": "North America",
"name": "Puerto Rico"
},
{
"code": "Purple Flag",
"name": "Purple Flag"
},
{
"code": "Putrajaya",
"continent": "Asia",
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.1 KiB

+2
View File
@@ -614,6 +614,7 @@
"choppingblock": "Chopping Block",
"southeastasia": "Southeast Asia",
"mississippiriver": "Mississippi River",
"titan": "Titan",
"hongkong": "Hong Kong",
"juandefucastrait": "Juan De Fuca Strait"
},
@@ -621,6 +622,7 @@
"featured": "Featured",
"continental": "Continental",
"regional": "Regional",
"cosmic": "Cosmic",
"tournament": "Tournament",
"fantasy": "Other",
"special": "Special",
+132
View File
@@ -0,0 +1,132 @@
{
"map": {
"height": 2160,
"num_land_tiles": 1627144,
"width": 1232
},
"map16x": {
"height": 540,
"num_land_tiles": 96655,
"width": 308
},
"map4x": {
"height": 1080,
"num_land_tiles": 398688,
"width": 616
},
"name": "Titan",
"nations": [
{
"flag": "Purple Flag",
"name": "Stone-Keeping Purple Aliens"
},
{
"flag": "eu",
"name": "European Space Agency"
},
{
"flag": "gb",
"name": "UKSA"
},
{
"flag": "cn",
"name": "CNSA"
},
{
"flag": "us",
"name": "NASA"
},
{
"flag": "ru",
"name": "Roscosmos"
},
{
"flag": "jp",
"name": "JAXA"
},
{
"flag": "ae",
"name": "UAESA"
},
{
"flag": "kp",
"name": "NATA"
},
{
"flag": "ar",
"name": "CONAE"
},
{
"flag": "au",
"name": "ASA"
},
{
"flag": "br",
"name": "UEB"
},
{
"flag": "ca",
"name": "CSA"
},
{
"flag": "fr",
"name": "CNES"
},
{
"flag": "in",
"name": "ISRO"
},
{
"flag": "ir",
"name": "Iranian Space Agency"
},
{
"flag": "il",
"name": "Israel Space Agency"
},
{
"flag": "it",
"name": "ASI"
},
{
"flag": "kr",
"name": "KARI"
},
{
"flag": "mx",
"name": "MSA"
},
{
"flag": "nz",
"name": "NZSA"
},
{
"flag": "pk",
"name": "SUPARCO"
},
{
"flag": "pl",
"name": "POLSA"
},
{
"flag": "se",
"name": "SNSA"
},
{
"flag": "ua",
"name": "SSAU"
},
{
"flag": "lu",
"name": "LuxSpace"
},
{
"flag": "tr",
"name": "TUA"
},
{
"flag": "un",
"name": "UNOOSA"
}
]
}
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: 18 KiB

+8 -4
View File
@@ -185,6 +185,7 @@ export enum GameMapType {
ChoppingBlock = "Chopping Block",
SoutheastAsia = "SoutheastAsia",
MississippiRiver = "Mississippi River",
Titan = "Titan",
HongKong = "Hong Kong",
JuanDeFucaStrait = "Juan De Fuca Strait",
}
@@ -265,8 +266,6 @@ export const mapCategories: Record<string, GameMapType[]> = {
],
fantasy: [
GameMapType.Pangaea,
GameMapType.Pluto,
GameMapType.Mars,
GameMapType.DeglaciatedAntarctica,
GameMapType.Achiran,
GameMapType.BaikalNukeWars,
@@ -275,11 +274,16 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.Surrounded,
GameMapType.TradersDream,
GameMapType.Passage,
GameMapType.MilkyWay,
GameMapType.Dyslexdria,
GameMapType.Luna,
GameMapType.WorldInverted,
],
cosmic: [
GameMapType.Luna,
GameMapType.Mars,
GameMapType.Titan,
GameMapType.Pluto,
GameMapType.MilkyWay,
],
arcade: [
GameMapType.TheBox,
GameMapType.ChoppingBlock,
+1
View File
@@ -108,6 +108,7 @@ const FREQUENCY: Partial<Record<GameMapName, number>> = {
Svalmel: 8,
TaiwanStrait: 5,
TheBox: 3,
Titan: 3,
TradersDream: 4,
TwoLakes: 6,
Venice: 6,