Risposte su misura ai tentativi sbagliati (squama, torcia, ghiacciolo, libro a vecchietti, leone, San Pietro, Tosca, torre, amici); il pettegolezzo che cambia con le scoperte (vecchietti, Arcu, Tosca); l'Arcu senza memoria; le altre idee di Codex in IDEE.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ks2K99uqCZjAxvy7Rdj1R
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.
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.
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.
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.
@@ -91,6 +91,22 @@
|
||||
"file": "andrea-af4d717814.mp3",
|
||||
"sec": 6.44
|
||||
},
|
||||
"vecchietto|Dice che Andrea ha trovato un serpente lungo dodici metri.": {
|
||||
"file": "vecchietto-cc1d61420b.mp3",
|
||||
"sec": 3.64
|
||||
},
|
||||
"vecchietta|Ma quale serpente. Secondo me va solo a farsi le canne: torna sempre con gli occhi rossi!": {
|
||||
"file": "vecchietta-31f93f8c02.mp3",
|
||||
"sec": 5.95
|
||||
},
|
||||
"andrea|Sono qui, eh. Vi sento.": {
|
||||
"file": "andrea-5debd43bf6.mp3",
|
||||
"sec": 2.64
|
||||
},
|
||||
"vecchietta|Oh! Andrea! Si parlava d'un altro.": {
|
||||
"file": "vecchietta-1cbc047e44.mp3",
|
||||
"sec": 4.9
|
||||
},
|
||||
"andrea|Se li porto via, il paese resta senza notizie.": {
|
||||
"file": "andrea-566475abe2.mp3",
|
||||
"sec": 3.48
|
||||
@@ -111,6 +127,26 @@
|
||||
"file": "andrea-eeb5a2273c.mp3",
|
||||
"sec": 1.3
|
||||
},
|
||||
"vecchietta|Al limone! Da ragazza me ne mangiavo tre di fila.": {
|
||||
"file": "vecchietta-15dbd36313.mp3",
|
||||
"sec": 3.24
|
||||
},
|
||||
"vecchietto|E poi tre giorni a letto.": {
|
||||
"file": "vecchietto-6a0dcb4430.mp3",
|
||||
"sec": 1.37
|
||||
},
|
||||
"andrea|Me lo tengo io, allora.": {
|
||||
"file": "andrea-d5aeb501d8.mp3",
|
||||
"sec": 1.16
|
||||
},
|
||||
"vecchietto|«La storia infinita»? Alla mia età, figliolo, meglio qualcosa di corto.": {
|
||||
"file": "vecchietto-27843b8226.mp3",
|
||||
"sec": 5.02
|
||||
},
|
||||
"andrea|Fidati: è più corto di quel che sembra.": {
|
||||
"file": "andrea-20c5ab3680.mp3",
|
||||
"sec": 2.41
|
||||
},
|
||||
"andrea|Qualcosa luccica, proprio sotto i piedi dei vecchietti.": {
|
||||
"file": "andrea-9a8732a3aa.mp3",
|
||||
"sec": 3.97
|
||||
@@ -175,6 +211,10 @@
|
||||
"file": "andrea-fd10e3f083.mp3",
|
||||
"sec": 3.04
|
||||
},
|
||||
"andrea|Di giorno la torcia non serve: le impronte si vedono benissimo. È il buio della fessura, il problema.": {
|
||||
"file": "andrea-36648fc8d5.mp3",
|
||||
"sec": 7.66
|
||||
},
|
||||
"andrea|Ormai lo so: è passato di qui. E le impronte piegano verso il bastione.": {
|
||||
"file": "andrea-5b0cf4f9cf.mp3",
|
||||
"sec": 5.03
|
||||
@@ -231,6 +271,10 @@
|
||||
"file": "andrea-aa9b313a43.mp3",
|
||||
"sec": 2.22
|
||||
},
|
||||
"andrea|Troppo buio: non vedo nemmeno dove lo infilo. Prima ci vuole una luce.": {
|
||||
"file": "andrea-59df1ada58.mp3",
|
||||
"sec": 4.78
|
||||
},
|
||||
"andrea|Accendo la torcia e la punto dentro...": {
|
||||
"file": "andrea-68a845881b.mp3",
|
||||
"sec": 1.94
|
||||
@@ -279,6 +323,14 @@
|
||||
"file": "andrea-6012288000.mp3",
|
||||
"sec": 7.97
|
||||
},
|
||||
"san_pietro|Figliolo, io tengo le chiavi, non le squame. Portala a chi l'ha persa.": {
|
||||
"file": "san_pietro-28fac8029b.mp3",
|
||||
"sec": 5.6
|
||||
},
|
||||
"san_pietro|Te l'ho data io: usala, non restituirla. Le chiavi servono alle porte.": {
|
||||
"file": "san_pietro-72373bd589.mp3",
|
||||
"sec": 6.13
|
||||
},
|
||||
"andrea|La statua di San Pietro, con le chiavi in mano. Lui il palio l'ha visto passare di sicuro.": {
|
||||
"file": "andrea-0663f64ddf.mp3",
|
||||
"sec": 5.97
|
||||
@@ -587,6 +639,10 @@
|
||||
"file": "andrea-a8dfddbe65.mp3",
|
||||
"sec": 3.45
|
||||
},
|
||||
"andrea|Un lucchetto non si pesca. Ci vuole la sua chiave.": {
|
||||
"file": "andrea-d193b44288.mp3",
|
||||
"sec": 3.65
|
||||
},
|
||||
"andrea|Il tabernacolo prima del ponte. Chi passa per andare via dal paese, un saluto glielo fa sempre.": {
|
||||
"file": "andrea-78a5ef65f0.mp3",
|
||||
"sec": 7.84
|
||||
@@ -627,6 +683,18 @@
|
||||
"file": "andrea-e47b3cebb5.mp3",
|
||||
"sec": 4.87
|
||||
},
|
||||
"barondeduke|Me la giochi? Ho un sette e un due, ma un sacco di fiducia.": {
|
||||
"file": "barondeduke-52184c7c05.mp3",
|
||||
"sec": 5.58
|
||||
},
|
||||
"andrea|No, Barone. A poker le squame non valgono.": {
|
||||
"file": "andrea-40651c0ea4.mp3",
|
||||
"sec": 4.39
|
||||
},
|
||||
"barondeduke|A questo giro non punto niente. Nemmeno un ghiacciolo.": {
|
||||
"file": "barondeduke-eff8685095.mp3",
|
||||
"sec": 4.28
|
||||
},
|
||||
"andrea|Il BaronDeDuke, col cappello da cowboy. Ha l'aria di uno che aspetta qualcuno, e che spera non lo veda nessuno.": {
|
||||
"file": "andrea-0bd1b0f32e.mp3",
|
||||
"sec": 8.7
|
||||
@@ -803,6 +871,18 @@
|
||||
"file": "andrea-bb70dea2a6.mp3",
|
||||
"sec": 2.15
|
||||
},
|
||||
"arcu|Che è, la mancia? Una squama? Grazie, la metto in cassaforte.": {
|
||||
"file": "arcu-8c7f1850a3.mp3",
|
||||
"sec": 5.84
|
||||
},
|
||||
"arcu|Tienila te, che io di roba verde ne ho già abbastanza sul lavoro.": {
|
||||
"file": "arcu-bb69d88654.mp3",
|
||||
"sec": 3.23
|
||||
},
|
||||
"arcu|Un libro? A me? Lo sai che io leggo solo le etichette degli armadi.": {
|
||||
"file": "arcu-1da81f6f98.mp3",
|
||||
"sec": 6.44
|
||||
},
|
||||
"andrea|L'Arcu, il mio amico di sempre. Davanti al circolino, come se ci fosse nato.": {
|
||||
"file": "andrea-8ddab2d024.mp3",
|
||||
"sec": 5.79
|
||||
@@ -839,6 +919,18 @@
|
||||
"file": "andrea-455ac4031a.mp3",
|
||||
"sec": 4.96
|
||||
},
|
||||
"andrea|Tosca, guarda cosa ho trovato.": {
|
||||
"file": "andrea-f5ff3c0ef9.mp3",
|
||||
"sec": 2.27
|
||||
},
|
||||
"tosca|Bella. Ma nella cedrata questa non ce la metto.": {
|
||||
"file": "tosca-7451ea2ef5.mp3",
|
||||
"sec": 3.81
|
||||
},
|
||||
"tosca|Un libro? Andrea, qui si legge solo il listino. E costa meno.": {
|
||||
"file": "tosca-ffc7cea9af.mp3",
|
||||
"sec": 6.46
|
||||
},
|
||||
"andrea|Il chiosco del tennis. D'estate qui c'è la Tosca coi ghiaccioli.": {
|
||||
"file": "andrea-24214bad4e.mp3",
|
||||
"sec": 5.6
|
||||
@@ -959,6 +1051,26 @@
|
||||
"file": "andrea-468fe91000.mp3",
|
||||
"sec": 3.28
|
||||
},
|
||||
"leone|Ehi! Mi abbagli! Sono di terracotta, mica cieco.": {
|
||||
"file": "leone-4addbac9c7.mp3",
|
||||
"sec": 6
|
||||
},
|
||||
"andrea|Scusa, leone.": {
|
||||
"file": "andrea-66a622cd5e.mp3",
|
||||
"sec": 0.92
|
||||
},
|
||||
"leone|Quella tienila per il buio. Qui c'è il sole, se non l'hai notato.": {
|
||||
"file": "leone-19d904d4e1.mp3",
|
||||
"sec": 5.66
|
||||
},
|
||||
"leone|Una squama? Io di squame ne ho viste... mai. Io faccio la guardia alla salita.": {
|
||||
"file": "leone-7bd7f55e53.mp3",
|
||||
"sec": 8.73
|
||||
},
|
||||
"andrea|Lo so, lo so. Alla salita.": {
|
||||
"file": "andrea-62c970e189.mp3",
|
||||
"sec": 2.65
|
||||
},
|
||||
"andrea|Di là si va alla scuola. Ci ho passato abbastanza anni, grazie.": {
|
||||
"file": "andrea-f6fa5d6d6d.mp3",
|
||||
"sec": 4.03
|
||||
@@ -975,6 +1087,14 @@
|
||||
"file": "andrea-f5d55187e8.mp3",
|
||||
"sec": 5.11
|
||||
},
|
||||
"tozzino|Grazie, ma prima della partita niente zuccheri. Federer non li tocca.": {
|
||||
"file": "tozzino-cfc1b1fa67.mp3",
|
||||
"sec": 4.8
|
||||
},
|
||||
"tozzino|Una torcia? Se Federer arriva di notte, magari. Per ora tienila te.": {
|
||||
"file": "tozzino-18e6d6edff.mp3",
|
||||
"sec": 5.58
|
||||
},
|
||||
"andrea|Il Tozzino, vestito di bianco da capo a piedi, con la racchetta. Guarda l'orologio ogni dieci secondi.": {
|
||||
"file": "andrea-3c32888a15.mp3",
|
||||
"sec": 8.1
|
||||
@@ -1135,6 +1255,14 @@
|
||||
"file": "andrea-a1dab4073c.mp3",
|
||||
"sec": 3.82
|
||||
},
|
||||
"castello|Luce? In seicento anni ne ho vista tanta. Tienila per il buio, che quello non manca mai.": {
|
||||
"file": "castello-c2cc9224c5.mp3",
|
||||
"sec": 9.1
|
||||
},
|
||||
"castello|Non a me. Portala vicino a chi l'ha persa: le cose parlano solo dove sono cadute.": {
|
||||
"file": "castello-3267e20838.mp3",
|
||||
"sec": 7.74
|
||||
},
|
||||
"andrea|La torre del Trebbio. Da ragazzo ci si rifugiò Amerigo Vespucci, per scappare dalla peste di Firenze.": {
|
||||
"file": "andrea-14cbceece4.mp3",
|
||||
"sec": 6.99
|
||||
@@ -1295,6 +1423,10 @@
|
||||
"file": "andrea-2d0e3c759e.mp3",
|
||||
"sec": 1.39
|
||||
},
|
||||
"andrea|Tosca, cosa si dice in giro?": {
|
||||
"file": "andrea-be96b05f57.mp3",
|
||||
"sec": 2.04
|
||||
},
|
||||
"andrea|Niente, grazie Tosca.": {
|
||||
"file": "andrea-2637918e77.mp3",
|
||||
"sec": 1.32
|
||||
@@ -1319,6 +1451,14 @@
|
||||
"file": "tosca-376fbb9f17.mp3",
|
||||
"sec": 2.41
|
||||
},
|
||||
"tosca|Che sei andato sotto la Fortezza da solo. Il paese parla, Andrea.": {
|
||||
"file": "tosca-ad26d2c8dc.mp3",
|
||||
"sec": 5.16
|
||||
},
|
||||
"tosca|Prenditi una cedrata, che le chiacchiere mettono sete.": {
|
||||
"file": "tosca-940ffeb62c.mp3",
|
||||
"sec": 2.98
|
||||
},
|
||||
"tosca|Quando ti viene sete, sai dove trovarmi.": {
|
||||
"file": "tosca-db2da31cef.mp3",
|
||||
"sec": 2.31
|
||||
@@ -1383,6 +1523,18 @@
|
||||
"file": "andrea-379131645c.mp3",
|
||||
"sec": 1.98
|
||||
},
|
||||
"andrea|Ho trovato una squama, sotto la panchina.": {
|
||||
"file": "andrea-5a36e0de20.mp3",
|
||||
"sec": 2.57
|
||||
},
|
||||
"andrea|Sotto la Fortezza ci sono impronte, e vanno verso il bastione.": {
|
||||
"file": "andrea-dc9addb491.mp3",
|
||||
"sec": 3.56
|
||||
},
|
||||
"andrea|Ho una torcia. Stasera salgo alla Fortezza.": {
|
||||
"file": "andrea-c458e32a56.mp3",
|
||||
"sec": 4.28
|
||||
},
|
||||
"andrea|Ci vediamo dopo.": {
|
||||
"file": "andrea-7e9841c23a.mp3",
|
||||
"sec": 0.95
|
||||
@@ -1423,6 +1575,42 @@
|
||||
"file": "vecchietta-fe3c07afa2.mp3",
|
||||
"sec": 5.11
|
||||
},
|
||||
"vecchietta|L'avevo detto io, che luccicava!": {
|
||||
"file": "vecchietta-8bcd369812.mp3",
|
||||
"sec": 2.3
|
||||
},
|
||||
"vecchietto|Una squama a maggio? Allora il Regolo fa la muta, come le bisce.": {
|
||||
"file": "vecchietto-33b2aadc49.mp3",
|
||||
"sec": 4.64
|
||||
},
|
||||
"vecchietta|O l'ha persa uno della sfilata, col costume. Che ne sai.": {
|
||||
"file": "vecchietta-51d10531a0.mp3",
|
||||
"sec": 4.34
|
||||
},
|
||||
"vecchietto|Lo sapevo. Stanotte ho sentito raspare, dalla parte della Fortezza.": {
|
||||
"file": "vecchietto-7204d5b851.mp3",
|
||||
"sec": 5.29
|
||||
},
|
||||
"vecchietta|Tu stanotte dormivi. L'hai detto tu.": {
|
||||
"file": "vecchietta-8f618fae8c.mp3",
|
||||
"sec": 2.75
|
||||
},
|
||||
"vecchietto|Si può dormire e sentire. Alla mia età si fa tutto insieme.": {
|
||||
"file": "vecchietto-320caa6792.mp3",
|
||||
"sec": 4.92
|
||||
},
|
||||
"vecchietto|Di sera? Lassù? Allora salutaci il Regolo.": {
|
||||
"file": "vecchietto-9d2e14790f.mp3",
|
||||
"sec": 4.08
|
||||
},
|
||||
"vecchietta|E se ti mangia, almeno la festa ha un argomento.": {
|
||||
"file": "vecchietta-7baa7686cd.mp3",
|
||||
"sec": 2.94
|
||||
},
|
||||
"andrea|Grazie dell'incoraggiamento.": {
|
||||
"file": "andrea-f845779a10.mp3",
|
||||
"sec": 1.57
|
||||
},
|
||||
"vecchietta|Salutaci i tuoi!": {
|
||||
"file": "vecchietta-814e558af5.mp3",
|
||||
"sec": 1.47
|
||||
@@ -1439,6 +1627,22 @@
|
||||
"file": "andrea-413cf7673b.mp3",
|
||||
"sec": 1.56
|
||||
},
|
||||
"andrea|Ho trovato una squama del Regolo.": {
|
||||
"file": "andrea-51314c3413.mp3",
|
||||
"sec": 1.69
|
||||
},
|
||||
"andrea|Sotto la Fortezza ci sono le sue impronte.": {
|
||||
"file": "andrea-898cf87dd0.mp3",
|
||||
"sec": 2.49
|
||||
},
|
||||
"andrea|Ho la torcia. Stasera entro nella fessura.": {
|
||||
"file": "andrea-343fb5c806.mp3",
|
||||
"sec": 3.33
|
||||
},
|
||||
"andrea|Cosa stavamo dicendo???": {
|
||||
"file": "andrea-06f5050907.mp3",
|
||||
"sec": 1.24
|
||||
},
|
||||
"andrea|Ci si becca da i' Trappola, ai' Barrettino!": {
|
||||
"file": "andrea-fca6f59a70.mp3",
|
||||
"sec": 3.41
|
||||
@@ -1451,6 +1655,38 @@
|
||||
"file": "arcu-5d07c15776.mp3",
|
||||
"sec": 2.89
|
||||
},
|
||||
"arcu|Fammi vedere... Verde. Come la Panda di mi' zio.": {
|
||||
"file": "arcu-af7afda339.mp3",
|
||||
"sec": 4.18
|
||||
},
|
||||
"arcu|Verde! Allora il Regolo tifa Cardetole. Tradimento.": {
|
||||
"file": "arcu-85c7d0b8f6.mp3",
|
||||
"sec": 5.57
|
||||
},
|
||||
"arcu|E te ci vai da solo? Io ti aspetto qui.": {
|
||||
"file": "arcu-e157a4b70b.mp3",
|
||||
"sec": 2.73
|
||||
},
|
||||
"arcu|Qualcuno deve raccontarlo, dopo.": {
|
||||
"file": "arcu-5d1fa73d32.mp3",
|
||||
"sec": 1.77
|
||||
},
|
||||
"arcu|Fai una cosa: se vedi due occhi gialli, un sono i fari della Provinciale.": {
|
||||
"file": "arcu-fdd1ab5f5b.mp3",
|
||||
"sec": 4.37
|
||||
},
|
||||
"andrea|Grazie, Arcu. Molto utile.": {
|
||||
"file": "andrea-2caf0f40f2.mp3",
|
||||
"sec": 2.73
|
||||
},
|
||||
"andrea|Ma ti si è bruciata la memoria, fratello???!?": {
|
||||
"file": "andrea-bf8a51895b.mp3",
|
||||
"sec": 2.98
|
||||
},
|
||||
"arcu|...I pompieri per cosa?": {
|
||||
"file": "arcu-5148dffe36.mp3",
|
||||
"sec": 1.7
|
||||
},
|
||||
"andrea|Sono bloccato. Mi dai un consiglio?": {
|
||||
"file": "andrea-42b02eb9ea.mp3",
|
||||
"sec": 3.9
|
||||
|
||||
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.
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.
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.
@@ -96,3 +96,12 @@ si segna qui con la data e il punto di `src/story/story.js` dove sta; le persone
|
||||
- **La racchetta del Tozzino** (Andrea, 25 ottobre): non la trova, Federer sta arrivando, ha paura di perdere e chiede
|
||||
aiuto ad Andrea. Si potrebbe legare al poker del Barone (persa la stessa sera?). Serve un foglio sprite del Tozzino
|
||||
senza racchetta, più una posa con la racchetta ritrovata.
|
||||
- **Consigli di Codex (25 ottobre), da valutare dopo 5 e 1 (risposte ai tentativi sbagliati e pettegolezzo che
|
||||
cambia, fatti):**
|
||||
- *Colpo di scena a metà*: la squama somiglia al Regolo della sfilata... ma allora chi ha lasciato le impronte?
|
||||
Solo con dialoghi e una riga nel taccuino, senza toccare la catena degli enigmi.
|
||||
- *Un enigma con l'Arcu*: tiene qualcosa, distrae qualcuno o fraintende un'istruzione (gag). Uno solo: tocca
|
||||
soluzione, test, voci e la sua posizione in ogni scena dove compare (le pose ci sono).
|
||||
- *Regia alla fessura*: col meccanismo del primo piano (`closeup`) il buio, la torcia, un istante di silenzio,
|
||||
poi gli occhi. Due immagini di Codex.
|
||||
- *Segreti facoltativi del paese* con pagine illustrate nel taccuino: funzione nuova, dopo la storia principale.
|
||||
|
||||
+112
-1
@@ -316,11 +316,25 @@ export const story = {
|
||||
id: 'vecchietti', name: 'vecchietti', box: [0, 250, 72, 52], at: [100, 320], face: 'left', default: 'talk',
|
||||
actions: {
|
||||
look: [{ say: 'I vecchietti della panchina. Sanno tutto di tutti, soprattutto quello che non è successo.' }],
|
||||
talk: [{ dialogue: 'vecchietti' }],
|
||||
talk: [
|
||||
{
|
||||
if: ['indizio_regolo', '!chiacchiere'],
|
||||
then: [
|
||||
{ set: 'chiacchiere' },
|
||||
{ say: 'Dice che Andrea ha trovato un serpente lungo dodici metri.', who: 'vecchietto', pose: 'point' },
|
||||
{ say: 'Ma quale serpente. Secondo me va solo a farsi le canne: torna sempre con gli occhi rossi!', who: 'vecchietta' },
|
||||
{ say: 'Sono qui, eh. Vi sento.' },
|
||||
{ say: 'Oh! Andrea! Si parlava d\'un altro.', who: 'vecchietta', pose: 'laugh' },
|
||||
],
|
||||
},
|
||||
{ dialogue: 'vecchietti' },
|
||||
],
|
||||
take: [{ say: 'Se li porto via, il paese resta senza notizie.' }],
|
||||
},
|
||||
give: {
|
||||
squama: [{ say: 'Guardate cosa ho trovato.' }, { say: 'Bella! È una patatina?', who: 'vecchietta', pose: 'laugh' }, { say: 'Ma che patatina, è il Regolo che fa la muta!', who: 'vecchietto' }, { say: 'Me la tengo io, grazie.' }],
|
||||
ghiacciolo: [{ say: 'Al limone! Da ragazza me ne mangiavo tre di fila.', who: 'vecchietta', pose: 'laugh' }, { say: 'E poi tre giorni a letto.', who: 'vecchietto' }, { say: 'Me lo tengo io, allora.' }],
|
||||
libro: [{ say: '«La storia infinita»? Alla mia età, figliolo, meglio qualcosa di corto.', who: 'vecchietto' }, { say: 'Fidati: è più corto di quel che sembra.' }],
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -391,6 +405,7 @@ export const story = {
|
||||
take: [{ say: 'Le impronte non si prendono. Si seguono.' }],
|
||||
},
|
||||
with: {
|
||||
torcia: [{ say: 'Di giorno la torcia non serve: le impronte si vedono benissimo. È il buio della fessura, il problema.' }],
|
||||
squama: [{
|
||||
if: 'indizio_regolo',
|
||||
then: [{ say: 'Ormai lo so: è passato di qui. E le impronte piegano verso il bastione.' }],
|
||||
@@ -425,6 +440,7 @@ export const story = {
|
||||
talk: [{ say: 'C\'è nessuno?' }, { say: '...' }, { say: 'Solo l\'eco. Spero.' }],
|
||||
},
|
||||
with: {
|
||||
stecco_gomma: [{ say: 'Troppo buio: non vedo nemmeno dove lo infilo. Prima ci vuole una luce.' }],
|
||||
torcia: [
|
||||
{ say: 'Accendo la torcia e la punto dentro...' },
|
||||
{ set: 'luce_fessura' },
|
||||
@@ -483,6 +499,10 @@ export const story = {
|
||||
{
|
||||
// San Pietro, quello delle chiavi: a chi risolve l'indovinello dà la chiave dell'oratorio.
|
||||
id: 'statua', name: 'statua di San Pietro', box: [330, 170, 26, 56], at: [345, 238], face: 'up', default: 'talk',
|
||||
give: {
|
||||
squama: [{ say: 'Figliolo, io tengo le chiavi, non le squame. Portala a chi l\'ha persa.', who: 'san_pietro' }],
|
||||
chiave_oratorio: [{ say: 'Te l\'ho data io: usala, non restituirla. Le chiavi servono alle porte.', who: 'san_pietro' }],
|
||||
},
|
||||
actions: {
|
||||
look: [{ say: 'La statua di San Pietro, con le chiavi in mano. Lui il palio l\'ha visto passare di sicuro.' }],
|
||||
talk: [{
|
||||
@@ -947,6 +967,7 @@ export const story = {
|
||||
open: [{ if: 'casetta_aperta', then: [{ say: 'È già aperta.' }], else: [{ if: 'has:chiavetta', then: [{ drop: 'chiavetta' }, { set: 'casetta_aperta' }, { say: 'La chiavetta entra nel lucchetto... clic!' }, { say: 'Prolunghe, prolunghe, prolunghe... e una torcia.' }, { give: 'torcia' }], else: [{ say: 'Chiusa col lucchetto. Il mistero resta.' }] }] }],
|
||||
},
|
||||
with: {
|
||||
stecco_gomma: [{ say: 'Un lucchetto non si pesca. Ci vuole la sua chiave.' }],
|
||||
chiavetta: [{ if: 'casetta_aperta', then: [{ say: 'È già aperta.' }], else: [{ drop: 'chiavetta' }, { set: 'casetta_aperta' }, { say: 'La chiavetta entra nel lucchetto... clic!' }, { say: 'Prolunghe, prolunghe, prolunghe... e una torcia.' }, { give: 'torcia' }] }],
|
||||
},
|
||||
},
|
||||
@@ -1033,6 +1054,10 @@ export const story = {
|
||||
},
|
||||
{
|
||||
id: 'barondeduke', name: 'il BaronDeDuke', box: [212, 245, 36, 55], at: [190, 316], face: 'right', default: 'talk',
|
||||
give: {
|
||||
squama: [{ say: 'Me la giochi? Ho un sette e un due, ma un sacco di fiducia.', who: 'barondeduke', pose: 'cards' }, { say: 'No, Barone. A poker le squame non valgono.' }],
|
||||
ghiacciolo: [{ say: 'A questo giro non punto niente. Nemmeno un ghiacciolo.', who: 'barondeduke', pose: 'facepalm' }],
|
||||
},
|
||||
actions: {
|
||||
look: [{ say: 'Il BaronDeDuke, col cappello da cowboy. Ha l\'aria di uno che aspetta qualcuno, e che spera non lo veda nessuno.' }],
|
||||
talk: [
|
||||
@@ -1337,6 +1362,10 @@ export const story = {
|
||||
},
|
||||
{
|
||||
id: 'arcu', name: 'l\'Arcu', box: [400, 216, 38, 76], at: [362, 300], face: 'right', default: 'talk',
|
||||
give: {
|
||||
squama: [{ say: 'Che è, la mancia? Una squama? Grazie, la metto in cassaforte.', who: 'arcu', pose: 'laugh' }, { say: 'Tienila te, che io di roba verde ne ho già abbastanza sul lavoro.', who: 'arcu' }],
|
||||
libro: [{ say: 'Un libro? A me? Lo sai che io leggo solo le etichette degli armadi.', who: 'arcu', pose: 'shrug' }],
|
||||
},
|
||||
actions: {
|
||||
look: [{ say: 'L\'Arcu, il mio amico di sempre. Davanti al circolino, come se ci fosse nato.' }],
|
||||
talk: [{ dialogue: 'arcu' }],
|
||||
@@ -1403,6 +1432,10 @@ export const story = {
|
||||
},
|
||||
{
|
||||
id: 'chiosco', name: 'chiosco', box: [240, 196, 106, 72], at: [300, 296], face: 'up', default: 'talk',
|
||||
give: {
|
||||
squama: [{ say: 'Tosca, guarda cosa ho trovato.' }, { say: 'Bella. Ma nella cedrata questa non ce la metto.', who: 'tosca' }],
|
||||
libro: [{ say: 'Un libro? Andrea, qui si legge solo il listino. E costa meno.', who: 'tosca' }],
|
||||
},
|
||||
actions: {
|
||||
look: [{ say: 'Il chiosco del tennis. D\'estate qui c\'è la Tosca coi ghiaccioli.' }],
|
||||
talk: [{ say: 'Tosca! C\'è la Tosca?' }, { say: 'Eccomi, Andrea! Cosa ti do? Fanta, Coca, cedrata, spuma bionda... o un ghiacciolo?', who: 'tosca' }, { dialogue: 'tosca' }],
|
||||
@@ -1582,6 +1615,12 @@ export const story = {
|
||||
talk: [{ say: 'Ciao leone. Visto passare un serpente con le ali?' }, { say: 'Io fo la guardia alla salita, mica ai serpenti.', who: 'leone' }, { say: 'E poi di notte dormo. Come tutti, in questo paese.', who: 'leone' }, { say: 'Un leone di terracotta che parla. Devo dormire di più anch\'io.' }],
|
||||
take: [{ say: 'Pesa più di me. E poi ha un\'aria permalosa.' }],
|
||||
},
|
||||
with: {
|
||||
torcia: [{ say: 'Ehi! Mi abbagli! Sono di terracotta, mica cieco.', who: 'leone' }, { say: 'Scusa, leone.' }, { say: 'Quella tienila per il buio. Qui c\'è il sole, se non l\'hai notato.', who: 'leone' }],
|
||||
},
|
||||
give: {
|
||||
squama: [{ say: 'Una squama? Io di squame ne ho viste... mai. Io faccio la guardia alla salita.', who: 'leone' }, { say: 'Lo so, lo so. Alla salita.' }],
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'verso_scuola', name: 'strada verso la scuola', box: [0, 286, 120, 44], at: [40, 336], face: 'left', exit: { scene: 'scuola', at: [128, 340], face: 'right' },
|
||||
@@ -1630,6 +1669,10 @@ export const story = {
|
||||
},
|
||||
{
|
||||
id: 'tozzino', name: 'il Tozzino', box: [422, 224, 36, 76], at: [392, 312], face: 'right', default: 'talk',
|
||||
give: {
|
||||
ghiacciolo: [{ say: 'Grazie, ma prima della partita niente zuccheri. Federer non li tocca.', who: 'tozzino', pose: 'explain' }],
|
||||
torcia: [{ say: 'Una torcia? Se Federer arriva di notte, magari. Per ora tienila te.', who: 'tozzino', pose: 'watch' }],
|
||||
},
|
||||
actions: {
|
||||
look: [{ say: 'Il Tozzino, vestito di bianco da capo a piedi, con la racchetta. Guarda l\'orologio ogni dieci secondi.' }],
|
||||
talk: [
|
||||
@@ -1862,6 +1905,12 @@ export const story = {
|
||||
hotspots: [
|
||||
{
|
||||
id: 'torre', name: 'torre del castello', box: [345, 26, 88, 196], at: [330, 312], face: 'up', default: 'talk',
|
||||
with: {
|
||||
torcia: [{ say: 'Luce? In seicento anni ne ho vista tanta. Tienila per il buio, che quello non manca mai.', who: 'castello' }],
|
||||
},
|
||||
give: {
|
||||
squama: [{ say: 'Non a me. Portala vicino a chi l\'ha persa: le cose parlano solo dove sono cadute.', who: 'castello' }],
|
||||
},
|
||||
actions: {
|
||||
look: [{ say: 'La torre del Trebbio. Da ragazzo ci si rifugiò Amerigo Vespucci, per scappare dalla peste di Firenze.' }, { say: 'Poi ha trovato l\'America. Anche lui partendo da un posto tranquillo.' }],
|
||||
talk: [{ dialogue: 'castello' }],
|
||||
@@ -1899,6 +1948,13 @@ export const story = {
|
||||
{ text: 'Una spuma bionda.', when: '!has:spuma', then: [{ say: 'La spuma bionda! Ormai la chiedono solo i nonni.', who: 'tosca' }, { give: 'spuma' }] },
|
||||
{ text: 'Una cedrata, da portare via.', when: ['!has:cedrata', '!stecco_fatto'], then: [{ say: 'Cedrata. Bella fresca.', who: 'tosca' }, { give: 'cedrata' }] },
|
||||
{ text: 'Un ghiacciolo al limone.', when: ['!has:ghiacciolo', '!stecco_fatto'], then: [{ say: 'Al limone, l\'ultimo della cassetta.', who: 'tosca' }, { give: 'ghiacciolo' }] },
|
||||
{
|
||||
id: 'tosca_voci', once: true, when: 'indizio_regolo', text: 'Tosca, cosa si dice in giro?',
|
||||
then: [
|
||||
{ say: 'Che sei andato sotto la Fortezza da solo. Il paese parla, Andrea.', who: 'tosca' },
|
||||
{ say: 'Prenditi una cedrata, che le chiacchiere mettono sete.', who: 'tosca' },
|
||||
],
|
||||
},
|
||||
{ text: 'Niente, grazie Tosca.', next: 'end', then: [{ say: 'Quando ti viene sete, sai dove trovarmi.', who: 'tosca' }] },
|
||||
],
|
||||
},
|
||||
@@ -1955,6 +2011,31 @@ export const story = {
|
||||
{ say: 'Nel mio, di Palio, si correva con le carriole vere. Mica come voi.', who: 'vecchietta' },
|
||||
],
|
||||
},
|
||||
// Il pettegolezzo cambia con le scoperte di Andrea (consiglio di Codex, 25 ottobre).
|
||||
{
|
||||
id: 'news_squama', once: true, when: 'squama_presa', text: 'Ho trovato una squama, sotto la panchina.',
|
||||
then: [
|
||||
{ say: 'L\'avevo detto io, che luccicava!', who: 'vecchietta', pose: 'point' },
|
||||
{ say: 'Una squama a maggio? Allora il Regolo fa la muta, come le bisce.', who: 'vecchietto' },
|
||||
{ say: 'O l\'ha persa uno della sfilata, col costume. Che ne sai.', who: 'vecchietta', pose: 'arms_crossed' },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'news_impronte', once: true, when: 'indizio_regolo', text: 'Sotto la Fortezza ci sono impronte, e vanno verso il bastione.',
|
||||
then: [
|
||||
{ say: 'Lo sapevo. Stanotte ho sentito raspare, dalla parte della Fortezza.', who: 'vecchietto', pose: 'point' },
|
||||
{ say: 'Tu stanotte dormivi. L\'hai detto tu.', who: 'vecchietta' },
|
||||
{ say: 'Si può dormire e sentire. Alla mia età si fa tutto insieme.', who: 'vecchietto', pose: 'shrug' },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'news_torcia', once: true, when: 'casetta_aperta', text: 'Ho una torcia. Stasera salgo alla Fortezza.',
|
||||
then: [
|
||||
{ say: 'Di sera? Lassù? Allora salutaci il Regolo.', who: 'vecchietto', pose: 'doze' },
|
||||
{ say: 'E se ti mangia, almeno la festa ha un argomento.', who: 'vecchietta', pose: 'laugh' },
|
||||
{ say: 'Grazie dell\'incoraggiamento.' },
|
||||
],
|
||||
},
|
||||
{ text: 'Ci vediamo dopo.', next: 'end', then: [{ say: 'Salutaci i tuoi!', who: 'vecchietta' }, { say: 'E se ti perdi, sali al Trebbio e chiedi alla torre. Ne sa più di noi due messi insieme.', who: 'vecchietto' }] },
|
||||
],
|
||||
},
|
||||
@@ -1967,6 +2048,36 @@ export const story = {
|
||||
options: [
|
||||
{ text: 'Ma che è sempre là, Borgo?', then: [{ say: 'E chi lo sposta???', who: 'arcu', pose: 'shrug' }] },
|
||||
{ text: 'Come va alla Casa dell\'Armando?', then: [{ say: 'Mah... un si fa una sega...', who: 'arcu', pose: 'explain' }] },
|
||||
// Anche l'Arcu segue le scoperte di Andrea.
|
||||
{
|
||||
id: 'arcu_squama', once: true, when: 'squama_presa', text: 'Ho trovato una squama del Regolo.',
|
||||
then: [
|
||||
{ say: 'Fammi vedere... Verde. Come la Panda di mi\' zio.', who: 'arcu', pose: 'laugh' },
|
||||
{ say: 'Verde! Allora il Regolo tifa Cardetole. Tradimento.', who: 'arcu', pose: 'point' },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'arcu_impronte', once: true, when: 'indizio_regolo', text: 'Sotto la Fortezza ci sono le sue impronte.',
|
||||
then: [
|
||||
{ say: 'E te ci vai da solo? Io ti aspetto qui.', who: 'arcu', pose: 'shrug' },
|
||||
{ say: 'Qualcuno deve raccontarlo, dopo.', who: 'arcu', pose: 'explain' },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'arcu_torcia', once: true, when: 'casetta_aperta', text: 'Ho la torcia. Stasera entro nella fessura.',
|
||||
then: [
|
||||
{ say: 'Fai una cosa: se vedi due occhi gialli, un sono i fari della Provinciale.', who: 'arcu', pose: 'explain' },
|
||||
{ say: 'Grazie, Arcu. Molto utile.' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Cosa stavamo dicendo???',
|
||||
then: [
|
||||
{ say: '.............', who: 'arcu' },
|
||||
{ say: 'Ma ti si è bruciata la memoria, fratello???!?' },
|
||||
{ say: '...I pompieri per cosa?', who: 'arcu', pose: 'shrug' },
|
||||
],
|
||||
},
|
||||
{ text: 'Ci si becca da i\' Trappola, ai\' Barrettino!', next: 'end' },
|
||||
],
|
||||
},
|
||||
|
||||
@@ -519,3 +519,68 @@ test('gli amici in giro: l\'Arcu al circolino, il Tozzino al cancello del tennis
|
||||
assert.ok(baron.includes('barondeduke: Avevo due donne e due jack. Entra la terza donna, e penso: «Male male si divide».'));
|
||||
assert.equal(baron.at(-1), 'barondeduke: L\'altro aveva colore.');
|
||||
});
|
||||
|
||||
test('i tentativi sbagliati hanno una risposta loro, non quella generica', () => {
|
||||
const g = new Game(story);
|
||||
settle(g);
|
||||
g.state.inventory.push('squama', 'ghiacciolo', 'libro', 'torcia', 'stecco_gomma');
|
||||
const generic = ['Non funziona.', 'Non credo che lo voglia.'];
|
||||
for (const [scene, verb, target, item, who] of [
|
||||
['piazza', 'give', 'vecchietti', 'ghiacciolo', 'vecchietta'], ['piazza', 'give', 'vecchietti', 'libro', 'vecchietto'],
|
||||
['salita_villa_adami', 'use', 'leone', 'torcia', 'leone'], ['salita_villa_adami', 'give', 'leone', 'squama', 'leone'],
|
||||
['pieve', 'give', 'statua', 'squama', 'san_pietro'], ['tennis_chiesa', 'give', 'chiosco', 'squama', 'tosca'],
|
||||
['trebbio', 'use', 'torre', 'torcia', 'castello'], ['campomigliaio_circolo', 'give', 'arcu', 'libro', 'arcu'],
|
||||
['carza', 'give', 'tozzino', 'ghiacciolo', 'tozzino'], ['polisportiva', 'give', 'barondeduke', 'squama', 'barondeduke'],
|
||||
['area_feste', 'use', 'casetta', 'stecco_gomma', 'andrea'], ['fortezza', 'use', 'impronte', 'torcia', 'andrea'],
|
||||
]) {
|
||||
g.go(scene); settle(g);
|
||||
assert.ok(g.act(verb, target, item), `${scene}: ${verb} ${target} con ${item}`);
|
||||
const lines = settle(g);
|
||||
assert.ok(lines.length && !lines.some(l => generic.includes(l.text)), `${scene}: ${target} con ${item} risponde con la frase generica`);
|
||||
assert.ok(lines.some(l => (l.who ?? 'andrea') === who), `${scene}: ${target} con ${item}: manca la risposta di ${who}`);
|
||||
}
|
||||
});
|
||||
|
||||
test('il pettegolezzo cambia con le scoperte: vecchietti, Arcu e Tosca', () => {
|
||||
const g = new Game(story);
|
||||
settle(g);
|
||||
const texts = () => g.options().map(o => o.text);
|
||||
const talk = (scene, who) => { g.go(scene); settle(g); g.act('talk', who); return settle(g).map(s => `${s.who ?? 'andrea'}: ${s.text}`); };
|
||||
const leave = () => { g.choose(g.options().findIndex(o => o.next === 'end')); settle(g); };
|
||||
// All'inizio niente notizie.
|
||||
talk('piazza', 'vecchietti');
|
||||
assert.ok(!texts().some(t => t.startsWith('Ho trovato una squama')), 'senza squama non c\'è la notizia');
|
||||
leave();
|
||||
// Trovata la squama: una notizia nuova, una volta sola.
|
||||
g.state.flags.squama_presa = true;
|
||||
talk('piazza', 'vecchietti');
|
||||
assert.ok(texts().includes('Ho trovato una squama, sotto la panchina.'));
|
||||
g.choose(texts().indexOf('Ho trovato una squama, sotto la panchina.'));
|
||||
assert.ok(settle(g).some(s => s.who === 'vecchietto' && s.text.includes('muta')));
|
||||
assert.ok(!texts().includes('Ho trovato una squama, sotto la panchina.'), 'detta una volta, basta');
|
||||
leave();
|
||||
// Le impronte: prima di parlare, i vecchietti sparlano di Andrea (una volta sola); poi la notizia delle impronte.
|
||||
g.state.flags.indizio_regolo = true;
|
||||
let said = talk('piazza', 'vecchietti');
|
||||
assert.ok(said.includes('vecchietto: Dice che Andrea ha trovato un serpente lungo dodici metri.'));
|
||||
assert.ok(said.includes('andrea: Sono qui, eh. Vi sento.'));
|
||||
assert.ok(texts().some(t => t.startsWith('Sotto la Fortezza ci sono impronte')));
|
||||
leave();
|
||||
said = talk('piazza', 'vecchietti');
|
||||
assert.ok(!said.some(t => t.includes('dodici metri')), 'le chiacchiere si origliano una volta');
|
||||
leave();
|
||||
// L'Arcu e la Tosca seguono le stesse tappe.
|
||||
talk('campomigliaio_circolo', 'arcu');
|
||||
assert.ok(texts().includes('Sotto la Fortezza ci sono le sue impronte.') && texts().includes('Ho trovato una squama del Regolo.'));
|
||||
assert.ok(!texts().includes('Ho la torcia. Stasera entro nella fessura.'), 'senza torcia non si annuncia la fessura');
|
||||
g.choose(texts().indexOf('Cosa stavamo dicendo???'));
|
||||
assert.deepEqual(settle(g).map(s => s.text).slice(-2), ['Ma ti si è bruciata la memoria, fratello???!?', '...I pompieri per cosa?']);
|
||||
leave();
|
||||
talk('tennis_chiesa', 'chiosco');
|
||||
assert.ok(texts().includes('Tosca, cosa si dice in giro?'));
|
||||
leave();
|
||||
g.state.flags.casetta_aperta = true;
|
||||
talk('campomigliaio_circolo', 'arcu');
|
||||
assert.ok(texts().includes('Ho la torcia. Stasera entro nella fessura.'));
|
||||
leave();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user