Answer the playtest: a net for the lock, and a duel that pays
The hang: I could not reproduce it or pin it on one latch, so this is two things. A root-cause fix — iOS does not guarantee a touchend when you switch apps mid-drag, and the held G.aim it leaves behind blocks the uncaught-toss retoss forever — and a watchdog for whatever else is out there. The watchdog does not time how long you have been blocked, because a horde blocks you for fifteen honest seconds; it watches whether the clock that should release you is moving, and logs the frozen state before letting go. The duel: past about game 20 all four tins sit at wCap and a won duel handed over literally nothing. It falls through to the barrel weapons now. The prize also stops borrowing the praise channel — arriving in the same slot as PERFECT made it read as another compliment. It gets a card with its own icon. The turn into zombie mode was unwatchable because the zoom started ON it, and the curve render applies is zero at t=0, so the camera only arrived half a second after he had changed. It peaks on the turn now, and the swap lands on a hitstop, a flash and a burst so it reads as an event rather than a glitch. Laser down from 0.55 to 0.22 — zap() sums four voices, so its vol was never one voice's level. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
20a742fbf3
commit
a1a8a61422
7 files changed
+130
-17
No files matched your search
+27
@@ -1035,6 +1035,33 @@ period is a filter, not a migration. It replaced `splatterBest`, which it migrat
|
||||
- `T.stats.check()` is the runnable check: it asserts the period filter and the aggregation against
|
||||
a fixture, and `read()` takes an injected array precisely so it never touches a real save.
|
||||
|
||||
**THE DEADLOCK WATCHDOG** (`watchdog()` in gameplay.js) exists because a run that hard-locks costs
|
||||
the player everything, and this file has form: `mgT` was once left above zero by a beat that moved
|
||||
the phase underneath it, and `mgT > 0` blocks serving. It does NOT time how long the player has been
|
||||
blocked — a horde blocks you for fifteen honest seconds. It watches whether the CLOCK that should
|
||||
release you is moving: every legitimate wait (horde, burst, changeover, duel intro, an 'over' beat)
|
||||
counts down, so a frozen signature for `TUNE.stuckT` seconds means the state is dead. It logs the
|
||||
frozen signature into the miss log (scoreboard tap) before letting go — **a lock that unsticks
|
||||
itself and leaves no evidence is worse than one that does not.** Soaked five game-minutes to game 23
|
||||
through a horde: zero firings.
|
||||
|
||||
- **Anything new that blocks serving must either tick a clock or be added to `watchdog`'s release.**
|
||||
- The matching root-cause fix is in input.js: `visibilitychange`/`blur`/`pagehide` drop the in-flight
|
||||
gesture. `stick` and `G.aim` are only cleared by the touchend for the matching identifier, and iOS
|
||||
does not guarantee that event when you switch apps mid-drag — a held `G.aim` then blocks the
|
||||
uncaught-toss retoss (`!G.aim`) forever.
|
||||
|
||||
**A won duel must always pay.** `deliverTin` walks the four-tin ladder, and when every rung is at
|
||||
`wCap` — which is the state from about game 20 — it now falls through to the **barrel weapons**
|
||||
(unlocked ones only, so no rocket in game three). Before that it printed RACK FULL and handed over
|
||||
nothing, which is the one thing the duel exists for. `RACK FULL` now means literally everything is
|
||||
capped.
|
||||
|
||||
**The tin gets a CARD, not a flash.** `G.flash` is the praise channel (PERFECT, DOUBLE KILL), so a
|
||||
weapon arriving there read as another compliment. `G.card` takes an optional `icon` now and draws it
|
||||
above the title; the card does not wait for a tap. `weaponModal` still fires first-sight-only,
|
||||
because that one has rules to teach.
|
||||
|
||||
**The world board ranks KILLS IN A SINGLE RUN.** Games survived is the same information at a tenth
|
||||
the resolution — most players land between 5 and 20, so a games board is a wall of ties broken by
|
||||
who got there first. Games ride along as the tiebreak and as a column. The prompt to sign it appears
|
||||
|
||||
Reference in new issue
Block a user