From 3b8682dd408ffb311c23fd7b4ac182c494591e7e Mon Sep 17 00:00:00 2001 From: type-two Date: Wed, 22 Jul 2026 02:32:11 +1000 Subject: [PATCH] Fix the run-ending softlock: handing the taps back stranded you on a stool tile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit toggleTaps() teleported the player to TAPS_FRONT on exit, and TAPS_FRONT was tile (47,6) — inside venueMap's stool rect, which is not in WALKABLE. Verified in the live build: after handing the taps back the player sat at (760,104) and W/A/S/D each moved them exactly 0px, for the rest of the night. The bartender roster role mounts the taps automatically, so one keypress ended the run. Exit no longer teleports at all: you stay behind the bar and walk out around its east end, which is both walkable (verified end to end) and how staff actually leave a rail. TAPS_FRONT moves to row 7 so the approach probe sits on the punter side rather than inside the furniture. Co-Authored-By: Claude Fable 5 --- src/scenes/floor/FloorDemoScene.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/scenes/floor/FloorDemoScene.ts b/src/scenes/floor/FloorDemoScene.ts index 18880ce..9bca127 100644 --- a/src/scenes/floor/FloorDemoScene.ts +++ b/src/scenes/floor/FloorDemoScene.ts @@ -76,8 +76,11 @@ const WATER_SPOT = tileToWorld(68, 15); const DECKS_SPOT = tileToWorld(55, 22); /** Behind the till (venueMap prop 46..47,4): where you hold the taps. */ const TAPS_SPOT = tileToWorld(47, 3); -/** The customer side of the till — where E offers you the apron. */ -const TAPS_FRONT = tileToWorld(47, 6); +/** + * The customer side of the till — where E offers you the apron. Row 7, not row + * 6: row 6 is the `stool` rect, and `stool` is not in venueMap's WALKABLE set. + */ +const TAPS_FRONT = tileToWorld(47, 7); /** Crowd contact distance while carrying, and its debounce. */ const CARRY_BUMP_PX = 14; const CARRY_BUMP_COOLDOWN_MS = 350; @@ -1241,8 +1244,11 @@ export class FloorDemoScene extends Phaser.Scene { return; } this.barMode = false; - this.player.x = TAPS_FRONT.x; - this.player.y = TAPS_FRONT.y; + // Deliberately NO teleport. The punter side of the till is a `stool` tile, + // which is not walkable — dropping the player there stranded them for the + // rest of the night with every direction blocked, and the bartender roster + // role mounts the taps automatically, so one keypress ended the run. Staff + // leave the rail the way staff do: around the east end of the bar. this.toast(BAR_UI.handback); }