La pesca al lago dell'Anatre: «S'ha andà a fallo?!?» coi ragazzi delle canne
Minigioco nuovo (idea di Andrea, 28 ottobre): parlando coi ragazzi in Fortezza si va a pescare. Primo piano del lago (sfondo di Codex) con Andrea sulla riva con la canna di bambù (foglio di Codex: aspetta, lancia, recupera, mostra il pesce) e i ragazzi accanto. Si tiene premuto per lanciare (più lontano, pesci più grossi: lasca, persico, cavedano, tinca, carpa; sotto riva anche lo stivale, che non conta), il galleggiante ha tocchi finti e un'abboccata vera, si ferra premendo in tempo e, senza lasciare, si recupera; il pesce strattona, la lenza si tende e bisogna mollare un attimo o si spezza. Sei lanci, tre livelli (2/3/4 pesci per la gloria, finestra di ferrata e forza dei pesci). Suoni di lancio, tuffo, tocco, abboccata, lenza, rottura e pesce a riva; stessi comandi delle bocce; test del motore e prova nel browser. Revisione critica di Codex applicata nei punti gravi (galleggiante che saltava, sesto lancio bloccato dal pannello, invito a ferrare fuori tempo, lenza che non si spezzava mai, mira che si sbloccava) e in parecchi utili; il resto in docs/STATO.md. Nelle idee, le lavandaie del Palio come le racconta Andrea. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GiECdBYE8csKd4tcFvwntT
This commit is contained in:
@@ -483,6 +483,38 @@ try {
|
||||
await k.close();
|
||||
}
|
||||
|
||||
// La pesca al lago dell'Anatre: coi ragazzi in Fortezza «S'ha andà a fallo?!?», poi il lancio tenendo premuto e l'attesa.
|
||||
{
|
||||
const k = await open({ width: 1280, height: 860 });
|
||||
await k.click('#splash');
|
||||
await k.click('#new-game');
|
||||
await k.click('#rione [data-rione="campomigliaio"]');
|
||||
await k.click('#skip-intro');
|
||||
await settle(k);
|
||||
await k.evaluate(() => game.go('fortezza', [240, 334]));
|
||||
await settle(k);
|
||||
await clickScene(k, await hotspotCenter(k, 'pescatori'));
|
||||
await k.waitForFunction(() => game.dialogue && !game.busy, null, { timeout: 40000 });
|
||||
await k.locator('#choices li', { hasText: 'S’ha andà a fallo?!?' }).or(k.locator('#choices li', { hasText: "S'ha andà a fallo?!?" })).first().click();
|
||||
await k.waitForFunction(() => game.options().some(o => o.text === 'Seria.'), null, { timeout: 30000 });
|
||||
await k.locator('#choices li', { hasText: 'Seria.' }).click();
|
||||
await k.waitForFunction(() => game.closeup?.id === 'pesca' && game.closeup.step === 'aim' && !game.speech, null, { timeout: 30000 });
|
||||
const r = await k.locator('#scene').boundingBox();
|
||||
await k.mouse.move(r.x + r.width * 0.7, r.y + r.height * 0.7);
|
||||
assert.ok(await k.evaluate(() => game.closeup.power > 0.5), 'toccando l\'acqua al largo la forza sale');
|
||||
await k.mouse.down();
|
||||
await k.waitForTimeout(500);
|
||||
assert.ok(await k.evaluate(() => game.closeup.holding && game.closeup.power > 0.2), 'tenendo premuto si carica il lancio');
|
||||
await k.mouse.up();
|
||||
await k.waitForFunction(() => game.closeup.step === 'wait', null, { timeout: 5000 });
|
||||
await k.waitForTimeout(600);
|
||||
await k.screenshot({ path: `${OUT}/03g-pesca-attesa.png` });
|
||||
assert.equal(await k.textContent('#bocce-throw'), 'Ferra');
|
||||
await k.keyboard.press('Escape');
|
||||
await k.waitForFunction(() => game.speech?.text.startsWith('Lascio la canna'), null, { timeout: 5000 });
|
||||
await k.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 });
|
||||
|
||||
Reference in New Issue
Block a user