Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
125 changes: 125 additions & 0 deletions map-generator/assets/maps/taiwanstrait/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
{
"name": "Taiwan Strait",
"nations": [
{
"coordinates": [835, 35],
"name": "Fuzhou",
"flag": "cn"
},
{
"coordinates": [777, 226],
"name": "Putian",
"flag": "cn"
},
{
"coordinates": [686, 330],
"name": "Quanzhou",
"flag": "cn"
},
{
"coordinates": [459, 116],
"name": "Chinese Military Base",
"flag": "cn"
},
{
"coordinates": [540, 465],
"name": "Xiamen",
"flag": "cn"
},
{
"coordinates": [435, 482],
"name": "Zhangzhou",
"flag": "cn"
},
{
"coordinates": [279, 412],
"name": "Longyan",
"flag": "cn"
},
{
"coordinates": [197, 743],
"name": "Shantou",
"flag": "cn"
},
{
"coordinates": [112, 793],
"name": "Jieyang",
"flag": "cn"
},
{
"coordinates": [125, 700],
"name": "Chaozhou",
"flag": "cn"
},
{
"coordinates": [14, 215],
"name": "Giant Pandas",
"flag": "cn"
},
{
"coordinates": [29, 503],
"name": "Meizhou",
"flag": "cn"
},
{
"coordinates": [612, 478],
"name": "Kinmen Island",
"flag": "tw"
},
{
"coordinates": [912, 718],
"name": "Penghu",
"flag": "tw"
},
{
"coordinates": [1134, 990],
"name": "Kaohsiung",
"flag": "tw"
},
{
"coordinates": [1085, 884],
"name": "Tainan",
"flag": "tw"
},
{
"coordinates": [1289, 931],
"name": "Taitung",
"flag": "tw"
},
{
"coordinates": [1378, 681],
"name": "Hualien",
"flag": "tw"
},
{
"coordinates": [1121, 768],
"name": "Chiayi",
"flag": "tw"
},
{
"coordinates": [1117, 618],
"name": "Taichung City",
"flag": "tw"
},
{
"coordinates": [1476, 320],
"name": "Keelung",
"flag": "tw"
},
{
"coordinates": [1388, 347],
"name": "Taipei",
"flag": "tw"
},
{
"coordinates": [1295, 350],
"name": "Taoyuan",
"flag": "tw"
},
{
"coordinates": [1247, 415],
"name": "Hsinchu",
"flag": "tw"
}
]
}
Comment on lines +1 to +125
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot May 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

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’s CREDITS.md is updated with correct license/source attribution for the map’s data sources.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@map-generator/assets/maps/taiwanstrait/info.json` around lines 1 - 145, Add a
CREDITS.md entry for the new map "taiwanstrait" (author field "crunchybbb" in
assets/maps/taiwanstrait/info.json) that names the data sources and their
licenses (e.g., OpenStreetMap, OpenTopography, or other sources used), include
the required attribution text/links and license identifiers, and place it under
the maps section so it will be obvious this applies to assets/maps/taiwanstrait;
ensure the entry references "taiwanstrait" and the author "crunchybbb" so
reviewers can verify the mapping between the info.json and the credit line.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i already credited OpenTopography

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check CREDITS.md for taiwanstrait or OpenTopography attribution
grep -n -i "taiwanstrait\|taiwan strait\|crunchybbb\|opentopography" CREDITS.md

Length of output: 210


🏁 Script executed:

#!/bin/bash
# Check the full CREDITS.md to understand the attribution pattern used for maps
cat CREDITS.md

Length of output: 4489


@crunchybbb2-hash, thanks for confirming! I checked CREDITS.md and 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
Learnt from: PatrickPlaysBadly
Repo: openfrontio/OpenFrontIO PR: 3708
File: map-generator/assets/maps/losangeles/info.json:1-130
Timestamp: 2026-04-21T23:01:24.675Z
Learning: For any new map metadata under `map-generator/assets/maps/*/info.json`, ensure the repo’s `CREDITS.md` is updated with correct license/source attribution for the map’s data sources. If the map roads were hand-traced using OpenStreetMap as a visual reference, add attribution as “© OpenStreetMap contributors” under the ODbL 1.0 license (https://www.openstreetmap.org/copyright). If elevation data comes from OpenTopography, include OpenTopography as the elevation source in `CREDITS.md`.

Learnt from: RickD004
Repo: openfrontio/OpenFrontIO PR: 3823
File: map-generator/assets/maps/bosphorusstraits/info.json:3-114
Timestamp: 2026-05-03T06:05:30.997Z
Learning: For OpenFrontIO map metadata files at `map-generator/assets/maps/*/info.json`, nation/district names defined in these `info.json` files are NOT required to also exist in `resources/lang/en.json`. When reviewing changes to these map `info.json` files, do not flag missing nation/district entries in `resources/lang/en.json` as an issue, since this is the established project convention.

Learnt from: RickD004
Repo: openfrontio/OpenFrontIO PR: 3823
File: map-generator/assets/maps/bosphorusstraits/info.json:3-114
Timestamp: 2026-05-03T06:05:30.997Z
Learning: In OpenFrontIO map data files (e.g., map-generator/assets/maps/**/info.json), when Turkish settlement/location names are used as nation names, keep the original native Turkish spelling (including diacritics like Ç/Ü/Ğ/Ş/İ/Ö) and do not latinize/transliterate them. Even if the surrounding UI/content is English, the nation name value should remain the native Turkish name (e.g., “Çekmeköy”, “Üsküdar”, “Büyükçekmece”), matching how these names are commonly written in English-language sources such as Wikipedia.

1 change: 1 addition & 0 deletions map-generator/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ var maps = []struct {
{Name: "antarctica"},
{Name: "archipelagosea"},
{Name: "bajacalifornia"},
{Name: "taiwanstrait"},
{Name: "big_plains", IsTest: true},
{Name: "half_land_half_ocean", IsTest: true},
{Name: "ocean_and_land", IsTest: true},
Expand Down
3 changes: 2 additions & 1 deletion resources/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -490,7 +490,8 @@
"beringsea": "Bering Sea",
"antarctica": "Antarctica",
"archipelagosea": "Archipelago Sea",
"bajacalifornia": "Baja California"
"bajacalifornia": "Baja California",
"taiwanstrait": "Taiwan Strait"
},
"map_categories": {
"featured": "Featured",
Expand Down
140 changes: 140 additions & 0 deletions resources/maps/taiwanstrait/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
{
"map": {
"height": 1184,
"num_land_tiles": 748967,
"width": 1560
},
"map16x": {
"height": 296,
"num_land_tiles": 45756,
"width": 390
},
"map4x": {
"height": 592,
"num_land_tiles": 185553,
"width": 780
},
"name": "Taiwan Strait",
"nations": [
{
"coordinates": [835, 35],
"flag": "cn",
"name": "Fuzhou"
},
{
"coordinates": [777, 226],
"flag": "cn",
"name": "Putian"
},
{
"coordinates": [686, 330],
"flag": "cn",
"name": "Quanzhou"
},
{
"coordinates": [459, 116],
"flag": "cn",
"name": "Chinese Military Base"
},
{
"coordinates": [540, 465],
"flag": "cn",
"name": "Xiamen"
},
{
"coordinates": [435, 482],
"flag": "cn",
"name": "Zhangzhou"
},
{
"coordinates": [279, 412],
"flag": "cn",
"name": "Longyan"
},
{
"coordinates": [197, 743],
"flag": "cn",
"name": "Shantou"
},
{
"coordinates": [112, 793],
"flag": "cn",
"name": "Jieyang"
},
{
"coordinates": [125, 700],
"flag": "cn",
"name": "Chaozhou"
},
{
"coordinates": [14, 215],
"flag": "cn",
"name": "Giant Pandas"
},
{
"coordinates": [29, 503],
"flag": "cn",
"name": "Meizhou"
},
{
"coordinates": [612, 478],
"flag": "tw",
"name": "Kinmen Island"
},
{
"coordinates": [912, 718],
"flag": "tw",
"name": "Penghu"
},
{
"coordinates": [1134, 990],
"flag": "tw",
"name": "Kaohsiung"
},
{
"coordinates": [1085, 884],
"flag": "tw",
"name": "Tainan"
},
{
"coordinates": [1289, 931],
"flag": "tw",
"name": "Taitung"
},
{
"coordinates": [1378, 681],
"flag": "tw",
"name": "Hualien"
},
{
"coordinates": [1121, 768],
"flag": "tw",
"name": "Chiayi"
},
{
"coordinates": [1117, 618],
"flag": "tw",
"name": "Taichung City"
},
{
"coordinates": [1476, 320],
"flag": "tw",
"name": "Keelung"
},
{
"coordinates": [1388, 347],
"flag": "tw",
"name": "Taipei"
},
{
"coordinates": [1295, 350],
"flag": "tw",
"name": "Taoyuan"
},
{
"coordinates": [1247, 415],
"flag": "tw",
"name": "Hsinchu"
}
]
}
1 change: 1 addition & 0 deletions resources/maps/taiwanstrait/map.bin

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions resources/maps/taiwanstrait/map16x.bin

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions resources/maps/taiwanstrait/map4x.bin

Large diffs are not rendered by default.

Binary file added resources/maps/taiwanstrait/thumbnail.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions src/core/game/Game.ts
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ export enum GameMapType {
ArchipelagoSea = "ArchipelagoSea",
BajaCalifornia = "Baja California",
MiddleEast = "Middle East",
TaiwanStrait = "Taiwan Strait",
}

export type GameMapName = keyof typeof GameMapType;
Expand Down Expand Up @@ -232,6 +233,7 @@ export const mapCategories: Record<string, GameMapType[]> = {
GameMapType.ArchipelagoSea,
GameMapType.BajaCalifornia,
GameMapType.MiddleEast,
GameMapType.TaiwanStrait,
],
fantasy: [
GameMapType.Pangaea,
Expand Down
1 change: 1 addition & 0 deletions src/server/MapPlaylist.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ const frequency: Partial<Record<GameMapName, number>> = {
ArchipelagoSea: 3,
BajaCalifornia: 4,
MiddleEast: 8,
TaiwanStrait: 4,
};

const TEAM_WEIGHTS: { config: TeamCountConfig; weight: number }[] = [
Expand Down