Skip to content

Adds map of Southeast Asia#4105

Merged
evanpelle merged 1 commit into
openfrontio:mainfrom
RickD004:southeastasia
Jun 2, 2026
Merged

Adds map of Southeast Asia#4105
evanpelle merged 1 commit into
openfrontio:mainfrom
RickD004:southeastasia

Conversation

@RickD004
Copy link
Copy Markdown
Contributor

@RickD004 RickD004 commented Jun 1, 2026

Resolves #4098

Description:

Adds Southeast Asia map for v32. Very requested map. 31 default nations (with an extra 31 named for HvN).

Map for intense warship and naval warfare with many, many islands. Also adds flags of the region to be used by nations in the map. More info specified in issue

SEAsiaTeaser.mp4

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
Copy Markdown
Contributor

coderabbitai Bot commented Jun 1, 2026

Review Change Stack

Walkthrough

This pull request adds Southeast Asia as a new regional map to the game. It introduces map data assets, geographic reference entries, a new game map type, and integrates the map into the playlist rotation and user interface.

Changes

Southeast Asia Map Implementation

Layer / File(s) Summary
Game Type and Category Registration
src/core/game/Game.ts
GameMapType.SoutheastAsia enum member is added and included in mapCategories.regional, making the map available as a regional option in the game.
Map Data Assets and Manifest
map-generator/assets/maps/southeastasia/info.json, resources/maps/southeastasia/manifest.json
Southeast Asia map geometry is defined with coordinates, nation boundaries, and flag assignments for 31 nations and 31 additional named regions. Manifest includes base and scaled variants (map4x, map16x) with tile dimensions.
Geographic Reference Data
resources/countries.json
Twenty-five new geographic entries are added to the countries database: Malaysian states (Johor, Kedah, Kelantan, Labuan, Negeri Sembilan, Pahang, Penang, Perak, Putrajaya, Sabah, Sarawak, Selangor, Terengganu), Myanmar regions (Chin State, Kachin, Kayah, Kayin, Mon State, Palaung, Pa-O, Rakhine, Tanintharyi, Wa State), and historical/regional entries (Majapahit, Malacca, Philippines (war), West Papua, Danu, Kokang, Kuala Lumpur, Naga). All are marked as Asia continent.
Playlist Frequency, Localization, and Map Generator Registration
src/server/MapPlaylist.ts, resources/lang/en.json, map-generator/main.go
The map is registered in the map generator's maps registry, assigned a frequency weight of 5 in the playlist generator, and given an English localization label.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • openfrontio/OpenFrontIO#3998: Adds a new regional map (Caribbean) following the identical integration pattern for GameMapType enum, mapCategories.regional, map-generator registration, and MapPlaylist frequency.
  • openfrontio/OpenFrontIO#4067: Adds another regional map using the same code extension points (map-generator registry, GameMapType, mapCategories, and FREQUENCY table).
  • openfrontio/OpenFrontIO#4026: Follows the identical map-registration pattern across map-generator, Game.ts type system, and MapPlaylist integration.

Suggested labels

bypass-pr-check

Suggested reviewers

  • evanpelle
  • FloPinguin

🗺️ A map of Southeast lands now unfolds,
With thirty nations, bold stories to be told,
From Malaysia's states to Myanmar's heart,
New regions join the game, a fresh strategic start,
Playlists now richer, the rotation grows.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Adds map of Southeast Asia' directly and clearly summarizes the main change - adding a new Southeast Asia map to the game.
Linked Issues check ✅ Passed The PR fulfills all requirements from issue #4098: adds Southeast Asia map with 31 default nations plus 31 additional named nations, integrates into game registry and playlists, and includes necessary localization and metadata.
Out of Scope Changes check ✅ Passed All changes are directly related to adding the Southeast Asia map as specified in issue #4098; no out-of-scope modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The description clearly relates to the changeset, explaining the addition of a Southeast Asia map with specific details about nations, gameplay focus, and flag additions.

✏️ 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
Copy Markdown
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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/core/game/Game.ts (1)

184-256: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Missing tests for core directory changes.

The coding guidelines explicitly require: "All changes to src/core/ must include tests". This PR adds a new map type to the core game module but includes no test coverage.

As per coding guidelines: "All changes to src/core/ must include tests"

