Circolo 4 Maggio: dal portone in piazza si entra nella sala dei biliardi (sfondo in stile Lucas fatto da Andrea con Codex) e al primo tavolo si gioca a biliardo coi cinque birilli contro l'Ing. Tozzi (battute provvisorie, sprite da fare). Motore nuovo: fisica delle biglie e delle sponde, birilli che cadono, regole e falli del gioco italiano, avversario che prova i colpi a vuoto un po' per fotogramma; disegno dall'alto con stecca, linea di mira e biglia fantasma; stessi comandi delle bocce (pannello, tastiera, pressione); suoni; test; nelle idee la foto per i rigori
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
This commit is contained in:
@@ -390,6 +390,36 @@ try {
|
||||
await bocce.close();
|
||||
}
|
||||
|
||||
// Il biliardo del Circolo 4 Maggio: la sala, poi la partita; un tocco sul tavolo mira, tenendo premuto la forza sale.
|
||||
{
|
||||
const b = await open({ width: 1280, height: 860 });
|
||||
await b.click('#splash');
|
||||
await b.click('#new-game');
|
||||
await b.click('#rione [data-rione="campomigliaio"]');
|
||||
await b.click('#skip-intro');
|
||||
await settle(b);
|
||||
await b.evaluate(() => game.go('circolo_4_maggio'));
|
||||
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 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]; });
|
||||
await b.mouse.move(r.x + tx / 640 * r.width, r.y + ty / 360 * r.height);
|
||||
await b.mouse.down();
|
||||
await b.waitForTimeout(500);
|
||||
assert.ok(await b.evaluate(() => game.closeup.power > 0.2), 'tenendo premuto la forza sale');
|
||||
await b.screenshot({ path: `${OUT}/03e-biliardo-forza.png` });
|
||||
await b.mouse.up();
|
||||
assert.equal(await b.evaluate(() => game.closeup.step), 'rolling', 'lasciando, la biglia parte');
|
||||
await b.waitForFunction(() => game.closeup.step === 'aim' && game.closeup.current === 'cpu' || game.closeup.step === 'rolling' && game.closeup.shot?.shooter === 'cpu', null, { timeout: 20000 });
|
||||
await b.screenshot({ path: `${OUT}/03f-biliardo-socio.png` });
|
||||
await b.keyboard.press('Escape');
|
||||
await b.waitForFunction(() => game.speech?.text.startsWith('Lasci a metà?'), null, { timeout: 5000 });
|
||||
await b.close();
|
||||
}
|
||||
|
||||
const phone = await open({ width: 390, height: 844 });
|
||||
await phone.click('#splash'); // un clic salta il cartello
|
||||
assert.ok(await phone.isVisible('#title'), 'il clic sul cartello porta al titolo');
|
||||
|
||||
Reference in New Issue
Block a user