La fessura nel bastione si nota solo quando le impronte la indicano
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ApqNBvNbNCwXqR2RLo8QJh
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -191,21 +191,17 @@
|
|||||||
"file": "andrea-0ffcdd4977.mp3",
|
"file": "andrea-0ffcdd4977.mp3",
|
||||||
"sec": 4.07
|
"sec": 4.07
|
||||||
},
|
},
|
||||||
"andrea|Ecco dove vanno le impronte: dentro questa fessura!": {
|
"andrea|E lì, alla base del muro, c'è una fessura che prima non avevo notato.": {
|
||||||
"file": "andrea-bf55ca1485.mp3",
|
"file": "andrea-037b974f0e.mp3",
|
||||||
"sec": 4.45
|
"sec": 4.82
|
||||||
},
|
},
|
||||||
"andrea|Dentro è buio pesto. Senza luce non vedo niente.": {
|
"andrea|Ecco dove vanno le impronte: dentro questa fessura, larga quanto un gatto grasso!": {
|
||||||
"file": "andrea-51800429c8.mp3",
|
"file": "andrea-5027e7d124.mp3",
|
||||||
"sec": 3.87
|
"sec": 5.82
|
||||||
},
|
},
|
||||||
"andrea|Una fessura alla base del bastione, larga quanto un gatto grasso.": {
|
"andrea|Dentro è buio pesto, e ne esce un'aria fresca da cantina. Senza luce non vedo niente.": {
|
||||||
"file": "andrea-464f75cf78.mp3",
|
"file": "andrea-5a7baa436b.mp3",
|
||||||
"sec": 4.61
|
"sec": 7.17
|
||||||
},
|
|
||||||
"andrea|Dentro è buio pesto. E ne esce un'aria fresca da cantina.": {
|
|
||||||
"file": "andrea-5cb4d0e1ba.mp3",
|
|
||||||
"sec": 4.25
|
|
||||||
},
|
},
|
||||||
"andrea|Infilarci la mano al buio? Neanche per sogno.": {
|
"andrea|Infilarci la mano al buio? Neanche per sogno.": {
|
||||||
"file": "andrea-1615291724.mp3",
|
"file": "andrea-1615291724.mp3",
|
||||||
@@ -255,14 +251,6 @@
|
|||||||
"file": "andrea-302d8996ec.mp3",
|
"file": "andrea-302d8996ec.mp3",
|
||||||
"sec": 6.95
|
"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.": {
|
"andrea|La Pieve di San Pietro. Il mio rione: noi bianchi.": {
|
||||||
"file": "andrea-43fd5c2b27.mp3",
|
"file": "andrea-43fd5c2b27.mp3",
|
||||||
"sec": 4.46
|
"sec": 4.46
|
||||||
|
|||||||
+19
-29
@@ -357,15 +357,16 @@ export const story = {
|
|||||||
{ set: 'indizio_regolo' },
|
{ set: 'indizio_regolo' },
|
||||||
{ say: 'Ma la porta è incatenata da anni. E allora da dove è entrato?' },
|
{ say: 'Ma la porta è incatenata da anni. E allora da dove è entrato?' },
|
||||||
{ say: 'Le impronte non finiscono alla porta: piegano verso il bastione.' },
|
{ 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),
|
// 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.
|
// 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: [
|
art: [
|
||||||
{ poly: [[490, 301], [493, 288], [497, 276], [502, 270], [507, 278], [510, 290], [512, 302]], fill: '#120c08' },
|
{ 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)' },
|
{ 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' },
|
{ when: 'occhi_regolo', rect: [504, 282, 2, 2], fill: '#ffe14a' },
|
||||||
],
|
],
|
||||||
actions: {
|
actions: {
|
||||||
look: [{
|
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.' }],
|
||||||
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.' }],
|
|
||||||
}],
|
|
||||||
use: [{ say: 'Infilarci la mano al buio? Neanche per sogno.' }],
|
use: [{ say: 'Infilarci la mano al buio? Neanche per sogno.' }],
|
||||||
take: [{ say: 'Una fessura non si prende. Al massimo ci si guarda dentro.' }],
|
take: [{ say: 'Una fessura non si prende. Al massimo ci si guarda dentro.' }],
|
||||||
open: [{ say: 'È già aperta. Il problema è che è piccola.' }],
|
open: [{ say: 'È già aperta. Il problema è che è piccola.' }],
|
||||||
talk: [{ say: 'C\'è nessuno?' }, { say: '...' }, { say: 'Solo l\'eco. Spero.' }],
|
talk: [{ say: 'C\'è nessuno?' }, { say: '...' }, { say: 'Solo l\'eco. Spero.' }],
|
||||||
},
|
},
|
||||||
with: {
|
with: {
|
||||||
torcia: [{
|
torcia: [
|
||||||
if: 'indizio_regolo',
|
{ say: 'Accendo la torcia e la punto dentro...' },
|
||||||
then: [
|
{ set: 'luce_fessura' },
|
||||||
{ say: 'Accendo la torcia e la punto dentro...' },
|
{ 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.' },
|
||||||
{ set: 'luce_fessura' },
|
{ say: 'È il palio! Il quadro dei ragazzi delle medie!' },
|
||||||
{ 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.' },
|
{ set: 'occhi_regolo' },
|
||||||
{ say: 'È il palio! Il quadro dei ragazzi delle medie!' },
|
{ say: 'E quelli... sono due occhi gialli!' },
|
||||||
{ set: 'occhi_regolo' },
|
{ unset: 'occhi_regolo' },
|
||||||
{ say: 'E quelli... sono due occhi gialli!' },
|
{ say: 'Spariti nel buio.' },
|
||||||
{ unset: 'occhi_regolo' },
|
{ unset: 'luce_fessura' },
|
||||||
{ say: 'Spariti nel buio.' },
|
{ set: 'palio_trovato' },
|
||||||
{ unset: 'luce_fessura' },
|
{ say: 'Il Regolo. E ha il nostro palio.' },
|
||||||
{ set: 'palio_trovato' },
|
{ say: 'Domani c\'è il Palio. Stanotte, in un modo o nell\'altro, in quella Fortezza ci entro.' },
|
||||||
{ say: 'Il Regolo. E ha il nostro palio.' },
|
{ end: true },
|
||||||
{ 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.' },
|
|
||||||
],
|
|
||||||
}],
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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.equal(new Set(stages).size, stages.length, 'ogni tappa il suo indizio:\n' + stages.join('\n'));
|
||||||
assert.match(stages[0], /Tosca/);
|
assert.match(stages[0], /Tosca/);
|
||||||
assert.match(stages.at(-1), /luce/);
|
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 } });
|
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.hotspot('fessura'), 'la fessura compare solo dopo le impronte');
|
||||||
assert.ok(!early.state.ended && !early.state.flags.palio_trovato, 'senza le impronte la fessura è solo buia');
|
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)', () => {
|
test('ogni posto della mappa ha la sua miniatura (make miniature)', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user