Il libro dell'oratorio in primo piano: copertina, frontespizio, una pagina che gira col fruscio e «FINE» (immagini di Codex, testi disegnati dal codice); l'Arcu a scelte (Borgo e la Casa dell'Armando); il cancello dell'oratorio e l'A. Bettini
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
This commit is contained in:
@@ -293,6 +293,46 @@ try {
|
||||
await page.click('#close-map');
|
||||
await page.setViewportSize({ width: 1280, height: 860 });
|
||||
|
||||
// Il libro dell'oratorio: preso, il primo piano; si sfoglia coi clic veri, «FINE» senza che nessuno lo dica,
|
||||
// Esc chiude; dall'inventario «Apri» lo riapre e il pulsante Chiudi lo chiude. Intanto la scena dietro non risponde.
|
||||
{
|
||||
const book = await open({ width: 1280, height: 860 });
|
||||
await book.click('#splash');
|
||||
await book.click('#new-game');
|
||||
await book.click('#rione [data-rione="campomigliaio"]');
|
||||
await book.click('#skip-intro');
|
||||
await settle(book);
|
||||
await book.evaluate(() => game.go('oratorio', [540, 300]));
|
||||
await settle(book);
|
||||
await book.click('#verbs [data-verb="take"]');
|
||||
await clickScene(book, await hotspotCenter(book, 'libro_dimenticato'));
|
||||
await book.waitForFunction(() => game.closeup?.step === 'cover', null, { timeout: 15000 });
|
||||
await book.waitForTimeout(600);
|
||||
await book.screenshot({ path: `${OUT}/03a-libro-copertina.png` });
|
||||
const where = await book.evaluate(() => [game.state.x, game.state.y]);
|
||||
await clickScene(book, [320, 200]);
|
||||
assert.equal(await book.evaluate(() => game.closeup.step), 'title', 'un clic apre il libro');
|
||||
await clickScene(book, [320, 200]);
|
||||
assert.equal(await book.evaluate(() => game.closeup.step), 'turn', 'un altro gira la pagina');
|
||||
await book.waitForFunction(() => game.closeup?.step === 'end');
|
||||
assert.equal(await book.evaluate(() => game.speech), null, '«FINE» non lo dice nessuno');
|
||||
await book.screenshot({ path: `${OUT}/03b-libro-fine.png` });
|
||||
await book.waitForFunction(() => game.speech?.text === 'Mi ricordavo un finale diverso.', null, { timeout: 5000 });
|
||||
assert.deepEqual(await book.evaluate(() => [game.state.x, game.state.y]), where, 'i clic sul libro non muovono Andrea');
|
||||
await book.keyboard.press('Space');
|
||||
await book.keyboard.press('Escape');
|
||||
assert.equal(await book.evaluate(() => game.closeup), null, 'Esc chiude il libro');
|
||||
await book.waitForSelector('#closeup-close', { state: 'hidden' });
|
||||
await settle(book);
|
||||
await book.click('#verbs [data-verb="open"]');
|
||||
await book.click('#inventory button');
|
||||
await book.waitForFunction(() => game.closeup?.step === 'cover');
|
||||
assert.ok(await book.isVisible('#closeup-close'), 'si vede il pulsante Chiudi');
|
||||
await book.click('#closeup-close');
|
||||
assert.equal(await book.evaluate(() => game.closeup), null, 'Chiudi chiude il libro');
|
||||
await book.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