B1 Seeded RNG + Daily Challenge
- utils/random.js wraps Phaser seedable RND (Between/frac are NOT seedable)
- All gameplay spawning (PlatformManager, Platform, Enemy) uses seeded rng
- GameScene reads mode/seed in init and seeds the run; daily shows a HUD badge
and keeps a per-day best (daily_<YYYYMMDD>); MenuScene DAILY button;
GameOver RETRY preserves mode and shows today's best
- Verified: same seed -> identical layout, different seed -> different
B2 New content
- Enemy mev_bot: homing chaser that eases toward the player (unlock >1500)
- Platform reorg: phantom, semi-transparent, vanishes shortly after landing
(unlock >600); no power-ups on breaking/reorg; SPAWN_RATES + UNLOCK config
- Verified spawn distribution at high difficulty includes all new types
B3 Settings
- SoundManager gains volume (persisted); MenuScene SETTINGS overlay with
volume stepper, particle-quality Low/High toggle, two-step reset progress
B4 Stats
- StatsManager tracks lifetime games/jumps/stomps/blocks/best combo, flushed
at game over; MenuScene STATS overlay; hooks in GameScene/ScoreManager
B5 Difficulty tuning via UNLOCK thresholds and rebalanced spawn rates
Functionally verified in-browser via eval (no console errors, deterministic
daily, content spawns, particles emit). Visual screenshot unavailable in the
headless preview because the hidden tab pauses Phaser's loop.