Commit Graph

3 Commits

Author SHA1 Message Date
Brian Fertig 18412e34f9 feat: enhance Advance Wars replay HP display and terrain rendering, add Tetris Attack host backgrounds
Advance Wars:
- Add HP override system (seed/set/clearHpOverride) so units show correct
  HP during enemy-turn replay until their battle animation plays
- Redesign river/road channel rendering with layered depth: rivers get
  deep channel, light core, and ripple crests; roads get concrete shoulders,
  asphalt, and dashed centre lines phase-locked to tile seams

Tetris Attack:
- Add character sprite sheet and per-host background images (beth, jerry,
  michael, steve, victor, klaxon)
- Declare hero background assets in manifest; scene falls back gracefully
  when art is missing
- Update characterSheet path in tetrisattack-artwork.json
2026-07-20 23:20:58 -06:00
Brian Fertig aa97cbe9b4 feat(tetris-attack): load custom panel artwork sprite sheet
Replace procedural panel rendering with custom painted artwork
(tetrisattack-panels.png) for Tetris Attack game.
2026-07-20 18:17:07 -06:00
Brian Fertig 85996ad02c feat: add Tetris Attack (Panel de Pon) with endless, stage clear, and puzzle modes
Implement the full Tetris Attack clone with three game modes:
- Endless: clear panels as the stack rises, speed increases with levels
- Stage Clear: defeat 6 character opponents (Beth, Jerry, Michael, Steve, Victor, Klaxon) in sequence
- Puzzle: solve 24 pre-vetted puzzles within move limits

Core engine (src/games/tetrisattack/TetrisAttackLogic.js) is a pure, deterministic
state machine with match detection, chain propagation, gravity, and scoring tables
matching the SNES original. Includes a headless verifier (verifyTetrisAttack.js)
testing match detection, chains, gravity invariants, top-out, puzzle solvability,
and seeded determinism.

Art is fully optional via drop-in spritesheets (spec: sprites.md); procedural
fallbacks draw 16-bit-style panel icons with distinct shapes for colorblind access.
Puzzle bank generated by genTetrisAttackPuzzles.js and verified as solvable within
optimal move counts.

Shared nintendo soundtrack reused via soundtrack overrides.
2026-07-20 00:04:26 -06:00