Commit Graph

6 Commits

Author SHA1 Message Date
type-two
0f2aca542b Wave 2 integration: zones staged, fork machines own the district, tuning pass
- installZones + cannonConfigs through the single cannon path; old centre
  plate/boot removed (fork versions supersede); belt+bucket to centre lane
  (sunk flush — proud face curbed the line); arch punishes failed MEGA runs
- puddles: distance-based stamping (speed-independent coverage), rate 4/u,
  contact tolerance 1.0 (bounce hops starved strips), fork strips widened
  toward the racing line + neutral-centre red top-up strip
- under-shelf volumes filled solid in the centre (side corridors left open);
  launcher catch widened to the full gap
- verified: naive hold-W finishes ~12s, ghost records+replays, MINI (0.77)
  passes the tunnel with 47% pink, buffs activate (GRIP live at 29% green),
  78% total coverage on a wandering run

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 12:18:30 +10:00
type-two
43d2b0049a Wire audio/ghost/title into game, race:respawn event, launcher x-centering
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 11:51:38 +10:00
type-two
dd94161b8e Race loop: timer, finish pad, best time, auto-restart + gap-recovery launcher
First movement starts the clock; touching the pink pad (incl. its front face —
it's a 1.2-high podium, and mid-air boot crossings) finishes: banner, localStorage
best, R/Start or 6s auto-restart. Course fix: the gap jump soft-locked straight-
line drivers under the green slope — sealed the under-shelf cavity (plinth) and
added a deterministic launcher pad in the slot (restitution pachinkoed off the
shelf face; held-W air control flattens shallow arcs, so it launches high+centered).
Verified headless: naive hold-W racer finishes in ~12s, loop restarts, best persists.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 01:23:07 +10:00
type-two
a966e65bde Gamepad support: analog stick + d-pad move, A/B jump, Start respawn, connect toast
Left stick is radial-deadzone analog (magnitude preserved — gentle stick =
gentle roll) feeding the same camera-relative move vector as WASD; jump goes
through the buffered-edge path as Space. Verified headless with a stubbed
navigator.getGamepads: full/half-stick speeds, single edge jump, respawn.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 21:39:00 +10:00
type-two
d4d41208f8 M0 playable slice: lanes integrated, machine chain staged, hidden-tab hardening
Integration: blob+paint+machines composed in game.ts; cannons staged along the
racing line (muzzle 26 — default 16 undershoots course distances); plate
threshold above clean-blob mass so only painted blobs trip it (paint=weight=
machine access); belt delivers riders under the bucket (shallow catch timed to
teeter drift); arch moved to a detour lane.

Cross-lane fixes found at integration, all one class — gameplay logic living
on render-frame time, which stalls in hidden tabs:
- telegraph windup -> fixed step (gates forces/dumps)
- bucket tip/pour  -> fixed step (gates the splat)
- blob group sync  -> fixed step in controller (paint proximity gate reads it)
world.ts grew tick()/renderOnce() + a hidden-tab watchdog interval for this.

Assets: mesh wave 1 (4 GLBs via farm: blobbo-base, toaster, spring boot,
paint bucket) + mesh_pipeline.py with outdir scp fallback for the farm's
unregistered-remote-outputs bug.

Verified headless end-to-end via tick(): move/jump/squash, cannon hits on a
moving blob, coverage->buffs (BURN 1.6x, super at 70%), mass 1.0->1.67 with
paint, plate clean-reject + painted-trip, boot launch (peak y 3.9), belt->
bucket dump (23.6% purple), arch cleanse.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 20:50:16 +10:00
type-two
969f602dd4 Foundation: vite+ts+three+rapier scaffold, frozen contracts, lane docs A-E
Fixed-step world runtime, event bus wire protocol between lanes, integration
seam (game.ts) with placeholder ball. Lanes A/B/C own disjoint dirs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 19:55:43 +10:00