A first game's first turn: the step light, the goal, and a held opening
Three strangers this week pressed play, looked at the board for a minute, and closed it. What they saw: a small maze under a roll-off card, a column of prose, seven strange cards, and nothing that said where they were or what to tap. Now, on a browser's first game, the squares a stride can reach glow and the rest of the maze falls into shadow, with one line hung over the wizard for the first stride. The turn banner says what winning is for the first two rounds. And when the clockwork rolls first, its opening turn waits behind the roll-off card instead of playing out unwatched, then arrives a beat at a time. The step light switches off once that first game is won, and lives in preferences for anyone who wants it back. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
96c0c18d97
commit
e5d82a94af
@@ -31,6 +31,10 @@ export interface Prefs {
|
||||
tierChosen: boolean;
|
||||
/** Games this browser has seen through to a winner. */
|
||||
finishedGames: number;
|
||||
/** The step light: on your turn, the squares a stride can reach glow
|
||||
* and the rest of the maze falls into shadow. On for a browser's first
|
||||
* game, off once that game is won, and yours to switch on again. */
|
||||
stepLight: boolean;
|
||||
}
|
||||
|
||||
const KEY = "wizwar-prefs";
|
||||
@@ -39,7 +43,7 @@ function load(): Prefs {
|
||||
const fallback: Prefs = {
|
||||
art: "photo", autoGrab: false, flourishes: true, wizardName: "", color: null,
|
||||
cautions: true, botTier: "apprentice", instantReplay: true, liveFp: false, handLeft: false,
|
||||
coached: false, tierChosen: false, finishedGames: 0,
|
||||
coached: false, tierChosen: false, finishedGames: 0, stepLight: true,
|
||||
};
|
||||
try {
|
||||
const raw = localStorage.getItem(KEY);
|
||||
@@ -61,6 +65,9 @@ function load(): Prefs {
|
||||
coached: p.coached === true,
|
||||
tierChosen: p.tierChosen === true,
|
||||
finishedGames: typeof p.finishedGames === "number" ? p.finishedGames : 0,
|
||||
// A browser that has already won a game meets the step light switched
|
||||
// off; a fresh one has it on for its first.
|
||||
stepLight: typeof p.stepLight === "boolean" ? p.stepLight : !(typeof p.finishedGames === "number" && p.finishedGames > 0),
|
||||
};
|
||||
} catch {
|
||||
return fallback;
|
||||
|
||||
Reference in New Issue
Block a user