Add moon surface intro level with asteroid hazards and unarmed mechanics

Introduce moon01.lvl as the starting level — a pure jump-and-run intro
with no gun and no enemies, just platforming over gaps and dodging falling
asteroids. The player picks up their gun upon transitioning to level01.

New features:
- Moon tileset and PARALLAX_STYLE_MOON with crater terrain backgrounds
- Asteroid entity (ENT_ASTEROID): falls from sky, damages on contact,
  explodes on ground with particles, respawns after delay
- PLAYER_UNARMED directive disables gun for the level
- Pit rescue mechanic: falling costs 1 HP and auto-dashes upward
- Gun powerup entity type for future armed-pickup levels
- Segment-based procedural level generator with themed rooms
- Extended editor with entity palette and improved tile cycling
- Web shell improvements for Emscripten builds
This commit is contained in:
Thomas
2026-03-01 09:20:49 +00:00
parent ea6e16358f
commit fac7085056
30 changed files with 2139 additions and 83 deletions

View File

@@ -26,6 +26,7 @@ typedef enum EditorTool {
TOOL_FILL, /* flood fill area */
TOOL_ENTITY, /* place/select entities */
TOOL_SPAWN, /* set player spawn point */
TOOL_EXIT, /* place/delete exit zones */
TOOL_COUNT
} EditorTool;
@@ -37,9 +38,9 @@ typedef enum EditorLayer {
} EditorLayer;
/* UI panel regions */
#define EDITOR_TOOLBAR_H 14 /* top bar height */
#define EDITOR_TOOLBAR_H 18 /* top bar height */
#define EDITOR_PALETTE_W 80 /* right panel width */
#define EDITOR_STATUS_H 10 /* bottom status bar height */
#define EDITOR_STATUS_H 16 /* bottom status bar height */
typedef struct Editor {
/* ── Map data ──────────────────────────── */