guts/web/js
type-two 9f6e91fd8f [lane B+C] The Tapeworm and the churn: both deferrals closed, campaign ready for playtest
The two things I deferred out loud, built — and the second one turned out to be the primitive
the first was waiting on.

THE CHURN (the force primitive). Everything in hazards.js pushed the player RADIALLY; nothing
applied a tangential one, which is why both L3's cyclones and the Guardian's arena churn got
deferred. `churn` is now a hazard kind: a tangential impulse that REVERSES on a period, so it
cannot be leaned into, only re-read. Measured: 4.32 u/s of push, direction flipping.
  - L3 s1100: cyclones spanning the sea, deliberately overlapping the first tide — the room
    starts spinning you at the exact moment the safe air starts shrinking.
  - The Pyloric Guardian carries its own (`def.churn` + per-phase `churnMul`), so C's spec is
    finally honoured in full: "pushes you at the walls", x1.5 in P2, harder in P3. Measured
    2.7 u/s on the player mid-fight. The boss.js header that said this was missing is corrected.

THE TAPEWORM (LANE_C_NOTES §2), the campaign's third pressure: a DISTANCE race. One new idea in
the schedule — `flee` — advances the boss's own s and drags its ring along at fixed offsets, so
6 proglottids string out 70 units down the tube ahead of you instead of sitting in a
cross-section. Fall 110 units behind and it is gone. Verified both ways: fall behind ->
"escaped" after 16.8s having seen only P1; keep up -> all three phases -> win. C's line was "a
chase you can lose without dying", and that is now literally the outcome table.

Placed at L4 s5460, immediately before the biofilm cash-out, so the chase and the reward land
together. L4's "no_miniboss_yet" note is replaced rather than left lying.

PRE-PLAYTEST SWEEP: 6/6 levels valid, all load with ZERO console errors, every level carries
exactly 3 biopsy samples, five bosses across the campaign (mast_cell / pyloric_guardian /
tapeworm / the_blockage / appendix_sovereign), 16,820 units of authored canal, and the chain
resolves L1 -> L2 -> L3 -> L4 -> L5 -> end with LS_appendix rejoining at L5.

Everything in the GDD's roster now exists except the numbers being right, and that is the part
only humans can tell us.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-26 12:48:06 +10:00
..
audio [lane E] The game finds its voice: procedural synth bank, the WebAudio graph, the damage feed, and the medal/title/pause cards 2026-07-19 13:57:38 +10:00
combat [lane B+C] The Tapeworm and the churn: both deferrals closed, campaign ready for playtest 2026-07-26 12:48:06 +10:00
core [lane B+C+D] Microbes, friend and foe: the GLB loader, a friendly commensal, and a distinct-mesh yeast 2026-07-19 15:13:30 +10:00
flight [lane A+B+C] L3 Stomach: the acid sea, and pH as a resource you can see 2026-07-26 00:26:31 +10:00
levels [lane B+C] The Tapeworm and the churn: both deferrals closed, campaign ready for playtest 2026-07-26 12:48:06 +10:00
stub [lane F] Round 1 integration + ROUND2 instructions: the game is a game 2026-07-16 14:39:02 +10:00
ui [lane B+E+F] Arena mode: in a room, you own the forward axis 2026-07-25 22:39:06 +10:00
world [lane A] Procedural epithelium: a Voronoi cell pavement in the wall shader 2026-07-25 23:53:26 +10:00
boot.js [lane A+B+C] L3 Stomach: the acid sea, and pH as a resource you can see 2026-07-26 00:26:31 +10:00