Commit Graph

15 Commits

Author SHA1 Message Date
Thomas
66a97a4beb Change exit ship trigger from proximity distance to exit zone overlap 2026-03-01 12:45:07 +00:00
Thomas
ded662b42a Add spacecraft exit sequence at level exit zones
Spawn an exit ship when the player approaches an exit zone. The ship
flies in, lands near the exit, and waits for the player to board.
On boarding the player is deactivated, the ship takes off, and the
level transition fires after departure.
2026-03-01 12:38:41 +00:00
Thomas
98d2e87bb3 Add TODO: moon campaign with 3 levels and spacecraft transitions 2026-03-01 12:22:14 +00:00
Thomas
628fa52c52 Extend moon level to 1000 tiles with wide platform gaps
Expand moon01.lvl from 200 to 1000 tiles using a Python generator
script. The level features 27 gap sections with floating one-way
platforms at varying heights, progressing from easy (8-tile gaps) to
challenging (22-tile gaps with tiny platforms). 20 asteroids spread
across the level. Increase tilemap line buffer from 1024 to 16384
bytes to support wide levels.
2026-03-01 12:17:13 +00:00
Thomas
8f538274e7 Use dedicated asteroid collision sound effect 2026-03-01 12:11:16 +00:00
Thomas
fc33658f75 Redesign asteroids: cold moonrock art, bigger impact explosions
Replace warm brown asteroid sprites with cold grey cratered moonrock
using irregular silhouettes and crater detail. No burning/fire trail
since there is no atmosphere on the moon — trail is now grey dust
debris. Ground impact uses a 4-layer explosion: rock shrapnel, dust
plume, ground-level dust spread, and a brief white flash. Player-hit
also gets shrapnel + dust cloud instead of the old small puff.
2026-03-01 12:01:38 +00:00
Thomas
df325ca160 Refine asteroid sprite art 2026-03-01 11:11:52 +00:00
Thomas
94dbe83cfe Refine asteroids: faster, sparser, with horizontal drift
Increase base fall speed (120→200), acceleration (200→350), and respawn
delay (3→6s). Add random horizontal drift (±60 px/s) so asteroids fall
at angles. Widen initial stagger (0-3→0-8s). Reduce moon level from 24
asteroids to 8, spread evenly across the level.
2026-03-01 11:04:00 +00:00
Thomas
49ed2d6f7b Add spatial audio, spacecraft entity, and level intro sequence
Distance-based sound effects with stereo panning for explosions, impacts,
and pickups. Spacecraft entity with full state machine (fly-in, land, take
off, fly-out), engine/synth sound loops, thruster particles, and PNG
spritesheet. Moon level intro defers player spawn until ship lands.

Also untrack build/ objects that were committed by mistake.
2026-03-01 11:00:51 +00:00
Thomas
dbb507bfd2 Add important files reminder to AGENTS.md 2026-03-01 09:51:17 +00:00
Thomas
9af9f65aaf Add TODO with roadmap for audio, large maps, spacecraft art, and asteroid polish 2026-03-01 09:50:22 +00:00
Thomas
3ce879fe98 Fix asteroid double-impact and levelgen theme fallback
Explode asteroid on player contact instead of letting it continue
falling to the ground for a second impact. Return a safe default
theme when theme_count is zero to avoid reading uninitialized data.
2026-03-01 09:41:45 +00:00
Thomas
fac7085056 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
2026-03-01 09:20:49 +00:00
Thomas
ea6e16358f Add in-game level editor with auto-discovered tile/entity palettes
Implements a full level editor that runs inside the game engine as an
alternative mode, accessible via --edit flag or E key during gameplay.
The editor auto-discovers available tiles from the tileset texture and
entities from a new central registry, so adding new game content
automatically appears in the editor without any editor-specific changes.

Editor features: tile painting (pencil/eraser/flood fill) across 3
layers, entity placement with drag-to-move, player spawn point tool,
camera pan/zoom, grid overlay, .lvl save/load, map resize, and test
play (P to play, ESC to return to editor).

Supporting changes:
- Entity registry centralizes spawn functions (replaces strcmp chain)
- Mouse input + raw keyboard access added to input system
- Camera zoom support for editor overview
- Zoom-aware rendering in tilemap, renderer, and sprite systems
- Powerup and drone sprites/animations wired up (were defined but unused)
- Bitmap font renderer for editor UI (4x6 pixel glyphs, no dependencies)
2026-02-28 20:24:43 +00:00
Thomas
c66c12ae68 Initial commit 2026-02-28 18:03:47 +00:00