Commit Graph

56 Commits

Author SHA1 Message Date
type-two
3eee8432d4 LANE-FLOOR: the Floor — patrol, flashlight/UV, cut-off, stalls, pat-down
FloorDemoScene (F from Parade): an 80x45-tile venue you patrol in the dark with
a flashlight cone that reveals detail, plus all three v0.2 infractions and the
UV stamp check. Self-populates from the patron generator; consumes Patron[] only,
so Phase 2 can hand it the real admitted list.

Pure, tested logic (venueMap, cone, player, crowdSim, bangJudge, escalation,
patDown); Phaser layer stays thin (FloorView + three overlays). 120 new tests,
169 total.

Two bugs found by running it rather than by the suite, both fixed:
- bump penalties had a per-agent cooldown but no sim-wide bound, so the leak rate
  scaled with crowd size and an unattended venue pinned vibe to 0 / aggro to 100
  by ~1AM. Sim-wide gate added, with a regression test.
- beat.update() sat below the overlay early-return, freezing the beat clock behind
  modals and making the stall rhythm game unwinnable. Clock and beat now always run.

Also retuned dwell times and the tile/darkness palette for readability, and
dropped Light2D in favour of the cone mask it was fighting.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 18:49:13 +10:00
type-two
c262ac8261 LANE-JUICE: pure foundation — beat scheduling, filter curve, UI style kit, drunk typo renderer
Testable-in-node math extracted ahead of the WebAudio/Phaser layers:
- audio/scheduling.ts: look-ahead beat grid (dueBeats never repeats or skips a
  beat however ragged the timer wakes; burst-capped for suspended tabs)
- audio/filterCurve.ts: the location filter's exponential cutoff ramp — the
  door-opening sweep, in frequency-space so it blooms late like a real door
- ui/style.ts: chunky pixel widget kit sharing the doll PALETTE
- ui/typo.ts: deterministic drunk-typo/typing/wobble renderer (seeded, no
  Math.random)
- ui/juiceEvents.ts: EventMap extensions via declaration merging, so
  door:phoneTheatre types correctly without editing frozen data/types.ts.
  TODO(contract) — CONTRACT CHANGE REQUEST filed in LANEHANDOVER.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 18:04:33 +10:00
type-two
9805ff8fe5 Phase 0: scaffold, contracts, core systems, patron generator, paper-doll renderer, Parade demo (49 tests)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 16:20:53 +10:00
type-two
4eb8135585 Fleet asset notes: reusable network assets for the v0.4 art pass
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 16:00:53 +10:00
type-two
92e370e8c3 Add role ladder (glassie/bartender/doorgirl/bouncer/DJ) to design + role-agnostic sim rule
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 15:58:03 +10:00
type-two
5086a325d8 Design docs, build plan, contracts, and lane instructions for NOT TONIGHT
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 15:48:44 +10:00