Adds Milky Way Map (#3519)

## Description:

Adds Milky Way galaxy map based on real reconstruction by NASA. Star
density simulated as terrain. Best played in Dark Mode.

Also adds credits to JPL NASA

<img width="532" height="533" alt="Captura de pantalla 2026-03-26
142938"
src="https://github.com/user-attachments/assets/87bb19bb-4e2d-4383-a3e9-6e14b714b84c"
/>

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

tri.star1011
This commit is contained in:
RickD004
2026-03-26 20:18:30 -06:00
committed by GitHub
parent 14a5128e87
commit 217a2c4548
12 changed files with 99 additions and 1 deletions
+5
View File
@@ -59,6 +59,11 @@ Licensed under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
[Arctic SDI](https://catalogue.arctic-sdi.org/geonetwork/srv/spa/catalog.search#/metadata/8b4f2b34-2d0d-4744-ae0f-d7989b9f7a02)
Licensed under [CC0 1.0.](https://creativecommons.org/publicdomain/zero/1.0/legalcode.en)
### Milky Way Map
[NASA/JPL-Caltech](https://www.jpl.nasa.gov/images/pia10748-our-milky-way-gets-a-makeover-artist-concept/)
[Public Domain](https://www.jpl.nasa.gov/jpl-image-use-policy/)
## Icons
### [The Noun Project](https://thenounproject.com/)
Binary file not shown.

After

Width:  |  Height:  |  Size: 589 KiB

@@ -0,0 +1,35 @@
{
"name": "milkyway",
"nations": [
{
"coordinates": [775, 757],
"name": "Sagittarius A*",
"flag": ""
},
{
"coordinates": [967, 247],
"name": "Perseus Arm",
"flag": ""
},
{
"coordinates": [478, 1139],
"name": "Centaurus Arm",
"flag": ""
},
{
"coordinates": [840, 1048],
"name": "Empire of Mankind",
"flag": "un"
},
{
"coordinates": [1055, 1330],
"name": "Aliens",
"flag": ""
},
{
"coordinates": [531, 164],
"name": "The Void",
"flag": "Cthulhu Republic"
}
]
}
+1
View File
@@ -83,6 +83,7 @@ var maps = []struct {
{Name: "arctic"},
{Name: "sanfrancisco"},
{Name: "aegean"},
{Name: "milkyway"},
{Name: "big_plains", IsTest: true},
{Name: "half_land_half_ocean", IsTest: true},
{Name: "ocean_and_land", IsTest: true},
+2 -1
View File
@@ -350,7 +350,8 @@
"niledelta": "Nile Delta",
"arctic": "Arctic",
"sanfrancisco": "San Francisco",
"aegean": "Aegean"
"aegean": "Aegean",
"milkyway": "Milky Way"
},
"map_categories": {
"featured": "Featured",
+50
View File
@@ -0,0 +1,50 @@
{
"map": {
"height": 1500,
"num_land_tiles": 442979,
"width": 1500
},
"map16x": {
"height": 375,
"num_land_tiles": 24807,
"width": 375
},
"map4x": {
"height": 750,
"num_land_tiles": 106678,
"width": 750
},
"name": "milkyway",
"nations": [
{
"coordinates": [775, 757],
"flag": "",
"name": "Sagittarius A*"
},
{
"coordinates": [967, 247],
"flag": "",
"name": "Perseus Arm"
},
{
"coordinates": [478, 1139],
"flag": "",
"name": "Centaurus Arm"
},
{
"coordinates": [840, 1048],
"flag": "un",
"name": "Empire of Mankind"
},
{
"coordinates": [1055, 1330],
"flag": "",
"name": "Aliens"
},
{
"coordinates": [531, 164],
"flag": "Cthulhu Republic",
"name": "The Void"
}
]
}
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: 10 KiB

+2
View File
@@ -143,6 +143,7 @@ export enum GameMapType {
Arctic = "Arctic",
SanFrancisco = "San Francisco",
Aegean = "Aegean",
MilkyWay = "MilkyWay",
}
export type GameMapName = keyof typeof GameMapType;
@@ -207,6 +208,7 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.Surrounded,
GameMapType.TradersDream,
GameMapType.Passage,
GameMapType.MilkyWay,
],
arcade: [
GameMapType.TheBox,
+1
View File
@@ -84,6 +84,7 @@ const frequency: Partial<Record<GameMapName, number>> = {
Arctic: 6,
SanFrancisco: 3,
Aegean: 6,
MilkyWay: 8,
};
const TEAM_WEIGHTS: { config: TeamCountConfig; weight: number }[] = [