From d3f882398764afb05cd90fb5f44cc0c1a543fc6a Mon Sep 17 00:00:00 2001 From: Oliver Rieger Date: Mon, 31 Aug 2026 13:13:08 +0200 Subject: [PATCH] The two doors say which is which: ENTER THE CUP, and AGAIN names its mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "The draw" was tennis for the field of entrants, and nothing has been drawn since the cup rounds went deterministic — Oliver had to ask what the button meant, which settled it. Beside it, an unqualified PLAY AGAIN was an instruction without a subject: both buttons read as "start something" and only someone who remembered how the evening began could tell them apart. It carries the mode now — GORE AGAIN, CLIMB AGAIN, CLASSIC AGAIN, TRAIN AGAIN. Co-Authored-By: Claude Fable 5 --- src/main.js | 6 ++++-- src/render.js | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main.js b/src/main.js index 3549a92..8fd1dfd 100644 --- a/src/main.js +++ b/src/main.js @@ -370,7 +370,7 @@ function buildLeaguePanel() { // on the card now — the setup should show the league and who of it you have already beaten). function syncSetup() { const cupMode = pickedMode === 'cup', climbMode = pickedMode === 'zombie'; - document.getElementById('cStart').textContent = cupMode ? 'ENTER THE DRAW' : 'SERVE UP'; + document.getElementById('cStart').textContent = cupMode ? 'ENTER THE CUP' : 'SERVE UP'; document.getElementById('who').style.display = cupMode || climbMode ? 'none' : 'flex'; document.getElementById('lgPanel').style.display = cupMode || climbMode ? 'block' : 'none'; document.getElementById('s01').textContent = @@ -490,7 +490,9 @@ if (!courtUnlocked(picked)) picked = leagueOf(profile.prof.lg).court; // screen; a league cup shuffles 2-3 faces the setup's league panel already shows face-up. The // shuffle itself survives INSIDE the run (cupDraw rolls without replacement, the final settled) // and each round still announces itself on the walk-on modal — only the screen is deleted. The -// cup's big button says ENTER THE DRAW (syncSetup), which is all the ritual the moment needs. +// cup's big button says ENTER THE CUP (syncSetup), which is all the ritual the moment needs. +// (It said ENTER THE DRAW until 2026-08-31 — a draw is a field of entrants, and nothing has been +// drawn since the rounds went deterministic. Oliver had to ask what it meant, which settled it.) // The screen's mechanics live in git history (like the lob) if the ceremony is ever asked back. // the portrait: every family's own head crop (assets/_heads.py), the club pro's included — the // same file the in-play walk-on card uses, so the picker and the court show the same face diff --git a/src/render.js b/src/render.js index cf73a5d..25069d9 100644 --- a/src/render.js +++ b/src/render.js @@ -3155,10 +3155,20 @@ export function render() { // NETPLAY ends on one door only: the other phone's socket is still being torn down, and // "enter the draw" would deal a solo cup into a live session. const solo = !promo && !G.net; + // THE SECOND DOOR NAMES ITS MODE (2026-08-31, Oliver: "auf dem gleichen screen steht dann + // PLAY AGAIN — wo ist der unterschied?"). Beside ENTER THE CUP an unqualified "again" is + // an instruction without a subject: both read as "start something", and which something + // is only knowable if you remember how the evening began. Same defect the ball-machine + // card had, same fix — say what it is. + const againLabel = G.classic ? 'CLASSIC AGAIN' + : G.match && G.match.train ? 'TRAIN AGAIN' + : G.match ? 'CLIMB AGAIN' : 'GORE AGAIN'; const second = solo ? (cup || (G.done && G.done.cup) ? ['club', 'THE CLUBHOUSE'] - : ['again', 'PLAY AGAIN']) : null; + : ['again', againLabel]) : null; const bw = second && !stack ? Math.round((inner - 8) / 2) : inner; - const label = promo ? 'TAKE THE FLOOR' : solo ? 'ENTER THE DRAW' : 'THE CLUBHOUSE'; + // "THE DRAW" was tennis for the field of entrants — and nothing is drawn any more since the + // cup went deterministic (2026-08-29). The button names what it opens instead. + const label = promo ? 'TAKE THE FLOOR' : solo ? 'ENTER THE CUP' : 'THE CLUBHOUSE'; drawButton(inX, y, bw, MODAL_BTN, label, UI.pick, true); endBtns.push({ id: solo ? 'next' : 'club', x: inX, y, w: bw, h: MODAL_BTN }); if (second) {