I cinque video «Come si gioca» dentro il gioco: pulsante «Guarda il video» nell'aiuto di briscola, tressette, scopa, bocce e biliardo, player a tutto schermo con l'audio (il gioco e la musica si fermano, Esc torna al tavolo). video/pubblica.py li taglia dall'arrivo nel posto, li comprime per il web (~4,5 MB l'uno) e fa la copertina. Il favicon e i video copiati anche nell'immagine Docker (il Regolino online dava 404); test che ogni cartella di assets usata dal gioco sia nel Dockerfile

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A1dxvtsZx8NE9fwjXUNDBr
This commit is contained in:
2026-10-26 22:37:19 +01:00
co-authored by Claude Fable 5.1
parent add5a5fe77
commit 22be1c306e
17 changed files with 82 additions and 4 deletions
+14
View File
@@ -91,6 +91,20 @@ try {
await page.waitForSelector('#briscola-controls:not([hidden])');
// Il tavolo ha la sua musica (il valzer delle carte), non quella dell'oratorio.
await page.waitForFunction(() => music.want === 'assets/audio/carte.mp3');
if (name === 'desktop-mouse') {
// Il video «Come si gioca»: dall'aiuto del tavolo si apre il player, il gioco si ferma, Esc torna al tavolo.
await page.click('#briscola-controls summary');
await page.click('#briscola-controls .tutorial-open');
await page.waitForSelector('#tutorial:not([hidden])');
assert.match(await page.locator('#tutorial-video').getAttribute('src'), /assets\/video\/briscola\.mp4\?v=/);
assert.equal(await page.locator('#tutorial-title').textContent(), 'Come si gioca: la briscola');
assert.equal(await page.evaluate(() => music.hold), true, 'la musica del gioco tace');
await page.screenshot({ path: `${out}/briscola-video.png` });
await page.keyboard.press('Escape');
assert.ok(await page.isHidden('#tutorial'));
assert.equal(await page.evaluate(() => !music.hold && game.closeup?.id), 'briscola', 'si torna al tavolo');
await page.click('#briscola-controls summary');
}
assert.ok(await page.isHidden('#bocce-controls'));
const scene = await page.locator('#scene').boundingBox(), exit = await page.locator('#closeup-close').boundingBox();
assert.ok(exit.y >= scene.y + scene.height, 'uscita fuori dal tavolo');