Polish after the phone test: grade the place only, a softer ball, the tableau waits, the last point is seen (v391)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5.5 committed 2026-10-16 17:08:00 +02:00
1 parent af8cd7a513
commit b0ea694733
6 files changed
+97 -37

No files matched your search

+25
View File
@@ -3785,6 +3785,31 @@ test('THE STORY: every round won shows the cup\'s tableau, stamped up to the nex
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');
assert.ok(shown.includes('loot:'), 'the cup ends on its loot screen');
restartRun();
});
test('THE STORY: the won final is seen before the loot screen pauses the world', () => {
// Oliver, 2026-10-16: "man kommt sofort in den Screen mit den Waffen und sieht den letzten Punkt nicht"
const shown = [], was = storyUI.show;
storyUI.show = kind => { shown.push(kind); return Promise.resolve(); };
try {
intoStory(1, 'cup');
const cup = G.match.cup;
cup.round = cup.rounds.length - 1; cup.g = cup.rounds[cup.round].need - 1;
G.match.opp = cup.rung = cup.rounds[cup.round].band[0];
let morphAt = -1, lootAt = -1;
for (let i = 0; i < 60 * 60 && lootAt < 0; i++) {
G.modal = null; G.modalQ.length = 0; G.hp = G.hpMax;
if (G.match && !G.match.ending && !G.matchFall && G.phase === 'pretoss' && !(G.interlude && G.interlude.introT > 0))
resolveInterlude('P', 'test');
update(DT);
if (morphAt < 0 && G.story && G.story.part === 'morph') morphAt = i;
if (lootAt < 0 && shown.includes('loot')) lootAt = i;
}
assert.ok(morphAt >= 0 && lootAt > morphAt, 'the loot screen comes after the win');
assert.ok((lootAt - morphAt) * DT >= 2, 'about two seconds of the won point first: ' + ((lootAt - morphAt) * DT).toFixed(2));
} finally { storyUI.show = was; }
restartRun();
});