-
Notifications
You must be signed in to change notification settings - Fork 1k
Added taiwan strait map #3853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Added taiwan strait map #3853
Changes from 2 commits
66104cc
e8c0d66
b2cd1b7
97e9407
b2f00ce
1fe45e5
f1e3650
e1b74b9
23d9126
65296f5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,145 @@ | ||
| { | ||
| "name": "taiwanstrait", | ||
| "nations": [ | ||
| { | ||
| "name": "Fuzhou", | ||
| "flag": "cn", | ||
| "coordinates": [835, 35] | ||
| }, | ||
| { | ||
| "name": "Putian", | ||
| "flag": "cn", | ||
| "coordinates": [777, 226] | ||
| }, | ||
| { | ||
| "name": "Quanzhou", | ||
| "flag": "cn", | ||
| "coordinates": [686, 330] | ||
| }, | ||
| { | ||
| "name": "Chinese Military Base", | ||
| "flag": "cn", | ||
| "coordinates": [459, 116] | ||
| }, | ||
| { | ||
| "name": "Xiamen", | ||
| "flag": "cn", | ||
| "coordinates": [540, 465] | ||
| }, | ||
| { | ||
| "name": "Zhangzhou", | ||
| "flag": "cn", | ||
| "coordinates": [435, 482] | ||
| }, | ||
| { | ||
| "name": "Longyan", | ||
| "flag": "cn", | ||
| "coordinates": [279, 412] | ||
| }, | ||
| { | ||
| "name": "Shantou", | ||
| "flag": "cn", | ||
| "coordinates": [197, 743] | ||
| }, | ||
| { | ||
| "name": "Jieyang", | ||
| "flag": "cn", | ||
| "coordinates": [112, 793] | ||
| }, | ||
| { | ||
| "name": "Chaozhou", | ||
| "flag": "cn", | ||
| "coordinates": [125, 700] | ||
| }, | ||
| { | ||
| "name": "Giant Pandas", | ||
| "flag": "cn", | ||
| "coordinates": [14, 215] | ||
| }, | ||
| { | ||
| "name": "Meizhou", | ||
| "flag": "cn", | ||
| "coordinates": [29, 503] | ||
| }, | ||
| { | ||
| "name": "Kinmen Island", | ||
| "flag": "tw", | ||
| "coordinates": [612, 478] | ||
| }, | ||
| { | ||
| "name": "Penghu", | ||
| "flag": "tw", | ||
| "coordinates": [912, 718] | ||
| }, | ||
| { | ||
| "name": "Kaohsiung", | ||
| "flag": "tw", | ||
| "coordinates": [1134, 990] | ||
| }, | ||
| { | ||
| "name": "Tainan", | ||
| "flag": "tw", | ||
| "coordinates": [1085, 884] | ||
| }, | ||
| { | ||
| "name": "Taitung", | ||
| "flag": "tw", | ||
| "coordinates": [1289, 931] | ||
| }, | ||
| { | ||
| "name": "Hualien", | ||
| "flag": "tw", | ||
| "coordinates": [1378, 681] | ||
| }, | ||
| { | ||
| "name": "Chiayi", | ||
| "flag": "tw", | ||
| "coordinates": [1121, 768] | ||
| }, | ||
| { | ||
| "name": "Taichung City", | ||
| "flag": "tw", | ||
| "coordinates": [1117, 618] | ||
| }, | ||
| { | ||
| "name": "Keelung", | ||
| "flag": "tw", | ||
| "coordinates": [1476, 320] | ||
| }, | ||
| { | ||
| "name": "Taipei", | ||
| "flag": "tw", | ||
| "coordinates": [1388, 347] | ||
| }, | ||
| { | ||
| "name": "Taoyuan", | ||
| "flag": "tw", | ||
| "coordinates": [1295, 350] | ||
| }, | ||
| { | ||
| "name": "Hsinchu", | ||
| "flag": "tw", | ||
| "coordinates": [1247, 415] | ||
| } | ||
| ], | ||
| "metadata": { | ||
| "author": "crunchybbb", | ||
| "description": "taiwan strait" | ||
| }, | ||
| "generatedAt": "2026-05-06T02:07:50.785Z", | ||
| "map": { | ||
| "width": 1560, | ||
| "height": 1184, | ||
| "num_land_tiles": 748967 | ||
| }, | ||
| "map4x": { | ||
| "width": 780, | ||
| "height": 592, | ||
| "num_land_tiles": 185705 | ||
| }, | ||
| "map16x": { | ||
| "width": 390, | ||
| "height": 296, | ||
| "num_land_tiles": 45758 | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,145 @@ | ||
| { | ||
| "name": "taiwanstrait", | ||
| "nations": [ | ||
| { | ||
| "name": "Fuzhou", | ||
| "flag": "cn", | ||
| "coordinates": [835, 35] | ||
| }, | ||
| { | ||
| "name": "Putian", | ||
| "flag": "cn", | ||
| "coordinates": [777, 226] | ||
| }, | ||
| { | ||
| "name": "Quanzhou", | ||
| "flag": "cn", | ||
| "coordinates": [686, 330] | ||
| }, | ||
| { | ||
| "name": "Chinese Military Base", | ||
| "flag": "cn", | ||
| "coordinates": [459, 116] | ||
| }, | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Check other map manifests for any bot-specific field
rg -n '"bot"' resources/maps/
rg -n '"type"' resources/maps/ | head -60
# Also compare a known manifest structure for reference
fd manifest.json resources/maps/ --exec head -30 {}Repository: openfrontio/OpenFrontIO Length of output: 39592 🏁 Script executed: cat resources/maps/taiwanstrait/manifest.jsonRepository: openfrontio/OpenFrontIO Length of output: 2565 🏁 Script executed: # Search for any mechanism the engine uses to identify bots
rg -n 'bot|Bot|BOT' --type json resources/maps/ | head -20Repository: openfrontio/OpenFrontIO Length of output: 273 🏁 Script executed: # Check engine source for how it processes nation entries
fd -e ts -e js -e tsx -e jsx . --path '*engine*' --path '*spawn*' --path '*nation*' 2>/dev/null | head -20Repository: openfrontio/OpenFrontIO Length of output: 49 🏁 Script executed: # Search engine source for how it handles bot spawns or nation processing
rg -n 'bot|meme|spawn' --type ts --type tsx -i | grep -i 'nation\|spawn\|bot' | head -30Repository: openfrontio/OpenFrontIO Length of output: 95 🏁 Script executed: # Look for manifest loading or nation initialization code
fd -e ts -e tsx -e js -e jsx | xargs rg -l 'manifest|nation' | head -10Repository: openfrontio/OpenFrontIO Length of output: 408 🏁 Script executed: # Check if there's documentation or schema about manifests
fd manifest -type f | xargs ls -la 2>/dev/nullRepository: openfrontio/OpenFrontIO Length of output: 3029 🏁 Script executed: # Find source files that might handle nation/spawn logic
find src -type f -name "*.ts" | head -20Repository: openfrontio/OpenFrontIO Length of output: 599 🏁 Script executed: # Search for how nations are loaded from manifests
rg -n "nations" src --type ts | head -30Repository: openfrontio/OpenFrontIO Length of output: 2648 🏁 Script executed: # Search for bot or meme-related spawning logic
rg -n "bot\|meme\|spawn" src --type ts -i | head -40Repository: openfrontio/OpenFrontIO Length of output: 49 🏁 Script executed: # Search for manifest loading and nation instantiation
rg -n "manifest\|nation\|Nation" src/server --type ts | grep -i "manifest\|from\|load\|spawn\|create" | head -40Repository: openfrontio/OpenFrontIO Length of output: 49 🏁 Script executed: # Look at GameServer and GameManager to understand nation spawning
head -150 src/server/GameServer.ts | tail -80Repository: openfrontio/OpenFrontIO Length of output: 2532 🏁 Script executed: # Search for where manifest data is actually used
rg -n "manifest\.nations\|getManifest\|loadManifest" src --type ts | head -20Repository: openfrontio/OpenFrontIO Length of output: 49 🏁 Script executed: # Find GameConfig type definition
rg -n "type GameConfig\|interface GameConfig" src --type ts -A 20 | head -60Repository: openfrontio/OpenFrontIO Length of output: 49 🏁 Script executed: # Search for where nations from manifest are instantiated in game
rg -n "new Nation\|createNation\|Nation(" src/core --type ts | head -20Repository: openfrontio/OpenFrontIO Length of output: 184 🏁 Script executed: # Look for NationState or similar that represents a nation in the game
find src/core -name "*.ts" | grep -i nation | head -10Repository: openfrontio/OpenFrontIO Length of output: 525 🏁 Script executed: # Read NationCreation.ts to understand how nations are created
cat src/core/game/NationCreation.tsRepository: openfrontio/OpenFrontIO Length of output: 14245 🏁 Script executed: # Also check GameConfig type definition in a broader way
rg -n "GameConfig" src --type ts | grep -E "interface|type|class" | head -10Repository: openfrontio/OpenFrontIO Length of output: 667 Mark meme-bot nations with a distinguishing field or move them to a separate spawn section. The entries for "Giant Pandas" and "Chinese Military Base" lack any field that marks them as bots (such as To ensure these meme nations spawn correctly as AI bots instead of appearing in the player nation selection, add a bot identifier field to the manifest entries or move them to a dedicated bot spawn section. 🤖 Prompt for AI Agents
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. they are nations , kinda like the normal capybaras and just otters from south america map
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: Length of output: 0 🏁 Script executed: Length of output: 3235 🏁 Script executed: Length of output: 865
✏️ Learnings added
🧠 Learnings used |
||
| { | ||
| "name": "Xiamen", | ||
| "flag": "cn", | ||
| "coordinates": [540, 465] | ||
| }, | ||
| { | ||
| "name": "Zhangzhou", | ||
| "flag": "cn", | ||
| "coordinates": [435, 482] | ||
| }, | ||
| { | ||
| "name": "Longyan", | ||
| "flag": "cn", | ||
| "coordinates": [279, 412] | ||
| }, | ||
| { | ||
| "name": "Shantou", | ||
| "flag": "cn", | ||
| "coordinates": [197, 743] | ||
| }, | ||
| { | ||
| "name": "Jieyang", | ||
| "flag": "cn", | ||
| "coordinates": [112, 793] | ||
| }, | ||
| { | ||
| "name": "Chaozhou", | ||
| "flag": "cn", | ||
| "coordinates": [125, 700] | ||
| }, | ||
| { | ||
| "name": "Giant Pandas", | ||
| "flag": "cn", | ||
| "coordinates": [14, 215] | ||
| }, | ||
| { | ||
| "name": "Meizhou", | ||
| "flag": "cn", | ||
| "coordinates": [29, 503] | ||
| }, | ||
| { | ||
| "name": "Kinmen Island", | ||
| "flag": "tw", | ||
| "coordinates": [612, 478] | ||
| }, | ||
| { | ||
| "name": "Penghu", | ||
| "flag": "tw", | ||
| "coordinates": [912, 718] | ||
| }, | ||
| { | ||
| "name": "Kaohsiung", | ||
| "flag": "tw", | ||
| "coordinates": [1134, 990] | ||
| }, | ||
| { | ||
| "name": "Tainan", | ||
| "flag": "tw", | ||
| "coordinates": [1085, 884] | ||
| }, | ||
| { | ||
| "name": "Taitung", | ||
| "flag": "tw", | ||
| "coordinates": [1289, 931] | ||
| }, | ||
| { | ||
| "name": "Hualien", | ||
| "flag": "tw", | ||
| "coordinates": [1378, 681] | ||
| }, | ||
| { | ||
| "name": "Chiayi", | ||
| "flag": "tw", | ||
| "coordinates": [1121, 768] | ||
| }, | ||
| { | ||
| "name": "Taichung City", | ||
| "flag": "tw", | ||
| "coordinates": [1117, 618] | ||
| }, | ||
| { | ||
| "name": "Keelung", | ||
| "flag": "tw", | ||
| "coordinates": [1476, 320] | ||
| }, | ||
| { | ||
| "name": "Taipei", | ||
| "flag": "tw", | ||
| "coordinates": [1388, 347] | ||
| }, | ||
| { | ||
| "name": "Taoyuan", | ||
| "flag": "tw", | ||
| "coordinates": [1295, 350] | ||
| }, | ||
| { | ||
| "name": "Hsinchu", | ||
| "flag": "tw", | ||
| "coordinates": [1247, 415] | ||
| } | ||
| ], | ||
| "metadata": { | ||
| "author": "crunchybbb", | ||
| "description": "taiwan strait" | ||
| }, | ||
| "generatedAt": "2026-05-06T02:07:50.785Z", | ||
| "map": { | ||
| "width": 1560, | ||
| "height": 1184, | ||
| "num_land_tiles": 748967 | ||
| }, | ||
| "map4x": { | ||
| "width": 780, | ||
| "height": 592, | ||
| "num_land_tiles": 185705 | ||
| }, | ||
| "map16x": { | ||
| "width": 390, | ||
| "height": 296, | ||
| "num_land_tiles": 45758 | ||
| } | ||
| } | ||
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -169,6 +169,7 @@ export enum GameMapType { | |
| Antarctica = "Antarctica", | ||
| ArchipelagoSea = "ArchipelagoSea", | ||
| BajaCalifornia = "Baja California", | ||
| TaiwanStrait = "Taiwan Strait", | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add tests for this Line 172 and Line 234 modify core map registry/category behavior, but there is no matching core test update in this PR context. Please add a test that asserts As per coding guidelines: “All changes to Also applies to: 234-234 🤖 Prompt for AI Agents
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. dismiss. New maps in src/core/Game.ts do not need Tests, as no other map is specifically written in Tests
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: Length of output: 563
✏️ Learnings added
🧠 Learnings used |
||
| } | ||
|
|
||
| export type GameMapName = keyof typeof GameMapType; | ||
|
|
@@ -230,6 +231,7 @@ export const mapCategories: Record<string, GameMapType[]> = { | |
| GameMapType.BeringSea, | ||
| GameMapType.ArchipelagoSea, | ||
| GameMapType.BajaCalifornia, | ||
| GameMapType.TaiwanStrait, | ||
| ], | ||
| fantasy: [ | ||
| GameMapType.Pangaea, | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add source/license attribution for this new map in
CREDITS.md.This PR adds a new map metadata file, but I don’t see the matching attribution update. Please add the map data-source/license entry in
CREDITS.md(e.g., OSM/OpenTopography attribution when applicable).Based on learnings: “For any new map metadata under
map-generator/assets/maps/*/info.json, ensure the repo’sCREDITS.mdis updated with correct license/source attribution for the map’s data sources.”🤖 Prompt for AI Agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i already credited OpenTopography
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Length of output: 210
🏁 Script executed:
Length of output: 4489
@crunchybbb2-hash, thanks for confirming! I checkedCREDITS.mdand the general OpenTopography section (covering Copernicus Global Digital Elevation Models) is already present and covers your map's elevation data. The existing credit is sufficient — no separate per-map entry is needed since the Taiwan Strait map uses the same shared source already attributed.If you didn't use OpenStreetMap for road/coastline tracing (unlike some other maps in the project), then no additional attribution is required. The PR looks good on the credits front! ✅
(ᴗ_ ᴗ。)
🧠 Learnings used