Skip to content

Add Arctic map#3341

Merged
evanpelle merged 39 commits intoopenfrontio:mainfrom
RickD004:main
Mar 6, 2026
Merged

Add Arctic map#3341
evanpelle merged 39 commits intoopenfrontio:mainfrom
RickD004:main

Conversation

@RickD004
Copy link
Contributor

@RickD004 RickD004 commented Mar 4, 2026

Description:

Adds Arctic map, a map centered about the Geographical North Pole using an azimuthal equidistant projection. Features Cold War themed countries and subdivisions as nations. Square map with 1.6M land tiles. Terrain data from Opentopography and Arctic SDI real relief data

image

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

@CLAassistant
Copy link

CLAassistant commented Mar 4, 2026

CLA assistant check
All committers have signed the CLA.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 4, 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: 79e044bc-ae19-4e0b-b3a0-04fcee7e273f

📥 Commits

Reviewing files that changed from the base of the PR and between c8ff67a and 8ffc06c.

📒 Files selected for processing (2)
  • map-generator/assets/maps/arctic/info.json
  • map-generator/main.go

Walkthrough

Adds a new "Arctic" map: static map assets and manifest, registers it in the map-generator, exposes it in the game enum, increases playlist frequency, updates English locale, and credits Arctic SDI Geoportal Services. (31 words)

Changes

Cohort / File(s) Summary
Map Assets
map-generator/assets/maps/arctic/info.json
Add Arctic info.json with "name":"Arctic" and a nations array (coordinates, name, flag entries).
Map Manifest
resources/maps/arctic/manifest.json
Add new manifest arctic_circle with dimensions, land-tile counts, and ~40 nation entries (coords, flag, name, strength).
Map Generator Registry
map-generator/main.go
Register new map entry: { Name: "arctic" } in the maps slice used by generation.
Game Core
src/core/game/Game.ts
Add Arctic to GameMapType enum and include it in mapCategories.regional.
Server Playlist
src/server/MapPlaylist.ts
Add playlist frequency entry Arctic: 6 to map selection weights.
Localization & Credits
resources/lang/en.json, CREDITS.md
Add English label "arctic": "Arctic" and insert an "Arctic Map" credit pointing to Arctic SDI Geoportal Services (CC0/Public Domain note).

Sequence Diagram(s)

sequenceDiagram
  rect rgba(200,220,255,0.5)
    participant Client as Client
  end
  rect rgba(200,255,200,0.5)
    participant Server as Game Server
  end
  rect rgba(255,220,200,0.5)
    participant Playlist as MapPlaylist
    participant Game as Game Core
    participant Generator as Map Generator
    participant Assets as Map Assets
  end

  Client->>Server: Request new match / map
  Server->>Playlist: Request weighted map selection
  Playlist-->>Server: Return "Arctic"
  Server->>Game: Initialize game with GameMapType.Arctic
  Game->>Generator: Request map generation for "arctic"
  Generator->>Assets: Load `arctic` manifest & `info.json`
  Assets-->>Generator: Return map data
  Generator-->>Game: Provide generated map
  Game-->>Client: Start match with Arctic map
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

❄️ A new white world on the board,
Pins and flags in frigid hoard,
Data placed on frozen sea,
Players meet where winds run free. 🧭

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add Arctic map' directly and clearly summarizes the main change—adding a new Arctic-themed map to the project.
Description check ✅ Passed The description is clearly related to the changeset, detailing the Arctic map's features, projection type, terrain sources, and confirming testing and localization work.
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.

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


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.

coderabbitai[bot]
coderabbitai bot previously approved these changes Mar 4, 2026
@evanpelle
Copy link
Collaborator

please run npm run format to fix the prettier failure

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: 1

🧹 Nitpick comments (1)
CREDITS.md (1)

59-60: Use a standard Markdown link for the license source.

This keeps the section consistent and reliably clickable across renderers.

