From 788e5f2eec3f42d13ddc218f290caa2cad11acc4 Mon Sep 17 00:00:00 2001 From: "Jesse.Markowitz" Date: Sun, 30 Aug 2026 09:26:56 -0400 Subject: [PATCH] The save warning, the buttons, and a claim that was simply false MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - The save warning is a warning: 15px, weight 500, bright amber on a deeper ground with a 5px rule down the side. (What Jesse was looking at is v0.7.8, where this line is still the small grey .ng-note — none of 0.7.9 has been deployed.) - The buttons read the same on both screens: "Continue saved game" and "Create new game". Solitaire said "Continue Existing Saved Game" and "Deal New Game", the lobby said "Create game" — three phrasings for two actions. - "Off in every game type" is deleted from the Optional rules note because it was not true. Checked against the presets rather than taken on trust: discardTimetabled (§6.2, a Timetabled train may be discarded) ships ON in all four types, not just Co-op. The note now says only what holds for all of them. Stays in the unshipped v0.7.9. 877 tests pass. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01AdG46Ja2PEDBkpqiDazMoX --- CHANGELOG.md | 17 +++++++++++++++++ src/web/main.ts | 4 ++-- src/web/play.html | 26 ++++++++++++++------------ 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0c3cd8..47e90c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -218,6 +218,23 @@ the state the outcome was decided in — and stripped of markup, since it lands console line. The drift test that compared this string against the engine now maps `win`/`loss` to `won`/`lost`, so it still checks the two agree rather than that they are spelled alike. +### The save warning, the buttons, and a claim that was simply false + +Three more from Jesse reading the two screens side by side. + +- **The save warning is a warning.** "That's a warning, not an 'oh by the way'." It had already moved + off `.ng-note` earlier in this release; it is larger and heavier again now — 15px, weight 500, + bright amber on a deeper ground with a 5px rule down the side. Worth noting what he was actually + looking at: `phoenix.local` runs v0.7.8, where this line is still the small grey `.ng-note`. None + of this release has been deployed. +- **The buttons read the same on both screens**: **Continue saved game** and **Create new game**. + Solitaire said "Continue Existing Saved Game" and "Deal New Game"; the lobby said "Create game". + Three phrasings for two actions. +- **"Off in every game type" is deleted from the Optional rules note, because it was not true.** + Checked against the presets rather than taken on trust: `discardTimetabled` — §6.2's "a Timetabled + train may be discarded" — ships **on** in all four types, not just Co-op. The note now says only + what is true of all of them: "Each one changes how the game plays." + ### Three wording and layout fixes - **The collision entries** on all three screens now read "The game ends immediately and results in diff --git a/src/web/main.ts b/src/web/main.ts index 66a0234..f0aef78 100644 --- a/src/web/main.ts +++ b/src/web/main.ts @@ -2152,14 +2152,14 @@ function commitNewGame(wired: WiredGameType, seedFieldValue: string): void { * to the screen that already asks these questions properly. * * Nothing is lost on the way: `render()` calls `save()` every frame, so the game in progress is - * always on disk, and the setup screen offers "Continue Existing Saved Game" to come back to it. + * always on disk, and the setup screen offers "Continue saved game" to come back to it. */ const newBtn = document.getElementById('newgame'); if (newBtn) { newBtn.onclick = () => { showScreen('solitairesetup'); // IN PLACE, not a navigation: the live session stays in memory, so the fields can open on the - // rules actually being played and "Continue Existing Saved Game" is just showing the board + // rules actually being played and "Continue saved game" is just showing the board // again rather than a reload and a replay. runSolitaireSetup(new URLSearchParams(), true, session.view()); }; diff --git a/src/web/play.html b/src/web/play.html index d4281e2..a18cd7a 100644 --- a/src/web/play.html +++ b/src/web/play.html @@ -81,9 +81,11 @@ dialog input:focus{outline:none;border-color:#4d6fa8} where the eye has already learned there is nothing to act on. Sized and coloured to be read (Jesse, 2026-08-30). Amber rather than red: losing a saved game is a real cost, not a danger, and red here would outrank the actual rules of the game sitting above it. */ -#ss-saved-note{font-size:14px;line-height:1.5;color:#f0c674;background:#2e2718; - border:1px solid #7a6320;border-left-width:4px;border-radius:5px;padding:10px 12px;margin:16px 0 0} -/* Two live choices, so neither is the quiet one: `Deal New Game` keeps the primary blue it has when +#ss-saved-note{font-size:15px;font-weight:500;line-height:1.55;color:#ffcf70;background:#332a15; + border:1px solid #b8912c;border-left:5px solid #e0a83c;border-radius:5px;padding:12px 14px; + margin:18px 0 0} +#ss-saved-note b{color:#ffe3a6} +/* Two live choices, so neither is the quiet one: `Create new game` keeps the primary blue it has when it is the only button, and `Continue` is given the same weight rather than reading as a cancel. */ #ss-deal{background:#31527f;border-color:#4d6fa8} #ss-resume{background:#2f5340;border-color:#4f8a68} @@ -534,7 +536,7 @@ ul.blocked li{padding:2px 0}

Optional rules

-

Off in every game type; each one changes how the game plays.

+

Each one changes how the game plays.

@@ -761,7 +763,7 @@ ul.blocked li{padding:2px 0}

Optional rules

-

Off in every game type; each one changes how the game plays.

+

Each one changes how the game plays.

@@ -928,7 +930,7 @@ ul.blocked li{padding:2px 0} Deleting it removes the drift rather than re-wording it. Nothing is lost by navigating away mid-game: `render()` calls `save()` on every frame, so the - game in progress is always on disk, and the setup screen offers "Continue Existing Saved Game" + game in progress is always on disk, and the setup screen offers "Continue saved game" to come straight back to it. -->