Took Boomer Bros from a single-room prototype to a five-mode game with puzzle mechanics, survival arenas, local co-op, gamepad support, and a mode-aware item system. 30 files changed or added, roughly 1,800 lines of new TypeScript across core ECS and Phaser rendering layers.
Five Game Modes
Built out the full GameModeConfig system with mode-specific grid sizes, tile sizes, health, and stat overrides. Classic mode is the original clear-and-exit. Adventure generates procedural multi-floor dungeons with stat carry-over. Survival runs wave-based combat across 8 hand-designed room templates with room transitions. Puzzle offers 8 Chip's Challenge-inspired levels with ice, teleporters, toggle walls, and bombable shortcuts. Sandbox is a freeplay arena with boosted stats and all items pre-placed. A main menu scene with mode selection and player count toggle ties it all together.
New Tile Types & ECS Systems
Added 5 new tile types (ice, teleporter, toggle_wall_open, toggle_wall_closed, button_green) and 3 corresponding ECS systems. IceSystem (priority 12) adds a SlidingComponent that forces directional movement until the player hits a wall or leaves ice. TeleporterSystem (priority 13) warps entities between linked tile pairs with anti-loop protection. ToggleSystem (priority 14) listens for BUTTON_PRESSED events from explosions hitting green buttons and swaps all toggle walls open/closed. Blast propagation stops at closed toggle walls, creating timing puzzles.
Survival Mode & Wave Rewards
The SurvivalSpawnerSystem manages waves-per-room progression with scaling difficulty (+2 enemies/room, speed *= 0.95^room). Eight arena templates cycle as rooms advance: Open Arena, Corridors, Four Corners, Maze, Cross, Ring, Pillbox, Chaos. On wave clear, 1–2 bonus items drop on random walkable tiles, weighted toward offensive pickups. Room transitions carry player stats forward.
Item System Overhaul
Removed bomb_range_up from the base game as a Bomberman differentiator, then brought it back as a survival-mode exclusive via mode-aware drop tables. Added short_fuse (reduces bomb timer by 0.5s per pickup, min 1.0s) with a new bombFuse field on PlayerComponent. ExplosionSystem now takes a DropConfig — default runs at 20% with 5 items, survival at 30% with 6 items and weapon-heavy weights. Stat caps prevent runaway scaling. Explosions now destroy items on the ground.
Co-op, Input & Bug Fixes
Local 2-player co-op with configurable keybindings (P1: Arrows+Space, P2: WASD+E) and gamepad support via GamepadInputAdapter. Fixed a critical death detection bug where PLAYER_DIED fired before removeEntity(), making the alive-player query always return true. Added auto-restart on death with a death counter that persists across restarts but resets on manual R-key restart. Survival restarts at current room wave 1; puzzle restarts the current level.
What's Next
- More item types: shield, kick, remote detonator, ghost walk
- Sandbox exploration overhaul — Zelda-style dungeon bombing
- Boomerland server edition — architecture plan written, implementation pending
- Phase 3: pixel art, audio, more enemy types, bosses