🤖 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 `@src/core/game/Game.ts` around lines 184 - 256, You added a new enum member
GameMapType.SoutheastAsia and added it to mapCategories.regional but did not add
tests; add a unit test (e.g., Game.spec or GameMap.spec) that imports
GameMapType, GameMapName and mapCategories and asserts (1) that the enum
contains the key/value for "SoutheastAsia" (e.g., Object.values(GameMapType)
includes GameMapType.SoutheastAsia) and (2) that mapCategories.regional includes
GameMapType.SoutheastAsia, ensuring the new map type is present in the regional
category and covered by tests.
🤖 Prompt for all review comments with 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.

Outside diff comments:
In `@src/core/game/Game.ts`:
- Around line 184-256: You added a new enum member GameMapType.SoutheastAsia and
added it to mapCategories.regional but did not add tests; add a unit test (e.g.,
Game.spec or GameMap.spec) that imports GameMapType, GameMapName and
mapCategories and asserts (1) that the enum contains the key/value for
"SoutheastAsia" (e.g., Object.values(GameMapType) includes
GameMapType.SoutheastAsia) and (2) that mapCategories.regional includes
GameMapType.SoutheastAsia, ensuring the new map type is present in the regional
category and covered by tests.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 586295e7-638b-48a9-b2d4-3587e9ba17d8

📥 Commits

Reviewing files that changed from the base of the PR and between 82bfae9 and d7fde46.

⛔ Files ignored due to path filters (35)
  • map-generator/assets/maps/southeastasia/image.png is excluded by !**/*.png
  • resources/flags/Chin State.svg is excluded by !**/*.svg
  • resources/flags/Danu.svg is excluded by !**/*.svg
  • resources/flags/Johor.svg is excluded by !**/*.svg
  • resources/flags/Kachin.svg is excluded by !**/*.svg
  • resources/flags/Kayah.svg is excluded by !**/*.svg
  • resources/flags/Kayin.svg is excluded by !**/*.svg
  • resources/flags/Kedah.svg is excluded by !**/*.svg
  • resources/flags/Kelantan.svg is excluded by !**/*.svg
  • resources/flags/Kokang.svg is excluded by !**/*.svg
  • resources/flags/Kuala Lumpur.svg is excluded by !**/*.svg
  • resources/flags/Labuan.svg is excluded by !**/*.svg
  • resources/flags/Majapahit.svg is excluded by !**/*.svg
  • resources/flags/Malacca.svg is excluded by !**/*.svg
  • resources/flags/Mon State.svg is excluded by !**/*.svg
  • resources/flags/Naga.svg is excluded by !**/*.svg
  • resources/flags/Negeri Sembilan.svg is excluded by !**/*.svg
  • resources/flags/Pa-O.svg is excluded by !**/*.svg
  • resources/flags/Pahang.svg is excluded by !**/*.svg
  • resources/flags/Palaung.svg is excluded by !**/*.svg
  • resources/flags/Penang.svg is excluded by !**/*.svg
  • resources/flags/Perak.svg is excluded by !**/*.svg
  • resources/flags/Philippines (war).svg is excluded by !**/*.svg
  • resources/flags/Putrajaya.svg is excluded by !**/*.svg
  • resources/flags/Rakhine.svg is excluded by !**/*.svg
  • resources/flags/Sabah.svg is excluded by !**/*.svg
  • resources/flags/Sarawak.svg is excluded by !**/*.svg
  • resources/flags/Selangor.svg is excluded by !**/*.svg
  • resources/flags/Tanintharyi.svg is excluded by !**/*.svg
  • resources/flags/Terengganu.svg is excluded by !**/*.svg
  • resources/flags/Wa State.svg is excluded by !**/*.svg
  • resources/flags/West Papua.svg is excluded by !**/*.svg
  • 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 (8)
  • map-generator/assets/maps/southeastasia/info.json
  • map-generator/main.go
  • resources/countries.json
  • resources/lang/en.json
  • resources/maps/southeastasia/manifest.json
  • resources/maps/southeastasia/thumbnail.webp
  • src/core/game/Game.ts
  • src/server/MapPlaylist.ts

@evanpelle evanpelle added this to the v32 milestone Jun 2, 2026
@github-project-automation github-project-automation Bot moved this from Triage to Final Review in OpenFront Release Management Jun 2, 2026
@evanpelle evanpelle merged commit 95377f0 into openfrontio:main Jun 2, 2026
13 of 16 checks passed
@github-project-automation github-project-automation Bot moved this from Final Review to Complete in OpenFront Release Management Jun 2, 2026
@RickD004 RickD004 deleted the southeastasia branch June 2, 2026 03:39
@coderabbitai coderabbitai Bot mentioned this pull request Jun 3, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Complete

Development

Successfully merging this pull request may close these issues.

Add Southeast Asia map

2 participants