Two things, one of them a real bug. THE BUG: bakeTiles baked to a single global 'floor:tiles' and early-returned if that key existed. Textures outlive a scene, so the first venue you played baked the floor for every venue after it — you would survive a week at The Royal, get promoted, walk into Voltage and still be standing on the pub's carpet. It only shows on promotion, which is exactly the moment the venue ladder is supposed to pay off, and never in a dev route because those reload the page. The baked texture is now keyed per venue; verified by switching venues inside one session and watching the concrete arrive. MATERIALS: FloorLayout.materials names a generated plate per tile kind and the baker stamps it TINTED to the palette colour. The plate carries grain, the palette keeps hue — an untinted photo-real plate blows straight past the brightness band the whole room was tuned in, and darkness is the mechanic. Plates are 16x16, the game's own tile, because at that size "carpet" is structured noise, which is also what pub carpet looks like from head height. Ten of them: carpet, concrete, deck, parquet, looTile, paving, plaster, brick, timber, steel. No plate named, or art not landed, falls back to flat colour exactly as before. Wave 2 filler for the two spaces the review found genuinely empty — The Royal's central carpet (four props across ~500 tiles) and ROOM's east hall (~23% of its interior with no lights and three props) — plus the kit every real room has and no game room does: fire extinguishers, exit signs, CCTV, bins, a notice board, ceiling fans. Voltage gets the same pass; being the reference room is how it quietly missed the last one. The invariant caught a duplicate prop id I introduced while placing these, which is what it is for. Also relaxed one ROOM assertion that keyed on array order: it checked that the FIRST sodium light stands over the loading dock, which broke the moment the east hall legitimately burned the same colour. It now checks that one of them does. Gate: lint clean, tsc clean, 821 tests passing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| art_incoming | ||
| docs | ||
| lanes | ||
| public/props | ||
| src | ||
| tests | ||
| tools | ||
| .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