Skip to content

Add Map Labyrinth#3982

Open
PatrickPlaysBadly wants to merge 7 commits into
openfrontio:mainfrom
PatrickPlaysBadly:labyrinth
Open

Add Map Labyrinth#3982
PatrickPlaysBadly wants to merge 7 commits into
openfrontio:mainfrom
PatrickPlaysBadly:labyrinth

Conversation

@PatrickPlaysBadly
Copy link
Copy Markdown
Contributor

Description:

Labyrinth is a 'maze' style arcade map. Testing shows it lasting over 45min on average in FFA. I have gone through the trouble of programming stable team games for 2, 3, 4, 5, 6, and 7 teams. I worked a while on making sure the game played well by adjusting interconnections between the tiles.

https://www.youtube.com/watch?v=0-yqrfr3nv0
https://discord.com/channels/1284581928254701718/1497062552784605316

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:

PlaysBaldy

@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ PatrickPlaysBadly
❌ SAM


SAM seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 22, 2026

Review Change Stack

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: ca1699f2-8fe3-4059-a582-aece6d6ddb16

📥 Commits

Reviewing files that changed from the base of the PR and between 87df665 and 1ee907d.

📒 Files selected for processing (1)
  • src/core/game/Game.ts

Walkthrough

Adds a new Labyrinth map: generator source and runtime manifest files, registers the map type, updates playlist frequency to 5, and adds English localization.

Changes

Labyrinth Map Addition

Layer / File(s) Summary
Map Type Registration
src/core/game/Game.ts
GameMapType enum gains Labyrinth; mapCategories.arcade includes it.
Source Map Asset Definition
map-generator/assets/maps/labyrinth/info.json
Defines map name, primary nations with coordinates, additionalNations list, and teamGameSpawnAreas for team sizes 2–7 used by the generator.
Runtime Map Manifest
resources/maps/labyrinth/manifest.json
Full runtime manifest with map dimensions (map, map16x, map4x), additionalNations, nations placements, and teamGameSpawnAreas for gameplay.
Map Integration and Wiring
map-generator/main.go, resources/lang/en.json, src/server/MapPlaylist.ts
Registers labyrinth in the map generator, adds map.labyrinth English label, and sets playlist FREQUENCY.Labyrinth = 5.

Sequence Diagram

sequenceDiagram
  participant MapGenerator
  participant Game
  participant MapPlaylist
  participant Resources
  MapGenerator->>Game: register map key "labyrinth"
  Game->>MapPlaylist: expose GameMapType.Labyrinth
  MapPlaylist->>MapPlaylist: set FREQUENCY["Labyrinth"] = 5
  MapGenerator->>Resources: emit/commit manifest `resources/maps/labyrinth/manifest.json`
  Resources->>Game: runtime manifest available for map selection
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • openfrontio/OpenFrontIO#3920: Adds a new map end-to-end and updates the same integration points (GameMapType, MapPlaylist, generator, and localization).
  • openfrontio/OpenFrontIO#3935: Similar pattern adding a new map type and updating registry, playlist frequencies, and localization.

Suggested reviewers

  • evanpelle

"A maze of JSON, flags left bare,
Nations placed with careful care.
Generator hums, the playlist sings,
Labyrinth awaits — let players bring 🎲"

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add Map Labyrinth' directly and clearly summarizes the main change—adding a new Labyrinth map to the game.
Description check ✅ Passed The description provides relevant context about the Labyrinth map (maze-style arcade, gameplay duration, team support, and adjustments), directly relating to the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@map-generator/assets/maps/labyrinth/info.json`:
- Line 191: The "name" value "Saftey" in the map metadata needs to be corrected
to "Safety" to fix the typo; locate the entry in info.json where the JSON
property "name" equals "Saftey" and replace that string with "Safety" so the
player-visible nation name is spelled correctly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b009bc1e-d965-4b5c-904c-758eb4075d40

📥 Commits

Reviewing files that changed from the base of the PR and between 40c23ed and 87df665.

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

"name": "Riches"
},
{
"name": "Saftey"
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.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix typo in additional nation name.

Line 191 has "Saftey", which looks like a typo for "Safety". Since this list is player-visible content, correcting it improves polish and consistency.

🤖 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/labyrinth/info.json` at line 191, The "name" value
"Saftey" in the map metadata needs to be corrected to "Safety" to fix the typo;
locate the entry in info.json where the JSON property "name" equals "Saftey" and
replace that string with "Safety" so the player-visible nation name is spelled
correctly.

@github-project-automation github-project-automation Bot moved this from Triage to Development in OpenFront Release Management May 22, 2026
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