- Shift dash: 0.45*v*0.6 instant burst then 0.6s of 50% slow (net 95% of
walking distance); slow doubles as cooldown, no dash while idle/slowed.
- Generic ammo refills scale with the live pressure dial at 80% of the HP
multiplier via ammoPressureMul().
- Hearts at full HP stay on the floor (magnet ignores them) instead of
converting to score.
- Muzzle audit: flame FX and pellets share one right-hand origin, Spinal
Tap beam starts at the muzzle, saw flash suppressed (blade sparks are
the effect).
- Debug REFILL/INF AMMO and the ammo row now cover a spent special
holstered behind the Bone Popper.
- Sfx.duck() defaults its args; a no-arg call crashed the loop with a
non-finite AudioParam value (found via the dash E2E).
- Regenerated all 13 weapon fire one-shots and 4 weapon loops via the audio
specialist (ElevenLabs) with a 1993 Doom style brief: chunky, bass-heavy,
crunchy 90s FPS sounds
- New clips wired into SfxBank: ui_active, ui_active_empty (active items),
ui_curse (legendary pickups, replaces the normal item jingle), plr_revive
(Second Skin revive)
- Footstep system removed entirely (never worked right): Sfx.footstep, 8
plr_step* samples and bank entries, player.js call site, smoke test block
- Cache v=42