Skip to content

Add Southeast Asia map#3405

Open
RickD004 wants to merge 4 commits intoopenfrontio:mainfrom
RickD004:SoutheastAsia
Open

Add Southeast Asia map#3405
RickD004 wants to merge 4 commits intoopenfrontio:mainfrom
RickD004:SoutheastAsia

Conversation

@RickD004
Copy link
Contributor

Description:

Adds Southeast Asia map, map centered around Southeast Asia and the Malay Archipelago. Meant to be a heavy tradeship map. NPCs named after countries and islands of the region.

image image

Map size of 3000x1500 , 4.5M pixels ( while this is slightly above the recommended 4M pixels , It is around the same size as maps like Gateway to the Atlantic and Didierfrance which cause no perfomance issues). To add further, it only has a land area of approx 799,000px.

Please complete the following:

  • I have added screenshots for all UI updates
  • I process any text displayed to the user through translateText() and I've added it to the en.json file
  • I have added relevant tests to the test directory
  • 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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 11, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: db3dd9c4-06e3-4bfd-bc1d-0a373329703d

📥 Commits

Reviewing files that changed from the base of the PR and between 3d6ed25 and ef461db.

📒 Files selected for processing (2)
  • map-generator/assets/maps/southeastasia/info.json
  • resources/maps/southeastasia/manifest.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • resources/maps/southeastasia/manifest.json

Walkthrough

Adds a new "southeastasia" map: assets and manifest JSONs, localization entry, map registry registration, enum and category addition, and playlist frequency update. Changes are data and registry updates only; no runtime logic or error handling altered.

Changes

Cohort / File(s) Summary
Map Asset (generator)
map-generator/assets/maps/southeastasia/info.json
New JSON metadata describing nations, coordinates, and flag codes for the Southeast Asia map.
Map Resources / Manifest
resources/maps/southeastasia/manifest.json
New manifest with map dimensions, land tile counts, name, and nations array (coordinates, flags, optional strength).
Game Registration & Types
src/core/game/Game.ts
Added GameMapType.SoutheastAsia and included it in mapCategories.regional.
Map Registry (generator)
map-generator/main.go
Registered a new map entry {Name: "southeastasia"} in the map registry.
Server Playlist
src/server/MapPlaylist.ts
Set playlist frequency for southeastasia to 6, increasing selection probability.
Localization
resources/lang/en.json
Added "southeastasia": "Southeast Asia" under map entries and adjusted adjacent JSON punctuation.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

A tiny map with flags and dots,
New names in files and registry slots,
The server queues a fate so neat,
Southeast Asia lands to greet. 🌺

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: adding a new Southeast Asia map to the codebase.
Description check ✅ Passed The description provides relevant context about the Southeast Asia map, including its purpose, dimensions, and performance considerations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
resources/maps/southeastasia/manifest.json (1)

129-134: Note: strength field is not in the Nation interface.

The Nation interface in src/core/game/TerrainMapLoader.ts only defines coordinates, flag, and name. This extra field is ignored at runtime, so it's harmless, but if strength serves a purpose in generation, consider documenting why it's included.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@resources/maps/southeastasia/manifest.json` around lines 129 - 134, The
manifest entry adds a non-existent "strength" property that isn't defined on the
Nation interface in TerrainMapLoader (src/core/game/TerrainMapLoader.ts); either
remove the "strength" key from the JSON if it's unused, or update the Nation
interface to include a typed "strength" field (and add a comment explaining its
purpose) and adjust any loader/usage code (e.g., methods that parse or generate
nations) to consume that field; locate the Nation type and the
map-loading/parsing code in TerrainMapLoader to make the corresponding change so
the manifest and TypeScript type stay in sync.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@map-generator/assets/maps/southeastasia/info.json`:
- Around line 100-103: Replace the "name" field value for the country entry with
a short-form under the 27-character limit: change the value currently "Federated
States of Micronesia" to "Micronesia" in the object that contains "coordinates":
[2605, 586], "flag": "fm" so the pipeline accepts the nation name.

