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> |
||
|---|---|---|
| .claude | ||
| docs | ||
| lanes | ||
| src | ||
| tests | ||
| .gitignore | ||
| CLAUDE.md | ||
| eslint.config.js | ||
| index.html | ||
| LANEHANDOVER.md | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
NOT TONIGHT
A hospitality power trip. Papers, Please meets a Saturday night in Fortitude Valley: you're the head of security at a volatile, pretentious nightclub. Protect the Vibe. Watch the queue Aggro. Don't let the Liquor Licensing Inspector catch you slipping.
Browser game — Phaser 3 · TypeScript · Vite. Pixel art, synthesized techno, one very loud DENIED stamp.
Docs
- Game design — what the game is
- Build plan — architecture, phases, milestones
- Contracts — shared types & events (law)
- Fleet asset notes — what existing network assets the art pass can reuse
- Lane handover log — build coordination
- Lane instructions: scaffold · door · floor · juice
Dev (once Phase 0 lands)
npm install
npm run dev # parade / demo scenes
npm test