not-tonight/tests/floor
type-two 0d3ce80c6b Six defects from the adversarial review: two softlocks, a dead door, and a bar that punished the right call
- DJ post stood the player inside the sealed djbooth (same class as the taps
  softlock): every direction blocked, and since the sweep needs you to walk to
  the entry, the night could never be paid. DECKS_SPOT moves to the booth's west
  counter, which is where the map comment always said the gear faces from.
- Role stations are now DATA (venueMap POSTS/PROBES) with tests/floor/stations.test.ts
  pinning the whole bug class: posts must be walkable AND escapable, probes must
  have somewhere walkable within interact range. Written as a MOVEMENT test, not
  a tile-name test — the question is whether the player can leave.
- DoorScene.busy is released by a delayedCall on the scene clock, and stopping a
  scene discards pending events, so a ruling in the last 2.6s of a night left it
  stuck true: a dead door — no rope, no verdicts, no way inside — for the rest
  of the run. Now reset per night, along with seenCards/kebab/franko/retiredRules.
- Bar WATER and CUT OFF never settled the patron, so watering a maggot from
  behind the taps left them ticking as unhandled and re-logging every grace
  period: the call that fixed the problem kept being charged for it.
- Every bar verb logged as 'barServe', putting drinks in the record that were
  never poured. One kind per verb; the report system takes unknown kinds by design.
- carpetMsFor() is consumed on read: a regular parked, recalled and knocked back
  came round again later and was paid the entrance dividend a second time.
- Sweep state joins resetNightState() so an interrupted floor score cannot carry
  its cash, or its previous-night pay callback, into the next night.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 03:13:09 +10:00
..
bangJudge.test.ts LANE-FLOOR: the Floor — patrol, flashlight/UV, cut-off, stalls, pat-down 2026-07-19 18:49:13 +10:00
barShift.test.ts The money layer: booth tips (cash buys the yes, not the landing), the pour meter, bar tabs with the card jar and the 3-card handback 2026-07-21 02:17:45 +10:00
cone.test.ts LANE-FLOOR: the Floor — patrol, flashlight/UV, cut-off, stalls, pat-down 2026-07-19 18:49:13 +10:00
crowdSim.test.ts Economy tuning pass: sim harness + 9 feel-bands, Dazza rule cap, natural churn, capacity strike fix, hype decay, vibe cooling 2026-07-20 05:35:47 +10:00
djShift.test.ts The money layer: booth tips (cash buys the yes, not the landing), the pour meter, bar tabs with the card jar and the 3-card handback 2026-07-21 02:17:45 +10:00
escalation.test.ts Phase 1 review: merge door/floor/juice, fold CCRs into contracts, integration fixes 2026-07-19 19:26:35 +10:00
fight.test.ts Merge branch 'lane/floor' 2026-07-19 22:14:08 +10:00
fightDirector.test.ts Merge branch 'lane/floor' 2026-07-19 22:14:08 +10:00
glassie.test.ts The joint bust (ChoiceOverlay, corruption verb, report accounts) + the glassie run (kitchen, rack carry, wobble physics, glass smash) 2026-07-20 17:51:49 +10:00
hazards.test.ts The whole shelf: 9 scripted characters (cop/celebrity/sovereign/rider/promoter/neighbour/hens/twins/ex-doorman) + 5 floor systems (vomit/phone/water/first-aid/kebab run) 2026-07-20 19:27:43 +10:00
patDown.test.ts Phase 1 review: merge door/floor/juice, fold CCRs into contracts, integration fixes 2026-07-19 19:26:35 +10:00
player.test.ts LANE-FLOOR: the Floor — patrol, flashlight/UV, cut-off, stalls, pat-down 2026-07-19 18:49:13 +10:00
stations.test.ts Six defects from the adversarial review: two softlocks, a dead door, and a bar that punished the right call 2026-07-22 03:13:09 +10:00
venueMap.test.ts Spaces: DJ booth, smoking yard, sinks, glassie station; data-driven PROPS/LIGHTS with beat-pulsed zone lighting; art drop-in pipeline + generation queue 2026-07-20 14:38:19 +10:00