In `@resources/maps/southeastasia/manifest.json`:
- Around line 114-118: The nation name "Federated States of Micronesia" in the
manifest exceeds the 27-character limit; open the source entry for that country
(search for the "Federated States of Micronesia" record or the coordinates
[2605, 586] / flag "fm") in the map-generator assets info file and shorten the
"name" to 27 characters or fewer (e.g., "Micronesia" or "Federated States of
Micronesia" → "Federated States of Micronesia" is too long so use "Federated
States of Micronesia" → replace with "Micronesia" or "FSM"); after updating the
name in map-generator/assets/maps/southeastasia/info.json regenerate the
manifest so manifest.json is rebuilt with the new, validated name.

---

Nitpick comments:
In `@resources/maps/southeastasia/manifest.json`:
- Around line 129-134: The manifest entry adds a non-existent "strength"
property that isn't defined on the Nation interface in TerrainMapLoader
(src/core/game/TerrainMapLoader.ts); either remove the "strength" key from the
JSON if it's unused, or update the Nation interface to include a typed
"strength" field (and add a comment explaining its purpose) and adjust any
loader/usage code (e.g., methods that parse or generate nations) to consume that
field; locate the Nation type and the map-loading/parsing code in
TerrainMapLoader to make the corresponding change so the manifest and TypeScript
type stay in sync.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d632f11d-3b8a-4391-a6c3-670809123822

📥 Commits

Reviewing files that changed from the base of the PR and between 3e65d08 and c86abe9.

⛔ Files ignored due to path filters (4)
  • map-generator/assets/maps/southeastasia/image.png is excluded by !**/*.png
  • resources/maps/southeastasia/map.bin is excluded by !**/*.bin
  • resources/maps/southeastasia/map16x.bin is excluded by !**/*.bin
  • resources/maps/southeastasia/map4x.bin is excluded by !**/*.bin
📒 Files selected for processing (7)
  • map-generator/assets/maps/southeastasia/info.json
  • map-generator/main.go
  • resources/lang/en.json
  • resources/maps/southeastasia/manifest.json
  • resources/maps/southeastasia/thumbnail.webp
  • src/core/game/Game.ts
  • src/server/MapPlaylist.ts

reduced Micronesia name in info.json
reduced Micronesia name in manifest.json
@github-project-automation github-project-automation bot moved this from Triage to Development in OpenFront Release Management Mar 11, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
map-generator/assets/maps/southeastasia/info.json (1)

114-119: Remove unused strength field.

The strength field on line 117 is not part of the Nation interface in TerrainMapLoader.ts, which only defines coordinates, flag, and name. This value will be silently ignored during deserialization and nation creation.

If this field is intended to affect gameplay, the TypeScript interface and nation creation logic would need updates. Otherwise, consider removing it to avoid confusion.

Proposed fix
     {
       "coordinates": [973, 871],
       "name": "East Malaysia",
-      "strength": 1,
       "flag": "my"
     },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@map-generator/assets/maps/southeastasia/info.json` around lines 114 - 119,
Remove the unused "strength" JSON key from the nation object for "East Malaysia"
in the map data (the "strength" property is not part of the Nation interface
used by TerrainMapLoader.ts), or if the value is required for gameplay, add a
matching property to the Nation type and update nation creation logic in
TerrainMapLoader.ts to consume it; specifically either delete the "strength"
entry from the JSON object or extend the Nation interface and update functions
that construct nations so they read the "strength" key.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@map-generator/assets/maps/southeastasia/info.json`:
- Around line 114-119: Remove the unused "strength" JSON key from the nation
object for "East Malaysia" in the map data (the "strength" property is not part
of the Nation interface used by TerrainMapLoader.ts), or if the value is
required for gameplay, add a matching property to the Nation type and update
nation creation logic in TerrainMapLoader.ts to consume it; specifically either
delete the "strength" entry from the JSON object or extend the Nation interface
and update functions that construct nations so they read the "strength" key.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e86e6e1c-02c4-445a-83e4-a36426914942

📥 Commits

Reviewing files that changed from the base of the PR and between c86abe9 and 3d6ed25.

📒 Files selected for processing (1)
  • map-generator/assets/maps/southeastasia/info.json

removed strength from nations
@camclark
Copy link

Very cool! Welldone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Development

Development

Successfully merging this pull request may close these issues.

2 participants