8f16d085f0efda243f1b2550f9d73e2a833ba6a6
The blinking was drawZombie validating its frame count against the LAST frame only: a set with (say) z_h2 missing but z_h4 present kept N = 4, the walk cycle stepped onto a name that had never loaded, and drawStatic silently drew nothing. The body vanished for that frame of the cycle and came back on the next one, forever. One cached 404 -- this project's oldest trap -- is enough to cause it. It holds frame one now: a body that stops animating is a bug you can see, one that flickers in and out reads as the game breaking. SPRV bumped to flush whatever his phone has cached. And no ctx.filter anywhere. The cut line was briefly the sprite redrawn clipped to a band and flattened by a canvas filter, which put it exactly on the silhouette -- and on the iPhone the line did not draw at all. Unsupported or leaking past its restore, a rendering feature that fails silently on the target device is not worth a pixel of polish. It is a plain bar again, brighter, and it crosses the odd gap between the legs, which is the trade. The cone gets the reference's look: a horizontal gradient across the width with a near-white core down the centre line falling to blue at the edges, plus the depth falloff along its length, plus stroked outer edges. Canvas has no 2D gradient, so it is filled in eight slices each carrying its own across-gradient -- enough that the seams vanish, which is what the old nested wedges got wrong. Test mode: barrels gone (the rack already holds everything they would give you) and the crowd raised to 16 bodies at a spawn every 0.9s, so it does not run dry between kills. 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%