La musica della Smarronata, di Andrea con Suno: il liscio nello spiazzo, più forte vicino alle coppie che ballano, e la mazurca dentro il tendone (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
This commit is contained in:
Binary file not shown.
Binary file not shown.
+2
-2
@@ -32,8 +32,8 @@ Online su 50037.manzolo.it tutto fino agli effetti ambientali di Codex. Aperto,
|
|||||||
Codex, inventati, vestiti come nel video): i volontari della Misericordia alle bruciate («Che Iddio ve ne renda
|
Codex, inventati, vestiti come nel video): i volontari della Misericordia alle bruciate («Che Iddio ve ne renda
|
||||||
merito!! A voi e agli alpini!»), la fanfara degli alpini, gli alpini della polenta e del vino, la gente coi cartocci
|
merito!! A voi e agli alpini!»), la fanfara degli alpini, gli alpini della polenta e del vino, la gente coi cartocci
|
||||||
(anche nel tendone), le coppie del liscio che girano (`flourish` continuo).
|
(anche nel tendone), le coppie del liscio che girano (`flourish` continuo).
|
||||||
[DA ANDREA] le battute; la musica del liscio (prompt per Suno dato ad Andrea: va in `assets/audio/` e suona vicino
|
La musica di Andrea (Suno): il liscio fuori, più forte vicino alle coppie (`stages`), la mazurca nel tendone.
|
||||||
alle coppie, come le console dell'Ingorgo); un minigioco delle bruciate (girare il cilindro sul fuoco).
|
[DA ANDREA] le battute; un minigioco delle bruciate (girare il cilindro sul fuoco).
|
||||||
- **Dedica allo zio Mario (31 ottobre)**: nei Ringraziamenti, sotto quella al Lele e più piccola: «Al mio caro zio
|
- **Dedica allo zio Mario (31 ottobre)**: nei Ringraziamenti, sotto quella al Lele e più piccola: «Al mio caro zio
|
||||||
Mario, che mi ha fatto vivere tante avventure più belle della fantasia.»
|
Mario, che mi ha fatto vivere tante avventure più belle della fantasia.»
|
||||||
- **Il Taglia (31 ottobre)**: tolte le battute sulla sua altezza (Baldoria: non gli fa piacere).
|
- **Il Taglia (31 ottobre)**: tolte le battute sulla sua altezza (Baldoria: non gli fa piacere).
|
||||||
|
|||||||
@@ -3709,6 +3709,8 @@ export const story = {
|
|||||||
effects: [{ type: 'fire', area: [206, 219, 36, 8] }, { type: 'smoke', at: [226, 186] }, { type: 'smoke', at: [214, 192] }],
|
effects: [{ type: 'fire', area: [206, 219, 36, 8] }, { type: 'smoke', at: [226, 186] }, { type: 'smoke', at: [214, 192] }],
|
||||||
// La gente della festa (Andrea, 31 ottobre: «rendiamola bella come allora»): i volontari della Misericordia alle
|
// La gente della festa (Andrea, 31 ottobre: «rendiamola bella come allora»): i volontari della Misericordia alle
|
||||||
// bruciate, la fanfara degli alpini, gli alpini della polenta e del vino, la gente coi cartocci, il liscio.
|
// bruciate, la fanfara degli alpini, gli alpini della polenta e del vino, la gente coi cartocci, il liscio.
|
||||||
|
// Il liscio di Andrea (Suno, 31 ottobre): più forte vicino alle coppie che ballano, più piano verso il ponte.
|
||||||
|
stages: [{ music: 'assets/audio/liscio.mp3', at: [430, 300], near: 130, far: 620, floor: 0.35 }],
|
||||||
speakers: { volontari: [176, 144], fanfara: [330, 141], cuochi: [474, 148], alpino_vino: [606, 159], gente: [250, 196], liscio: [430, 201] },
|
speakers: { volontari: [176, 144], fanfara: [330, 141], cuochi: [474, 148], alpino_vino: [606, 159], gente: [250, 196], liscio: [430, 201] },
|
||||||
people: [
|
people: [
|
||||||
{ who: 'volontari', at: [176, 262], size: 1.35, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.4, flourish: { poses: ['work', 'work2'], every: 5, for: 3.6, step: 0.45 } },
|
{ who: 'volontari', at: [176, 262], size: 1.35, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.4, flourish: { poses: ['work', 'work2'], every: 5, for: 3.6, step: 0.45 } },
|
||||||
@@ -3840,6 +3842,7 @@ export const story = {
|
|||||||
back: { label: 'Torna al 2007', actions: RITORNO_1993 },
|
back: { label: 'Torna al 2007', actions: RITORNO_1993 },
|
||||||
background: 'assets/scenes/smarronata-tendone.png',
|
background: 'assets/scenes/smarronata-tendone.png',
|
||||||
indoor: true,
|
indoor: true,
|
||||||
|
music: 'assets/audio/mazurka.mp3', // la mazurca di Andrea (Suno, 31 ottobre), per chi è a tavola
|
||||||
speakers: { gente: [470, 176] },
|
speakers: { gente: [470, 176] },
|
||||||
people: [{ who: 'gente', at: [470, 300], idle: 'stand', talk: ['talk', 'talk2'], blink: 'blink', every: 4.1, flourish: { poses: ['toast', 'laugh'], every: 7, for: 1.6, step: 0.8 } }],
|
people: [{ who: 'gente', at: [470, 300], idle: 'stand', talk: ['talk', 'talk2'], blink: 'blink', every: 4.1, flourish: { poses: ['toast', 'laugh'], every: 7, for: 1.6, step: 0.8 } }],
|
||||||
walk: [[0, 360], [0, 262], [150, 262], [165, 175], [215, 175], [225, 262], [400, 262], [640, 270], [640, 360]],
|
walk: [[0, 360], [0, 262], [150, 262], [165, 175], [215, 175], [225, 262], [400, 262], [640, 270], [640, 360]],
|
||||||
|
|||||||
@@ -43,11 +43,13 @@ try {
|
|||||||
assert.equal(await page.evaluate(() => game.state.scene), 'smarronata_1993');
|
assert.equal(await page.evaluate(() => game.state.scene), 'smarronata_1993');
|
||||||
await page.waitForTimeout(1200);
|
await page.waitForTimeout(1200);
|
||||||
await page.screenshot({ path: `${out}/3-smarronata.png` });
|
await page.screenshot({ path: `${out}/3-smarronata.png` });
|
||||||
|
await page.waitForFunction(() => [...music.tracks.keys()].some(k => k.includes('liscio')), null, { timeout: 8000 });
|
||||||
await page.evaluate(() => game.act('walk', 'tendone'));
|
await page.evaluate(() => game.act('walk', 'tendone'));
|
||||||
await run();
|
await run();
|
||||||
assert.equal(await page.evaluate(() => game.state.scene), 'smarronata_tendone');
|
assert.equal(await page.evaluate(() => game.state.scene), 'smarronata_tendone');
|
||||||
await page.waitForTimeout(1200);
|
await page.waitForTimeout(1200);
|
||||||
await page.screenshot({ path: `${out}/4-tendone.png` });
|
await page.screenshot({ path: `${out}/4-tendone.png` });
|
||||||
|
await page.waitForFunction(() => music.current?.src.includes('mazurka'), null, { timeout: 8000 });
|
||||||
// I cartelli della polenta e del vino gratis, ingranditi.
|
// I cartelli della polenta e del vino gratis, ingranditi.
|
||||||
await page.evaluate(() => game.act('look', 'cartelli_tendone'));
|
await page.evaluate(() => game.act('look', 'cartelli_tendone'));
|
||||||
await page.waitForFunction(() => game.closeup?.id === 'cartelli_smarronata' && game.closeup.t > 0.6, null, { timeout: 15000 });
|
await page.waitForFunction(() => game.closeup?.id === 'cartelli_smarronata' && game.closeup.t > 0.6, null, { timeout: 15000 });
|
||||||
|
|||||||
@@ -693,7 +693,7 @@ test('i file che il Docker copia sono leggibili da tutti (nginx gira con un altr
|
|||||||
assert.deepEqual(closed, [], 'file non leggibili da nginx (chmod 644)');
|
assert.deepEqual(closed, [], 'file non leggibili da nginx (chmod 644)');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('la Smarronata del 1993: lo spiazzo sotto il ponte fa comparire la macchina, il viaggio, la festa, il tendone e il ritorno', () => {
|
test('la Smarronata del 1993: lo spiazzo sotto il ponte fa comparire la macchina, il viaggio, la festa, il tendone e il ritorno', async () => {
|
||||||
const g = new Game(story);
|
const g = new Game(story);
|
||||||
settle(g); g.go('ponte_sieve', [250, 320]); settle(g);
|
settle(g); g.go('ponte_sieve', [250, 320]); settle(g);
|
||||||
assert.ok(!g.hotspot('macchina_ponte'), 'prima del ricordo la macchina non c\'è');
|
assert.ok(!g.hotspot('macchina_ponte'), 'prima del ricordo la macchina non c\'è');
|
||||||
@@ -711,6 +711,11 @@ test('la Smarronata del 1993: lo spiazzo sotto il ponte fa comparire la macchina
|
|||||||
for (let i = 0; i < 4000 && (g.closeup || g.queue.length || g.speech); i++) { g.skip(); g.update(0.05); }
|
for (let i = 0; i < 4000 && (g.closeup || g.queue.length || g.speech); i++) { g.skip(); g.update(0.05); }
|
||||||
settle(g);
|
settle(g);
|
||||||
assert.equal(g.state.scene, 'smarronata_1993');
|
assert.equal(g.state.scene, 'smarronata_1993');
|
||||||
|
// La musica: il liscio fuori (più forte vicino alle coppie), la mazurca nel tendone.
|
||||||
|
const { trackFor } = await import('../src/engine/music.js');
|
||||||
|
const fuori = trackFor(story, { screen: 'game', scene: 'smarronata_1993', at: [430, 300], ok: () => true });
|
||||||
|
assert.equal(fuori[0].src, 'assets/audio/liscio.mp3'); assert.equal(fuori[0].gain, 1);
|
||||||
|
assert.equal(trackFor(story, { screen: 'game', scene: 'smarronata_tendone' }), 'assets/audio/mazurka.mp3');
|
||||||
assert.ok(!g.travel('piazza'), 'dal 1993 la mappa non porta via: si torna con la macchina');
|
assert.ok(!g.travel('piazza'), 'dal 1993 la mappa non porta via: si torna con la macchina');
|
||||||
g.act('walk', 'tendone'); settle(g);
|
g.act('walk', 'tendone'); settle(g);
|
||||||
assert.equal(g.state.scene, 'smarronata_tendone');
|
assert.equal(g.state.scene, 'smarronata_tendone');
|
||||||
|
|||||||
Reference in New Issue
Block a user