ffac9b5512ccb001c552f554759334b0583eb4fc
Steps 1-3 of the late-game depth plan, after Oliver's 50+ game playtest. "Sometimes the racket zombie doesn't seem harmable" was real, not a feeling. Three of the five rack slots did nothing at all to him and said nothing about it: TRIPLE side balls skipped him, GUN and horde pellets skipped him, fire couldn't ignite him. BOMB meanwhile deleted him outright ignoring his hp. All of it now routes through one wound() with a TUNE.dmg* table, so damage is proportional to the body and a future 20 hp boss needs no new code. Fractional damage banks on zb.chip so whole points only come off hp — the wound skins switch on hp thresholds. His contact radius goes to 0.7 m, because part of "unharmable" was just missing him. Melee still skips him and that's correct: he's on the far side of the net and melee can't span it. The HP bar is gone. It was the only floating UI on a body, it was on screen for nearly the whole run, and nobody knew what it meant — while the wound skins already say the same thing in the language every other multi-hit enemy uses. A one-per-run modal explains what he is instead. Skins and bleed anchors now read a fraction of hpMax, since his hp scales with the run. And the plateau: every difficulty dial bottomed out by about game 12, so games 12-50 were arithmetically identical. Body cap, spawn gap, shamble speed, variant mix, boss hp and horde size all keep climbing now, calibrated to track the old curve through game 12 rather than replace it. One deliberate exception: shamble speed was time-based and maxed during game 2, so the early game is genuinely gentler now — zSpeedPerGame if that reads flabby. HANDOFF carries the full spec for steps 4 and 5 (ranged attacks with player damage, then chapter bosses) including the decisions we settled, so the next session can pick it up cold. 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%