The two doors say which is which: ENTER THE CUP, and AGAIN names its mode

"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 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Fable 5 committed 2026-08-31 13:13:08 +02:00
1 parent c1365cb467
commit d3f8823987
2 files changed
+16 -4

No files matched your search

+4 -2
View File
@@ -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
+12 -2
View File
@@ -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) {