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

@@ -76,9 +76,9 @@ Already implemented: `GRAVITY`, `BG_COLOR`, `MUSIC`, `PARALLAX_FAR`, `PARALLAX_N
### Implemented
- **Grunt** — Red spiky ground patrol. Walks back and forth, turns at edges/walls. 2 HP.
- **Flyer** — Purple bat-like. Bobs in air, chases player when close, shoots fireballs. 1 HP.
- **Turret** — Stationary, rotates to aim at player, fires periodically
### Planned
- **Turret** — Stationary, rotates to aim at player, fires periodically
- **Charger** — Detects player at range, charges in a straight line at high speed
- **Shielder** — Has a directional shield, must be hit from behind or above
- **Spawner** — Stationary, periodically spawns smaller enemies
@@ -125,12 +125,16 @@ Current directives: `TILESET`, `SIZE`, `SPAWN`, `GRAVITY`, `BG_COLOR`, `MUSIC`,
- `WIND`, `STORM`, `DRAG` — Atmosphere settings
### Level Ideas
1. **Derelict Station** — Low gravity, dark, flickering lights, abandoned corridors
2. **Desert Planet** — High gravity, sand storm wind, bright orange palette
3. **Gas Giant Moon** — Very low gravity, floating platforms, toxic atmosphere
4. **Asteroid Belt** — Zero-G sections, small disconnected platforms
5. **Space Freighter**Normal gravity, tight corridors, turret enemies
6. **Volcanic World**Normal gravity, rising lava hazard, fire enemies
0. **Intro Level (Moon)** - Low gravity, bright surface, spacey/no obstacles
1. **Mars Surface** - Low gravity, red surface, spacey, little to no obstacles, transition area is entry to base
2. **Mars Base** - Normal gravity, very vertical, narrow, 90 degree turns, lots of enemies
3. **Derelict Station**Low gravity, dark, flickering lights, abandoned corridors
4. **Desert Planet**High gravity, sand storm wind, bright orange palette
5. **Gas Giant Moon** — Very low gravity, floating platforms, toxic atmosphere
6. **Asteroid Belt** — Zero-G sections, small disconnected platforms
7. **Space Freighter** — Normal gravity, tight corridors, turret enemies
8. **Volcanic World** — Normal gravity, rising lava hazard, fire enemies
---
@@ -153,21 +157,21 @@ Current directives: `TILESET`, `SIZE`, `SPAWN`, `GRAVITY`, `BG_COLOR`, `MUSIC`,
### High Priority
- [x] Entity spawn directives in .lvl format (`ENTITY` directive)
- [ ] Level exit zones and level transitions
- [x] Level exit zones and level transitions
- [x] Dash mechanic
- [ ] Wall slide / wall jump
- [x] Particle system (death puffs, landing dust, projectile impact sparks, wall slide dust)
- [x] Screen shake on damage / enemy kills
- [x] Sound effects (jump, shoot, hit, enemy death, dash)
- [x] Basic HUD (health hearts + jetpack charges)
### Medium Priority
- [x] In-game level editor (tile/entity placement, save/load, test play)
- [ ] Wind / drag atmosphere properties
- [x] Parallax scrolling backgrounds (procedural stars + nebula, or from image files)
- [x] Per-level background color (`BG_COLOR` directive)
- [x] Music playback per level (`MUSIC` directive)
- [ ] Weapon switching system
- [ ] Pickup entities (health, ammo, credits)
- [x] Pickup entities (health, jetpack refill, drone companion)
- [ ] Better tileset art (space-themed)
- [ ] Player sprite polish (more animation frames)
- [x] Death / respawn system
@@ -212,6 +216,5 @@ Current directives: `TILESET`, `SIZE`, `SPAWN`, `GRAVITY`, `BG_COLOR`, `MUSIC`,
## Reference Games
- Jazz Jackrabbit 2 (movement feel, weapon variety, level design)
- Metal Slug (run-and-gun, enemy variety, visual flair)
- Mega Man X (wall jump, dash, tight controls)
- Cave Story (atmosphere, exploration, story integration)
- Mega Man X (dash, tight controls)
- Cowboy Bebop (aesthetic, tone, music style)