Suggested change
 [Arctic SDI Geoportal Services](https://geoportal.arctic-sdi.org/)
-Public Domain (https://arctic-sdi.org/service-level-statement-arctic-sdi-central-services/)
+Public Domain — [Service Level Statement](https://arctic-sdi.org/service-level-statement-arctic-sdi-central-services/)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CREDITS.md` around lines 59 - 60, Replace the plain URL text for the license
source with a standard Markdown link so it matches the other entries;
specifically update the block containing "Public Domain
(https://arctic-sdi.org/service-level-statement-arctic-sdi-central-services/)"
to use a link syntax like [Public
Domain](https://arctic-sdi.org/service-level-statement-arctic-sdi-central-services/)
so the license is consistently and reliably clickable (locate the lines under
the Arctic SDI Geoportal Services entry to make this change).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@resources/maps/arctic/manifest.json`:
- Around line 17-32: Remove the unused "mapInfoState" property from shipped
manifest JSON files (e.g., resources/maps/arctic/manifest.json) because it is
not part of the MapManifest contract and not consumed by TerrainMapLoader.ts;
delete the entire "mapInfoState" object from manifest files, ensure no code
(types or loaders) references "mapInfoState" (update MapManifest type if it
mistakenly includes that field), and run a quick search to remove or ignore any
remaining usages so manifests only contain the actual MapManifest fields.

---

Nitpick comments:
In `@CREDITS.md`:
- Around line 59-60: Replace the plain URL text for the license source with a
standard Markdown link so it matches the other entries; specifically update the
block containing "Public Domain
(https://arctic-sdi.org/service-level-statement-arctic-sdi-central-services/)"
to use a link syntax like [Public
Domain](https://arctic-sdi.org/service-level-statement-arctic-sdi-central-services/)
so the license is consistently and reliably clickable (locate the lines under
the Arctic SDI Geoportal Services entry to make this change).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9103d279-7d99-42c2-aee0-4753c1033317

📥 Commits

Reviewing files that changed from the base of the PR and between 1566532 and 704174d.

📒 Files selected for processing (2)
  • CREDITS.md
  • resources/maps/arctic/manifest.json

RickD004 added 2 commits March 4, 2026 22:12
Removed mapInfoState from shipped manifest JSON as per bot request
changed format of credit per bot's request
Copy link
Contributor Author

@RickD004 RickD004 left a comment

Choose a reason for hiding this comment

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

changed credits per bot's request

@RickD004
Copy link
Contributor Author

RickD004 commented Mar 5, 2026

@coderabbitai review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 5, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@RickD004
Copy link
Contributor Author

RickD004 commented Mar 5, 2026

@coderabbitai resume

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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CREDITS.md`:
- Around line 59-60: The CREDITS entry referencing "Arctic SDI Geoportal
Services" incorrectly claims "Public Domain"; locate the specific dataset you
used (the record in the Arctic SDI Metadata Catalogue) and replace the blanket
"Public Domain" attribution with the dataset's actual license or "Use
constraints"/"Legal constraints" text and a link to that metadata record (remove
the Service Level Statement link which is about availability). Update the
"Arctic SDI Geoportal Services" line in CREDITS.md to cite the exact dataset
title, the precise license or constraint text, and a URL to the catalogue record
that documents the license.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8347ebbb-3ae1-4faf-b288-b17b256225dd

📥 Commits

Reviewing files that changed from the base of the PR and between 4d32416 and 7caa18b.

📒 Files selected for processing (1)
  • CREDITS.md

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 5, 2026

✅ Actions performed

Reviews resumed.

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.

♻️ Duplicate comments (1)
CREDITS.md (1)

59-60: ⚠️ Potential issue | 🟠 Major

Prior concern not addressed: Arctic SDI license attribution remains incorrect

This issue was previously flagged with comprehensive web research. The "Public Domain" claim is not supported—Arctic SDI aggregates data from multiple providers, and each dataset has its own license. The Service Level Statement link is about service availability, not data reuse rights.

You need to:

  1. Identify the specific Arctic dataset you used in the Arctic SDI Metadata Catalogue
  2. Replace "Public Domain" with the dataset's actual license from its metadata record
  3. Link to that specific metadata record instead of the generic geoportal
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CREDITS.md` around lines 59 - 60, The Arctic SDI entry in CREDITS.md
incorrectly claims "Public Domain" and links to the Service Level Statement;
locate the specific Arctic dataset you actually used in the Arctic SDI Metadata
Catalogue (catalogue.arctic-sdi.org), open its metadata record to copy the
dataset's declared license and its metadata record URL, then update the
CREDITS.md entry that currently reads "[Arctic SDI Geoportal
Services](https://geoportal.arctic-sdi.org/) Public Domain — [Service Level
Statement](https://arctic-sdi.org/service-level-statement-arctic-sdi-central-services/)"
by replacing "Public Domain" with the exact license text from the dataset
metadata and replacing the Service Level Statement link with the direct metadata
record URL for that dataset. Ensure the updated line cites the dataset title (as
shown in the metadata), the exact license label, and the metadata record link.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@CREDITS.md`:
- Around line 59-60: The Arctic SDI entry in CREDITS.md incorrectly claims
"Public Domain" and links to the Service Level Statement; locate the specific
Arctic dataset you actually used in the Arctic SDI Metadata Catalogue
(catalogue.arctic-sdi.org), open its metadata record to copy the dataset's
declared license and its metadata record URL, then update the CREDITS.md entry
that currently reads "[Arctic SDI Geoportal
Services](https://geoportal.arctic-sdi.org/) Public Domain — [Service Level
Statement](https://arctic-sdi.org/service-level-statement-arctic-sdi-central-services/)"
by replacing "Public Domain" with the exact license text from the dataset
metadata and replacing the Service Level Statement link with the direct metadata
record URL for that dataset. Ensure the updated line cites the dataset title (as
shown in the metadata), the exact license label, and the metadata record link.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b3bbf4e4-0e65-47ce-9458-7542ae868e43

📥 Commits

Reviewing files that changed from the base of the PR and between 4d32416 and 7caa18b.

📒 Files selected for processing (1)
  • CREDITS.md

added specific data and license
coderabbitai[bot]
coderabbitai bot previously approved these changes Mar 5, 2026
@evanpelle evanpelle added this to the v30 milestone Mar 5, 2026
fixed name, removed strength and mapinfostate
formated
Copy link
Collaborator

@evanpelle evanpelle left a comment

Choose a reason for hiding this comment

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

Thanks!

@github-project-automation github-project-automation bot moved this from Development to Final Review in OpenFront Release Management Mar 6, 2026
@evanpelle evanpelle merged commit 6254cc0 into openfrontio:main Mar 6, 2026
7 checks passed
@github-project-automation github-project-automation bot moved this from Final Review to Complete in OpenFront Release Management Mar 6, 2026
@gabigabogabu
Copy link
Contributor

love this map

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.

4 participants