From 65e88df5239b7635aba5392f019de2c255c3448b Mon Sep 17 00:00:00 2001 From: Eric Wagoner Date: Tue, 15 Sep 2026 22:21:22 -0400 Subject: [PATCH] The step light is for a first game's first turn, then by choice It lit every turn of the first game. Now a browser's first game lights its first turn on its own, and the preference is an explicit switch that keeps it on every turn for anyone who wants it. The old preference key retires with it, so nobody is left lit by accident. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG --- packages/web/src/App.svelte | 14 +++++++------- packages/web/src/prefs.svelte.ts | 14 ++++++-------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte index e925801..b0d591f 100644 --- a/packages/web/src/App.svelte +++ b/packages/web/src/App.svelte @@ -1433,8 +1433,6 @@ const room = net.roomId; if (!room || finishedRoom === room) return; finishedRoom = room; - // The step light is for a first game; the second is played by sight. - if (prefs.finishedGames === 0) setPref("stepLight", false); setPref("finishedGames", prefs.finishedGames + 1); if (!prefs.tierChosen && prefs.botTier === "apprentice") setPref("botTier", "adept"); }); @@ -1511,8 +1509,10 @@ /** The step light: with no card in hand, your square and the squares a * stride reaches are lit and the rest of the maze falls into shadow. */ + /** A first game's first turn lights itself; after that only by choice. */ + const firstTurnEver = $derived(!!view && prefs.finishedGames === 0 && view.turn.round === 1); const stepLight = $derived( - !!view && !!me && prefs.stepLight && isYourTurn && !view.turn.actionsEnded && !selectedCard && + !!view && !!me && (prefs.stepLightAlways || firstTurnEver) && isYourTurn && !view.turn.actionsEnded && !selectedCard && !net.spectating && !youMustRespond && view.turn.movementAllowance - view.turn.movementUsed > 0, ); const stepCells = $derived.by(() => { @@ -1895,9 +1895,9 @@ Hand at the left: your cards stand in a column beside the board (wide screens)