c75bd5b9bac51fcded4235b5cc7ad533cd23b96e
Two separate faults, both of which read as "the duel gave me nothing". The first is mine, from making weaponModal first-sight-only. G.flash ticked ABOVE the `if (G.modal) return` in update(), so a flash raised in the same beat as a popup spent its whole 1.1 s counting down invisibly behind the dim. That was harmless while every tin opened its own modal — but once the modal went quiet the label flash WAS the announcement, and the trainer's WOUNDS TREATED popup ate it every single time you won a duel while wounded, which late in a run is every time. Measured: flash null after 1.5 s of reading, nothing left on dismiss. A modal freezes the world and a transient HUD message is part of the world, so the tick moved below the return. It now holds at 1.1 for as long as you read, and starts counting when you tap. The second is older and Oliver felt it directly. deliverTin CYCLED the ladder — TINS[G.deliveries++ % 4] — handing you whatever rung came next even when that type was already at wCap, where grantWeapon's Math.min clamp makes the delivery a silent no-op. Bomb and fire fill in three duels each, triple in one, so past about the thirteenth duel three rungs of four are full and most late duels paid out in literally nothing. It walks to the first rung with ROOM now. Simulated twenty wins with nothing ever spent: every one delivers through #16, where before #10, #13, #14 and #15 were already empty handovers. Past that it says RACK FULL, which is a real state and not a bug, so it says so plainly instead of miming a delivery — no boy, no umpire line. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Languages
JavaScript
75.2%
Python
15.8%
HTML
7.3%
Shell
1.4%
Swift
0.2%