guts/web/js/levels
type-two b2d9b46c30 [lane B+C] Giardia: the latch, and boost becomes a dodge
The first foe with an ATTACH state machine, and the first that gives boost a defensive job.
Giardia chases like a seeker, CLAMPS its ventral suction disc onto your hull, and drains coat
while it rides — until a boost's i-frames throw it (or it lets go after attachMax, then can't
re-grab for reattachCd). The counterplay is timing a boost, not out-running it.

- enemies.js: `latcher` archetype — a two-state (chase / attached) branch. Attached, it rides
  player.pos + a spin offset and drains `drain`/tick; ps.iframeT > 0 (boost) detaches and flings
  it clear. Amber tetrahedron (the trophozoite), so a clinging one reads on the hull.
- levels/enemies.js: ARCHETYPES += latcher; catalogue `giardia_latch` (biome small_intestine).
- L2: one Giardia previewed on the open thoracic run (s1940) — it belongs to L4's villi maze,
  but the grab works in a flow tube, so it teaches the boost-dodge verb now.

Verified: it chased + clamped, drained coat 100->84 while attached, and a simulated boost
(iframeT) shook it off.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 20:45:21 +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] Giardia: the latch, and boost becomes a dodge 2026-07-19 20:45:21 +10:00
index.js [lane C] Round 2 WIP (session cut off): schema v2, surf-aware pacing, chase analysis, --probe 2026-07-16 16:26:42 +10:00
L1_mouth.json [lane C] Round 2 WIP (session cut off): schema v2, surf-aware pacing, chase analysis, --probe 2026-07-16 16:26:42 +10:00
L2_esophagus.json [lane B+C] Giardia: the latch, and boost becomes a dodge 2026-07-19 20:45:21 +10:00
L3_stomach.json [lane C] Round 2 WIP (session cut off): schema v2, surf-aware pacing, chase analysis, --probe 2026-07-16 16:26:42 +10:00