Add pause menu, laser turret, charger/spawner enemies, and Mars campaign
Implement four feature phases: Phase 1 - Pause menu: extract bitmap font into shared engine/font module, add MODE_PAUSED with Resume/Restart/Quit overlay. Phase 2 - Laser turret hazard: ENT_LASER_TURRET with charge/fire/ cooldown state machine, per-pixel beam raycast, two variants (fixed and tracking). Registered in entity registry with editor icons. Phase 3 - Charger and Spawner enemies: charger ground patrol with detect/telegraph/charge/stun cycle (2s charge timeout), spawner that periodically creates grunts up to a global cap of 3. Phase 4 - Mars campaign: two handcrafted levels (mars01 surface, mars02 base), mars_tileset.png, PARALLAX_STYLE_MARS with salmon sky and red mesas, THEME_MARS_SURFACE/THEME_MARS_BASE for the procedural generator with per-theme gravity/tileset/parallax. Moon campaign now chains moon03 -> mars01 -> mars02 -> victory. Also fix review findings: deterministic seed on generated level restart, NULL checks on calloc in spawn functions, charge timeout to prevent infinite charge on flat terrain, and stop suppressing stderr in Makefile web-serve target so real errors are visible.
This commit is contained in:
6
Makefile
6
Makefile
@@ -128,9 +128,9 @@ web-serve: web
|
||||
@echo ""
|
||||
@echo "Serving at http://localhost:$(WEB_PORT)/jnr.html"
|
||||
@echo "Ctrl+C to stop."
|
||||
@python3 -m http.server $(WEB_PORT) --directory dist-web 2>/dev/null || \
|
||||
python -m http.server $(WEB_PORT) --directory dist-web 2>/dev/null || \
|
||||
echo "Python not found."
|
||||
@python3 -m http.server $(WEB_PORT) --directory dist-web || \
|
||||
python -m http.server $(WEB_PORT) --directory dist-web || \
|
||||
echo "Error: Python not found. Install python3 to serve."
|
||||
|
||||
# ── Windows cross-compilation ───────────────────
|
||||
WIN_DIST := dist-win64
|
||||
|
||||
Reference in New Issue
Block a user