fix(m13): audit Phase 2 — game-feel correctness (F-03/04/13/14/15/19/40/41) - #28
Merged
Conversation
…er-local (F-04) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…(F-03) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-19) - castPower() ignores casts after the win (F-13) - showWin() hides the hazard curtain / unrevealed dark zone that striped across the end card (F-14) — hidden, not re-depthed, so the card stays below the depth-60 win burst - solo mode no longer shows a false green 'phone linked' indicator (F-15) - a platform re-cast while one is alive flashes 'PLATFORM HOLDS!' instead of being swallowed silently (F-19) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… track switch (F-40, F-41) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Audit Phase 2 — ship the juice that was built
Implements §Phase 2 of docs/AUDIT-2026-07-09.md (game-feel correctness). Branched off main per Kyle's call; drafts #23/#24 rebase over this (only overlap is one pointerdown hook in
Hub.ts).Fixes
effects.ts—explode()'s x/y args are emitter-local in Phaser ≥3.60 and the emitter already sits at world (x,y); dropping them un-doubles the coords. Every particle burst was rendering off-screen since M5; they're visible for the first time.Enemy.ts— freeze re-cast now extends the freeze via afreezeTokenguard (mirrorsphaseToken); previously the first cast's timer un-froze mid-window. No pure helper extracted: the logic is two lines of Phaser-timer interplay, covered live (below) rather than by a contrived mock.Planet.ts—castPower()ignores casts landing after the win (no banners/cues/platforms over the end card;lastCastPoweruntouched).Planet.ts—showWin()hides the hazard curtain (depth 40) + unrevealed dark zone (depth 50) instead of raising the card: the card must stay below the depth-60 win burst that F-04 just made visible.Planet.ts— link indicator + net wiring now exist only in co-op; solo (never connected) no longer shows a green "phone linked".Planet.ts— a platform re-cast while one is alive flashes PLATFORM HOLDS! instead of being swallowed silently (mirrors illuminate's banner-only re-cast).Hub.ts/music.ts— one-timepointerdown→resumeMusic(); first hub visit ranstartMusicwith no gesture in the call stack, so the context could sit suspended (silent hub).MusicSinkgainsresume(), mirroring the SFX sink.music.ts— the masterGainNodeis now disconnected (delayed past fade/note tails) on track switch; previously one leaked per switch.Gate (all green)
typecheckclean · 177/177 Vitest (+2resumeMusicdispatch tests) ·smoke:relaypassesphaseActive, crossed, 0 respawns)phase-dash/summon-platformcasts changed nothing🤖 Generated with Claude Code