L'Ing. Tozzi nella sala dei biliardi (sprite di Codex dalla foto di Andrea): la sfida parte parlandogli, come con Mariano, con la rivincita dopo una vittoria; la sala in scala più alta, Andrea non sta più sotto il tavolo
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
This commit is contained in:
@@ -124,7 +124,9 @@ test('al Circolo 4 Maggio: dal portone in piazza si entra nella sala, e al tavol
|
||||
assert.ok(g.act('walk', 'circolo'));
|
||||
settle(g);
|
||||
assert.equal(g.state.scene, 'circolo_4_maggio');
|
||||
assert.ok(g.act('use', 'biliardo'));
|
||||
assert.ok(g.act('talk', 'ing_tozzi'));
|
||||
settle(g);
|
||||
g.choose(g.options().findIndex(o => o.text === 'Ingegnere, una partita ai birilli?'));
|
||||
const before = settle(g).map(s => s.text);
|
||||
assert.ok(before.some(t => t.includes('Si va a venti')));
|
||||
assert.equal(g.closeup?.id, 'biliardo');
|
||||
@@ -143,7 +145,9 @@ test('al Circolo 4 Maggio: dal portone in piazza si entra nella sala, e al tavol
|
||||
assert.ok(after.some(t => t.startsWith('ing_tozzi: Venti. Hai vinto te')));
|
||||
assert.ok(g.state.flags.biliardo_vinto);
|
||||
// Lasciare a metà non segna niente.
|
||||
g.act('use', 'biliardo'); settle(g);
|
||||
g.act('talk', 'ing_tozzi'); settle(g);
|
||||
assert.ok(g.options().some(o => o.text === 'La rivincita?'), 'vinto, si chiede la rivincita');
|
||||
g.choose(g.options().findIndex(o => o.text === 'La rivincita?')); settle(g);
|
||||
assert.equal(g.closeup?.id, 'biliardo');
|
||||
assert.ok(g.closeupClose());
|
||||
assert.ok(settle(g).some(s => s.text.startsWith('Lasci a metà?')));
|
||||
|
||||
+3
-1
@@ -402,7 +402,9 @@ try {
|
||||
await settle(b);
|
||||
await b.waitForTimeout(1500); // la dissolvenza del cambio scena
|
||||
await b.screenshot({ path: `${OUT}/03d-circolo.png` });
|
||||
await clickScene(b, await hotspotCenter(b, 'biliardo'));
|
||||
await clickScene(b, await hotspotCenter(b, 'ing_tozzi'));
|
||||
await b.waitForFunction(() => game.dialogue && !game.busy, null, { timeout: 20000 });
|
||||
await b.locator('#choices li', { hasText: 'una partita ai birilli' }).click();
|
||||
await b.waitForFunction(() => game.closeup?.id === 'biliardo' && game.closeup.step === 'aim' && !game.speech, null, { timeout: 30000 });
|
||||
const r = await b.locator('#scene').boundingBox();
|
||||
const [tx, ty] = await b.evaluate(() => { const c = game.closeup, V = c.balls.cpu; return [57 + V.x * 1.85, 78 + V.y * 1.85]; });
|
||||
|
||||
Reference in New Issue
Block a user