monsterplex/src
Brian Fertig a2d267bc49 Refactor level select into campaign map with auto-layout
Replace the flat level-grid level select screen with a campaign-based
map view. Levels are grouped into themed campaigns (e.g. "Sunny Suburbs",
"Dusk Junction") each with its own background art and node positions
rendered along a Catmull-Rom spline ribbon.

Key changes:
- Introduce CAMPAIGNS array in src/data/levels/index.js with helpers for
  campaign/level lookup.
- Add src/data/levels/positioning.js for auto-layout S-curve generation
  and Catmull-Rom spline sampling.
- Rewrite LevelSelectScene.js to render per-campaign maps with animated
  node entrance, idle pulse on the current level, hover states,
  tool-tips for locked levels, and ← → / P keyboard navigation.
- Remove the now-unused LevelCompleteScene; scores now record progress
  and return directly to the map via LevelScoreScene.
- Add map assets (campaign backgrounds, node/flag/tag sprites) and
  manifest entries with a documented 960x540 centered-canvas convention.
- Add src/util/mapArt.js for shared map geometry constants and scaling.
2026-08-21 14:43:32 -06:00
..
data/levels Refactor level select into campaign map with auto-layout 2026-08-21 12:41:49 -06:00
editor
entities refactor: replace bus ceiling fixture with open-top ejection and catch logic 2026-08-21 10:00:47 -06:00
scenes Refactor level select into campaign map with auto-layout 2026-08-21 14:43:32 -06:00
systems refactor: replace bus ceiling fixture with open-top ejection and catch logic 2026-08-21 10:00:47 -06:00
util Refactor level select into campaign map with auto-layout 2026-08-21 12:41:49 -06:00
config.js refactor: replace bus ceiling fixture with open-top ejection and catch logic 2026-08-21 10:00:47 -06:00
main.js Refactor level select into campaign map with auto-layout 2026-08-21 12:41:49 -06:00