guts/web/js/levels
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
..
difficulty.js [lane C] Round 1: schema v1, levels registry + selfcheck + pacing sim, L2 vertical slice 2026-07-16 08:53:34 +10:00
enemies.js [lane B+C] The Tapeworm and the churn: both deferrals closed, campaign ready for playtest 2026-07-26 12:48:06 +10:00
index.js [lane B+C] L5 Large Intestine: the dark, the gas, and The Blockage — the campaign is complete 2026-07-26 11:35:28 +10:00
L1_mouth.json [lane B+C] L1 Oral Cavity: the tutorial, and the Mast Cell — the boss you win by not shooting 2026-07-26 00:13:52 +10:00
L2_esophagus.json [lane B+C+F] The biofilm gate: the reputation cash-out, "it helps you in level 5" made real 2026-07-20 00:16:12 +10:00
L3_stomach.json [lane B+C] The Tapeworm and the churn: both deferrals closed, campaign ready for playtest 2026-07-26 12:48:06 +10:00
L4_small_intestine.json [lane B+C] The Tapeworm and the churn: both deferrals closed, campaign ready for playtest 2026-07-26 12:48:06 +10:00
L5_large_intestine.json [lane B+C] L5 Large Intestine: the dark, the gas, and The Blockage — the campaign is complete 2026-07-26 11:35:28 +10:00
LS_appendix.json [lane B+C+F] The Appendix Sovereign: the secret boss, and a reputation you cannot fake 2026-07-25 23:25:36 +10:00