Story: the cup's tableau between rounds, a brighter act card (v388)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0576f24614
commit
0c67d32519
5 files changed
+67
-5
No files matched your search
@@ -90,7 +90,7 @@ globalThis.getComputedStyle = () => ({ paddingTop: '0' });
|
||||
const state = await import('./src/state.js');
|
||||
const { G, P, O, score, ball, setupPoint } = state;
|
||||
const { ringCue, predictLanding, solveShot, update, forceZombies, startGore, splatPoint, restartRun, leaguePace, duelSkill, tinLadder, deliverTin, peerK: _peerK, legLevel: _legLevel, winLevel: _winLevel, assistK: _assistK, flickTarget, flatCount, swayOf, keyPressed, classicGame, serveApexY, assistK, rallyFeel, barrelGap, machCap, hitServe, cheer, inCourt } = await import('./src/gameplay.js');
|
||||
const { startDuel, resolveInterlude, startBossFight, endBossFight, startDrill: _startDrill, endDrill, startMatch: _startMatch, endMatch, FALL_LEN, startNetVs, endNetVs, startStory, startStoryChapter, startHorde } = await import('./src/beats.js');
|
||||
const { startDuel, resolveInterlude, startBossFight, endBossFight, startDrill: _startDrill, endDrill, startMatch: _startMatch, endMatch, FALL_LEN, startNetVs, endNetVs, startStory, startStoryChapter, startHorde, storyUI } = await import('./src/beats.js');
|
||||
const { mirror, netMsg, netTest, netTick, netAgain } = await import('./src/net.js');
|
||||
// the drill's first-sight modal freezes the world (that is what modals do) — dismiss it the way a
|
||||
// player would, so the tests step a live court
|
||||
@@ -3720,6 +3720,21 @@ test('THE STORY: the act\'s cup is won into its chapter — no promotion, the st
|
||||
assert.equal(G.runGames, cfg.STORY.base(1), 'the chapter starts at its own game 1');
|
||||
});
|
||||
|
||||
test('THE STORY: every round won shows the cup\'s tableau, stamped up to the next face', () => {
|
||||
// the storyboard's screen 03 (Oliver, 2026-10-16: "das Turnier-Tableau sehe ich nie")
|
||||
const shown = [], was = storyUI.show;
|
||||
storyUI.show = (kind, d) => { shown.push(kind + ':' + (d.round ?? '')); return Promise.resolve(); };
|
||||
try {
|
||||
intoStory(1, 'cup');
|
||||
winStoryCup();
|
||||
} finally { storyUI.show = was; }
|
||||
const R = cfg.storyRounds(1).length;
|
||||
assert.deepEqual(shown.filter(k => k.startsWith('draw')), Array.from({ length: R - 1 }, (_, i) => 'draw:' + (i + 1)),
|
||||
'one tableau per won round before the final (the act card opens round 0\'s)');
|
||||
assert.equal(shown[0], 'act:', 'the act card comes first');
|
||||
restartRun();
|
||||
});
|
||||
|
||||
test('THE STORY: the beaten finalist grows into the act boss, runs off, and game 1 begins without a cut', () => {
|
||||
intoStory(1, 'cup');
|
||||
const cup = G.match.cup;
|
||||
|
||||
Reference in new issue
Block a user