The save warning, the buttons, and a claim that was simply false
- 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 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AdG46Ja2PEDBkpqiDazMoX
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
a70b7f88f3
commit
788e5f2eec
@@ -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
|
||||
|
||||
+2
-2
@@ -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());
|
||||
};
|
||||
|
||||
+14
-12
@@ -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}
|
||||
|
||||
<div class="set-group">
|
||||
<h3>Optional rules</h3>
|
||||
<p class="ng-note">Off in every game type; each one changes how the game plays.</p>
|
||||
<p class="ng-note">Each one changes how the game plays.</p>
|
||||
<div class="set-row" id="lb-visibility-row">
|
||||
<label class="ng-num"><span>Reduced Visibility — five switching Moves instead of six in the
|
||||
night Stages (1–3 and 11–12)</span>
|
||||
@@ -567,7 +569,7 @@ ul.blocked li{padding:2px 0}
|
||||
</details>
|
||||
|
||||
<div class="lb-span">
|
||||
<button id="lb-create" type="button">Create game</button>
|
||||
<button id="lb-create" type="button">Create new game</button>
|
||||
<p class="lb-error" id="lb-create-err" role="alert"></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -761,7 +763,7 @@ ul.blocked li{padding:2px 0}
|
||||
|
||||
<div class="set-group">
|
||||
<h3>Optional rules</h3>
|
||||
<p class="ng-note">Off in every game type; each one changes how the game plays.</p>
|
||||
<p class="ng-note">Each one changes how the game plays.</p>
|
||||
<div class="set-row" id="ss-visibility-row">
|
||||
<label class="ng-num"><span>Reduced Visibility — five switching Moves instead of six in the
|
||||
night Stages (1–3 and 11–12)</span>
|
||||
@@ -795,13 +797,13 @@ ul.blocked li{padding:2px 0}
|
||||
save (`commitNewGame` calls `clearSave`), so without a way back the door would be a way to
|
||||
lose a game in progress — and the door is reached by clicking "Play solitaire", which nobody
|
||||
reads as "discard what I was playing". -->
|
||||
<p id="ss-saved-note" hidden><b>You have a solitaire game in progress.</b> Dealing a new game
|
||||
replaces it permanently — there is no undo. Choose <b>Continue Existing Saved Game</b>
|
||||
to pick it up where you left off.</p>
|
||||
<p id="ss-saved-note" hidden><b>You have a solitaire game in progress.</b> Creating a new game
|
||||
replaces it permanently — there is no undo. Choose <b>Continue saved game</b> to pick it
|
||||
up where you left off.</p>
|
||||
|
||||
<menu class="ng-buttons">
|
||||
<button id="ss-resume" type="button" hidden>Continue Existing Saved Game</button>
|
||||
<button id="ss-deal" type="button">Deal New Game</button>
|
||||
<button id="ss-resume" type="button" hidden>Continue saved game</button>
|
||||
<button id="ss-deal" type="button">Create new game</button>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
@@ -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. -->
|
||||
</div><!-- /gameui -->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user