diff --git a/assets/voices/andrea-037b974f0e.mp3 b/assets/voices/andrea-037b974f0e.mp3 new file mode 100644 index 0000000..4355522 Binary files /dev/null and b/assets/voices/andrea-037b974f0e.mp3 differ diff --git a/assets/voices/andrea-464f75cf78.mp3 b/assets/voices/andrea-464f75cf78.mp3 deleted file mode 100644 index 0f78a8f..0000000 Binary files a/assets/voices/andrea-464f75cf78.mp3 and /dev/null differ diff --git a/assets/voices/andrea-5027e7d124.mp3 b/assets/voices/andrea-5027e7d124.mp3 new file mode 100644 index 0000000..04384f0 Binary files /dev/null and b/assets/voices/andrea-5027e7d124.mp3 differ diff --git a/assets/voices/andrea-51800429c8.mp3 b/assets/voices/andrea-51800429c8.mp3 deleted file mode 100644 index 32e7d05..0000000 Binary files a/assets/voices/andrea-51800429c8.mp3 and /dev/null differ diff --git a/assets/voices/andrea-59a49e494b.mp3 b/assets/voices/andrea-59a49e494b.mp3 deleted file mode 100644 index bad844f..0000000 Binary files a/assets/voices/andrea-59a49e494b.mp3 and /dev/null differ diff --git a/assets/voices/andrea-5a7baa436b.mp3 b/assets/voices/andrea-5a7baa436b.mp3 new file mode 100644 index 0000000..967aa57 Binary files /dev/null and b/assets/voices/andrea-5a7baa436b.mp3 differ diff --git a/assets/voices/andrea-5cb4d0e1ba.mp3 b/assets/voices/andrea-5cb4d0e1ba.mp3 deleted file mode 100644 index 6397840..0000000 Binary files a/assets/voices/andrea-5cb4d0e1ba.mp3 and /dev/null differ diff --git a/assets/voices/andrea-bf55ca1485.mp3 b/assets/voices/andrea-bf55ca1485.mp3 deleted file mode 100644 index 0ea245e..0000000 Binary files a/assets/voices/andrea-bf55ca1485.mp3 and /dev/null differ diff --git a/assets/voices/andrea-dc84344445.mp3 b/assets/voices/andrea-dc84344445.mp3 deleted file mode 100644 index b2a8408..0000000 Binary files a/assets/voices/andrea-dc84344445.mp3 and /dev/null differ diff --git a/assets/voices/index.json b/assets/voices/index.json index 18038c3..0df6c06 100644 --- a/assets/voices/index.json +++ b/assets/voices/index.json @@ -191,21 +191,17 @@ "file": "andrea-0ffcdd4977.mp3", "sec": 4.07 }, - "andrea|Ecco dove vanno le impronte: dentro questa fessura!": { - "file": "andrea-bf55ca1485.mp3", - "sec": 4.45 + "andrea|E lì, alla base del muro, c'è una fessura che prima non avevo notato.": { + "file": "andrea-037b974f0e.mp3", + "sec": 4.82 }, - "andrea|Dentro è buio pesto. Senza luce non vedo niente.": { - "file": "andrea-51800429c8.mp3", - "sec": 3.87 + "andrea|Ecco dove vanno le impronte: dentro questa fessura, larga quanto un gatto grasso!": { + "file": "andrea-5027e7d124.mp3", + "sec": 5.82 }, - "andrea|Una fessura alla base del bastione, larga quanto un gatto grasso.": { - "file": "andrea-464f75cf78.mp3", - "sec": 4.61 - }, - "andrea|Dentro è buio pesto. E ne esce un'aria fresca da cantina.": { - "file": "andrea-5cb4d0e1ba.mp3", - "sec": 4.25 + "andrea|Dentro è buio pesto, e ne esce un'aria fresca da cantina. Senza luce non vedo niente.": { + "file": "andrea-5a7baa436b.mp3", + "sec": 7.17 }, "andrea|Infilarci la mano al buio? Neanche per sogno.": { "file": "andrea-1615291724.mp3", @@ -255,14 +251,6 @@ "file": "andrea-302d8996ec.mp3", "sec": 6.95 }, - "andrea|Accendo la torcia e guardo dentro... pietre, ragnatele, buio.": { - "file": "andrea-dc84344445.mp3", - "sec": 5.6 - }, - "andrea|Non so nemmeno cosa sto cercando. Prima devo capire chi è passato di qui.": { - "file": "andrea-59a49e494b.mp3", - "sec": 5.28 - }, "andrea|La Pieve di San Pietro. Il mio rione: noi bianchi.": { "file": "andrea-43fd5c2b27.mp3", "sec": 4.46 diff --git a/src/story/story.js b/src/story/story.js index 6b0aca0..7a89a22 100644 --- a/src/story/story.js +++ b/src/story/story.js @@ -357,15 +357,16 @@ export const story = { { set: 'indizio_regolo' }, { say: 'Ma la porta è incatenata da anni. E allora da dove è entrato?' }, { say: 'Le impronte non finiscono alla porta: piegano verso il bastione.' }, + { say: 'E lì, alla base del muro, c\'è una fessura che prima non avevo notato.' }, ], }], }, }, - // Fine del primo capitolo: le impronte portano qui; con la torcia si vede il palio, e due occhi gialli. + // Fine del primo capitolo: la fessura si nota solo quando le impronte la indicano (squama sulle impronte); con la torcia si vede il palio, e due occhi gialli. // Il dettaglio che lo fa riconoscere è quello del quadro vero (foto di Andrea, assets/raw/palio-2007-foto.jpg), // già visto sul manifesto in piazza: l'omino con la maglia rossa e le braccia alzate. { - id: 'fessura', name: 'fessura nel bastione', box: [486, 266, 30, 38], at: [462, 310], face: 'right', + id: 'fessura', name: 'fessura nel bastione', box: [486, 266, 30, 38], at: [462, 310], face: 'right', when: 'indizio_regolo', art: [ { poly: [[490, 301], [493, 288], [497, 276], [502, 270], [507, 278], [510, 290], [512, 302]], fill: '#120c08' }, { when: 'luce_fessura', poly: [[494, 299], [497, 286], [502, 278], [506, 286], [508, 299]], fill: 'rgba(255, 228, 140, 0.6)' }, @@ -376,39 +377,28 @@ export const story = { { when: 'occhi_regolo', rect: [504, 282, 2, 2], fill: '#ffe14a' }, ], actions: { - look: [{ - if: 'indizio_regolo', - then: [{ say: 'Ecco dove vanno le impronte: dentro questa fessura!' }, { say: 'Dentro è buio pesto. Senza luce non vedo niente.' }], - else: [{ say: 'Una fessura alla base del bastione, larga quanto un gatto grasso.' }, { say: 'Dentro è buio pesto. E ne esce un\'aria fresca da cantina.' }], - }], + look: [{ say: 'Ecco dove vanno le impronte: dentro questa fessura, larga quanto un gatto grasso!' }, { say: 'Dentro è buio pesto, e ne esce un\'aria fresca da cantina. Senza luce non vedo niente.' }], use: [{ say: 'Infilarci la mano al buio? Neanche per sogno.' }], take: [{ say: 'Una fessura non si prende. Al massimo ci si guarda dentro.' }], open: [{ say: 'È già aperta. Il problema è che è piccola.' }], talk: [{ say: 'C\'è nessuno?' }, { say: '...' }, { say: 'Solo l\'eco. Spero.' }], }, with: { - torcia: [{ - if: 'indizio_regolo', - then: [ - { say: 'Accendo la torcia e la punto dentro...' }, - { set: 'luce_fessura' }, - { say: 'Laggiù, appoggiato al muro, c\'è un angolo di tela dipinta: una strada bianca, e un omino con la maglia rossa e le braccia alzate.' }, - { say: 'È il palio! Il quadro dei ragazzi delle medie!' }, - { set: 'occhi_regolo' }, - { say: 'E quelli... sono due occhi gialli!' }, - { unset: 'occhi_regolo' }, - { say: 'Spariti nel buio.' }, - { unset: 'luce_fessura' }, - { set: 'palio_trovato' }, - { say: 'Il Regolo. E ha il nostro palio.' }, - { say: 'Domani c\'è il Palio. Stanotte, in un modo o nell\'altro, in quella Fortezza ci entro.' }, - { end: true }, - ], - else: [ - { say: 'Accendo la torcia e guardo dentro... pietre, ragnatele, buio.' }, - { say: 'Non so nemmeno cosa sto cercando. Prima devo capire chi è passato di qui.' }, - ], - }], + torcia: [ + { say: 'Accendo la torcia e la punto dentro...' }, + { set: 'luce_fessura' }, + { say: 'Laggiù, appoggiato al muro, c\'è un angolo di tela dipinta: una strada bianca, e un omino con la maglia rossa e le braccia alzate.' }, + { say: 'È il palio! Il quadro dei ragazzi delle medie!' }, + { set: 'occhi_regolo' }, + { say: 'E quelli... sono due occhi gialli!' }, + { unset: 'occhi_regolo' }, + { say: 'Spariti nel buio.' }, + { unset: 'luce_fessura' }, + { set: 'palio_trovato' }, + { say: 'Il Regolo. E ha il nostro palio.' }, + { say: 'Domani c\'è il Palio. Stanotte, in un modo o nell\'altro, in quella Fortezza ci entro.' }, + { end: true }, + ], }, }, { diff --git a/tests/story.test.mjs b/tests/story.test.mjs index 2689999..175f118 100644 --- a/tests/story.test.mjs +++ b/tests/story.test.mjs @@ -407,9 +407,11 @@ test('il Trebbio ha un indizio per ogni tappa della torcia, e la torcia usata tr assert.equal(new Set(stages).size, stages.length, 'ogni tappa il suo indizio:\n' + stages.join('\n')); assert.match(stages[0], /Tosca/); assert.match(stages.at(-1), /luce/); + // Senza le impronte la fessura non si nota: non c'è niente su cui usare la torcia. const early = new Game(story, { state: { scene: 'fortezza', x: 462, y: 310, facing: 1, inventory: ['torcia'], flags: {}, used: {}, ended: false } }); - early.act('use', 'fessura', 'torcia'); settle(early); - assert.ok(!early.state.ended && !early.state.flags.palio_trovato, 'senza le impronte la fessura è solo buia'); + assert.ok(!early.hotspot('fessura'), 'la fessura compare solo dopo le impronte'); + early.state.flags.indizio_regolo = true; + assert.ok(early.hotspot('fessura'), 'dopo le impronte la fessura si vede'); }); test('ogni posto della mappa ha la sua miniatura (make miniature)', () => {