Skip to content

Milestone 2: Maps Extended Pt 1 — Menu System, Throwback Maps, Campaigns, Multi-wave opt-out - #217

Open
FluxxSynth wants to merge 4 commits into
Fish-Community:masterfrom
FluxxSynth:feat/maps-extended
Open

Milestone 2: Maps Extended Pt 1 — Menu System, Throwback Maps, Campaigns, Multi-wave opt-out#217
FluxxSynth wants to merge 4 commits into
Fish-Community:masterfrom
FluxxSynth:feat/maps-extended

Conversation

@FluxxSynth

@FluxxSynth FluxxSynth commented Jun 17, 2026

Copy link
Copy Markdown

Summary

Completes Milestone 2 (Mindustry Maps Extended, Pt 1).

#154

/nextmap now shows an interactive menu with the current map stats at the top
Three tabs: Current Maps, Throwback Maps, Campaigns
Paged list with map selection → map info/details → vote confirmation flow
-Info screen shows description, author, fastest time, run count, winrate

#155

Configurable via throwbackMapFileNames in src/config.ts
Throwback maps are excluded from the normal "Current Maps" tab
Accessible via the dedicated "Throwback Maps" tab in the menu
Admins list retired map file names; they won't appear in random rotation but can still be voted for

#156

New Campaign class with name, description, mapFileNames
Configurable via campaigns array in src/config.ts
Campaigns tab shows available campaigns → selecting one shows its ordered maps

#151

Maps can set no-multi-vnw map rule tag to "true"
When set, /vnw is capped at skipping 1 wave per call
Prevents map wave-processing scripts (wproc) from breaking

Bug fix

Fixed setNextMapOverride() in the vote system — was always passing null, so the vote winner was never actually set as the next map

Testing

tsc --noEmit — 0 errors
tsc -p tsconfig.json && node scripts/remap-imports.js && tsc -p spec — all compile
jasmine — 8 specs, 0 failures

Credit

By Agent Orange/FluxxSynth
and reviewed Big Pickle

- Fish-Community#154: Menu Based Map System — /nextmap GUI with Current/Throwback/Campaigns tabs
- Fish-Community#155: Throwback Maps — configurable retired maps, hidden from normal rotation
- Fish-Community#156: Campaign Support — Campaign class + config for curated map sequences
- Fish-Community#151: Multi-wave opt-out — maps can set no-multi-vnw tag to limit /vnw to 1 wave
- Fix: setNextMapOverride always passed null (pre-existing bug)
Resolved conflicts in:
- src/mindustryTypes.ts (kept all properties from both sides)
- src/commands/general.ts (kept master's ternary syntax)
- build/scripts JS files (rebuilt from merged TypeScript sources)

Master changes merged:
- Text input menu framework (88cb886, cb0cea5)
- Team resolution using menus (d0a61cb)
- Fix /nextmap and /forcenextmap (dff4bfc)
- setrank prevention (4e44b81)
- Promotion/demotion notifications (ec9e5f1)
- Team resolution fix (2dc120a)
- Custom world data sync (e0ca485)
- Debug logging changes
The master branch introduced registerTextInput on the Menus global, but the test environment mock was missing it. Without this mock, the test suite crashes when Menus.registerTextInput() is called during registerListeners().
@BalaM314

Copy link
Copy Markdown
Member

please fix the line ending issues, I can't see what you've changed

All files in build/scripts had CRLF (Windows) line endings which caused
the entire file to show as changed in diffs, making code review impossible.

Converted all 33 files to LF (Unix) line endings for consistency with
the master branch and to enable proper code review.

This fixes the line ending issues mentioned in PR Fish-Community#217 review comment.
@FluxxSynth

FluxxSynth commented Jul 21, 2026

Copy link
Copy Markdown
Author

please fix the line ending issues, I can't see what you've changed

hope this is better, I changed all the CRLF to LF

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants