diff --git a/assets/voices/andrea-06f5050907.mp3 b/assets/voices/andrea-06f5050907.mp3 new file mode 100644 index 0000000..a54a45e Binary files /dev/null and b/assets/voices/andrea-06f5050907.mp3 differ diff --git a/assets/voices/andrea-20c5ab3680.mp3 b/assets/voices/andrea-20c5ab3680.mp3 new file mode 100644 index 0000000..25b1489 Binary files /dev/null and b/assets/voices/andrea-20c5ab3680.mp3 differ diff --git a/assets/voices/andrea-2caf0f40f2.mp3 b/assets/voices/andrea-2caf0f40f2.mp3 new file mode 100644 index 0000000..23fb4a3 Binary files /dev/null and b/assets/voices/andrea-2caf0f40f2.mp3 differ diff --git a/assets/voices/andrea-343fb5c806.mp3 b/assets/voices/andrea-343fb5c806.mp3 new file mode 100644 index 0000000..1cb29ed Binary files /dev/null and b/assets/voices/andrea-343fb5c806.mp3 differ diff --git a/assets/voices/andrea-36648fc8d5.mp3 b/assets/voices/andrea-36648fc8d5.mp3 new file mode 100644 index 0000000..9a8b15b Binary files /dev/null and b/assets/voices/andrea-36648fc8d5.mp3 differ diff --git a/assets/voices/andrea-40651c0ea4.mp3 b/assets/voices/andrea-40651c0ea4.mp3 new file mode 100644 index 0000000..1d15a5a Binary files /dev/null and b/assets/voices/andrea-40651c0ea4.mp3 differ diff --git a/assets/voices/andrea-51314c3413.mp3 b/assets/voices/andrea-51314c3413.mp3 new file mode 100644 index 0000000..a6e1639 Binary files /dev/null and b/assets/voices/andrea-51314c3413.mp3 differ diff --git a/assets/voices/andrea-59df1ada58.mp3 b/assets/voices/andrea-59df1ada58.mp3 new file mode 100644 index 0000000..49c8649 Binary files /dev/null and b/assets/voices/andrea-59df1ada58.mp3 differ diff --git a/assets/voices/andrea-5a36e0de20.mp3 b/assets/voices/andrea-5a36e0de20.mp3 new file mode 100644 index 0000000..60224a7 Binary files /dev/null and b/assets/voices/andrea-5a36e0de20.mp3 differ diff --git a/assets/voices/andrea-5debd43bf6.mp3 b/assets/voices/andrea-5debd43bf6.mp3 new file mode 100644 index 0000000..f670141 Binary files /dev/null and b/assets/voices/andrea-5debd43bf6.mp3 differ diff --git a/assets/voices/andrea-62c970e189.mp3 b/assets/voices/andrea-62c970e189.mp3 new file mode 100644 index 0000000..0d45bac Binary files /dev/null and b/assets/voices/andrea-62c970e189.mp3 differ diff --git a/assets/voices/andrea-66a622cd5e.mp3 b/assets/voices/andrea-66a622cd5e.mp3 new file mode 100644 index 0000000..9056e08 Binary files /dev/null and b/assets/voices/andrea-66a622cd5e.mp3 differ diff --git a/assets/voices/andrea-898cf87dd0.mp3 b/assets/voices/andrea-898cf87dd0.mp3 new file mode 100644 index 0000000..390f33a Binary files /dev/null and b/assets/voices/andrea-898cf87dd0.mp3 differ diff --git a/assets/voices/andrea-be96b05f57.mp3 b/assets/voices/andrea-be96b05f57.mp3 new file mode 100644 index 0000000..cc1a142 Binary files /dev/null and b/assets/voices/andrea-be96b05f57.mp3 differ diff --git a/assets/voices/andrea-bf8a51895b.mp3 b/assets/voices/andrea-bf8a51895b.mp3 new file mode 100644 index 0000000..9c6091e Binary files /dev/null and b/assets/voices/andrea-bf8a51895b.mp3 differ diff --git a/assets/voices/andrea-c458e32a56.mp3 b/assets/voices/andrea-c458e32a56.mp3 new file mode 100644 index 0000000..d3e84f1 Binary files /dev/null and b/assets/voices/andrea-c458e32a56.mp3 differ diff --git a/assets/voices/andrea-d193b44288.mp3 b/assets/voices/andrea-d193b44288.mp3 new file mode 100644 index 0000000..b1e130e Binary files /dev/null and b/assets/voices/andrea-d193b44288.mp3 differ diff --git a/assets/voices/andrea-d5aeb501d8.mp3 b/assets/voices/andrea-d5aeb501d8.mp3 new file mode 100644 index 0000000..47d863d Binary files /dev/null and b/assets/voices/andrea-d5aeb501d8.mp3 differ diff --git a/assets/voices/andrea-dc9addb491.mp3 b/assets/voices/andrea-dc9addb491.mp3 new file mode 100644 index 0000000..e828997 Binary files /dev/null and b/assets/voices/andrea-dc9addb491.mp3 differ diff --git a/assets/voices/andrea-f5ff3c0ef9.mp3 b/assets/voices/andrea-f5ff3c0ef9.mp3 new file mode 100644 index 0000000..097d37e Binary files /dev/null and b/assets/voices/andrea-f5ff3c0ef9.mp3 differ diff --git a/assets/voices/andrea-f845779a10.mp3 b/assets/voices/andrea-f845779a10.mp3 new file mode 100644 index 0000000..7bfc06c Binary files /dev/null and b/assets/voices/andrea-f845779a10.mp3 differ diff --git a/assets/voices/arcu-1da81f6f98.mp3 b/assets/voices/arcu-1da81f6f98.mp3 new file mode 100644 index 0000000..26cc730 Binary files /dev/null and b/assets/voices/arcu-1da81f6f98.mp3 differ diff --git a/assets/voices/arcu-5148dffe36.mp3 b/assets/voices/arcu-5148dffe36.mp3 new file mode 100644 index 0000000..cd53b56 Binary files /dev/null and b/assets/voices/arcu-5148dffe36.mp3 differ diff --git a/assets/voices/arcu-5d1fa73d32.mp3 b/assets/voices/arcu-5d1fa73d32.mp3 new file mode 100644 index 0000000..19676dc Binary files /dev/null and b/assets/voices/arcu-5d1fa73d32.mp3 differ diff --git a/assets/voices/arcu-85c7d0b8f6.mp3 b/assets/voices/arcu-85c7d0b8f6.mp3 new file mode 100644 index 0000000..fe4a21b Binary files /dev/null and b/assets/voices/arcu-85c7d0b8f6.mp3 differ diff --git a/assets/voices/arcu-8c7f1850a3.mp3 b/assets/voices/arcu-8c7f1850a3.mp3 new file mode 100644 index 0000000..64c55f0 Binary files /dev/null and b/assets/voices/arcu-8c7f1850a3.mp3 differ diff --git a/assets/voices/arcu-af7afda339.mp3 b/assets/voices/arcu-af7afda339.mp3 new file mode 100644 index 0000000..0d0566b Binary files /dev/null and b/assets/voices/arcu-af7afda339.mp3 differ diff --git a/assets/voices/arcu-bb69d88654.mp3 b/assets/voices/arcu-bb69d88654.mp3 new file mode 100644 index 0000000..7e47b60 Binary files /dev/null and b/assets/voices/arcu-bb69d88654.mp3 differ diff --git a/assets/voices/arcu-e157a4b70b.mp3 b/assets/voices/arcu-e157a4b70b.mp3 new file mode 100644 index 0000000..38de1e7 Binary files /dev/null and b/assets/voices/arcu-e157a4b70b.mp3 differ diff --git a/assets/voices/arcu-fdd1ab5f5b.mp3 b/assets/voices/arcu-fdd1ab5f5b.mp3 new file mode 100644 index 0000000..bc3d51c Binary files /dev/null and b/assets/voices/arcu-fdd1ab5f5b.mp3 differ diff --git a/assets/voices/barondeduke-52184c7c05.mp3 b/assets/voices/barondeduke-52184c7c05.mp3 new file mode 100644 index 0000000..09b2903 Binary files /dev/null and b/assets/voices/barondeduke-52184c7c05.mp3 differ diff --git a/assets/voices/barondeduke-eff8685095.mp3 b/assets/voices/barondeduke-eff8685095.mp3 new file mode 100644 index 0000000..ff62dcc Binary files /dev/null and b/assets/voices/barondeduke-eff8685095.mp3 differ diff --git a/assets/voices/castello-3267e20838.mp3 b/assets/voices/castello-3267e20838.mp3 new file mode 100644 index 0000000..6bc8030 Binary files /dev/null and b/assets/voices/castello-3267e20838.mp3 differ diff --git a/assets/voices/castello-c2cc9224c5.mp3 b/assets/voices/castello-c2cc9224c5.mp3 new file mode 100644 index 0000000..c4f2d87 Binary files /dev/null and b/assets/voices/castello-c2cc9224c5.mp3 differ diff --git a/assets/voices/index.json b/assets/voices/index.json index c3c4813..5059a0d 100644 --- a/assets/voices/index.json +++ b/assets/voices/index.json @@ -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 diff --git a/assets/voices/leone-19d904d4e1.mp3 b/assets/voices/leone-19d904d4e1.mp3 new file mode 100644 index 0000000..175f270 Binary files /dev/null and b/assets/voices/leone-19d904d4e1.mp3 differ diff --git a/assets/voices/leone-4addbac9c7.mp3 b/assets/voices/leone-4addbac9c7.mp3 new file mode 100644 index 0000000..3ef25df Binary files /dev/null and b/assets/voices/leone-4addbac9c7.mp3 differ diff --git a/assets/voices/leone-7bd7f55e53.mp3 b/assets/voices/leone-7bd7f55e53.mp3 new file mode 100644 index 0000000..4bc75b4 Binary files /dev/null and b/assets/voices/leone-7bd7f55e53.mp3 differ diff --git a/assets/voices/san_pietro-28fac8029b.mp3 b/assets/voices/san_pietro-28fac8029b.mp3 new file mode 100644 index 0000000..ec9fb51 Binary files /dev/null and b/assets/voices/san_pietro-28fac8029b.mp3 differ diff --git a/assets/voices/san_pietro-72373bd589.mp3 b/assets/voices/san_pietro-72373bd589.mp3 new file mode 100644 index 0000000..1940fab Binary files /dev/null and b/assets/voices/san_pietro-72373bd589.mp3 differ diff --git a/assets/voices/tosca-7451ea2ef5.mp3 b/assets/voices/tosca-7451ea2ef5.mp3 new file mode 100644 index 0000000..c803117 Binary files /dev/null and b/assets/voices/tosca-7451ea2ef5.mp3 differ diff --git a/assets/voices/tosca-940ffeb62c.mp3 b/assets/voices/tosca-940ffeb62c.mp3 new file mode 100644 index 0000000..05c7290 Binary files /dev/null and b/assets/voices/tosca-940ffeb62c.mp3 differ diff --git a/assets/voices/tosca-ad26d2c8dc.mp3 b/assets/voices/tosca-ad26d2c8dc.mp3 new file mode 100644 index 0000000..0387ae9 Binary files /dev/null and b/assets/voices/tosca-ad26d2c8dc.mp3 differ diff --git a/assets/voices/tosca-ffc7cea9af.mp3 b/assets/voices/tosca-ffc7cea9af.mp3 new file mode 100644 index 0000000..b26d3e6 Binary files /dev/null and b/assets/voices/tosca-ffc7cea9af.mp3 differ diff --git a/assets/voices/tozzino-18e6d6edff.mp3 b/assets/voices/tozzino-18e6d6edff.mp3 new file mode 100644 index 0000000..118613c Binary files /dev/null and b/assets/voices/tozzino-18e6d6edff.mp3 differ diff --git a/assets/voices/tozzino-cfc1b1fa67.mp3 b/assets/voices/tozzino-cfc1b1fa67.mp3 new file mode 100644 index 0000000..a1d2908 Binary files /dev/null and b/assets/voices/tozzino-cfc1b1fa67.mp3 differ diff --git a/assets/voices/vecchietta-15dbd36313.mp3 b/assets/voices/vecchietta-15dbd36313.mp3 new file mode 100644 index 0000000..b60eac3 Binary files /dev/null and b/assets/voices/vecchietta-15dbd36313.mp3 differ diff --git a/assets/voices/vecchietta-1cbc047e44.mp3 b/assets/voices/vecchietta-1cbc047e44.mp3 new file mode 100644 index 0000000..813cf77 Binary files /dev/null and b/assets/voices/vecchietta-1cbc047e44.mp3 differ diff --git a/assets/voices/vecchietta-31f93f8c02.mp3 b/assets/voices/vecchietta-31f93f8c02.mp3 new file mode 100644 index 0000000..05ca1c9 Binary files /dev/null and b/assets/voices/vecchietta-31f93f8c02.mp3 differ diff --git a/assets/voices/vecchietta-51d10531a0.mp3 b/assets/voices/vecchietta-51d10531a0.mp3 new file mode 100644 index 0000000..7fdbef2 Binary files /dev/null and b/assets/voices/vecchietta-51d10531a0.mp3 differ diff --git a/assets/voices/vecchietta-7baa7686cd.mp3 b/assets/voices/vecchietta-7baa7686cd.mp3 new file mode 100644 index 0000000..1f53039 Binary files /dev/null and b/assets/voices/vecchietta-7baa7686cd.mp3 differ diff --git a/assets/voices/vecchietta-8bcd369812.mp3 b/assets/voices/vecchietta-8bcd369812.mp3 new file mode 100644 index 0000000..44d8244 Binary files /dev/null and b/assets/voices/vecchietta-8bcd369812.mp3 differ diff --git a/assets/voices/vecchietta-8f618fae8c.mp3 b/assets/voices/vecchietta-8f618fae8c.mp3 new file mode 100644 index 0000000..f5e0b85 Binary files /dev/null and b/assets/voices/vecchietta-8f618fae8c.mp3 differ diff --git a/assets/voices/vecchietto-27843b8226.mp3 b/assets/voices/vecchietto-27843b8226.mp3 new file mode 100644 index 0000000..d3ac307 Binary files /dev/null and b/assets/voices/vecchietto-27843b8226.mp3 differ diff --git a/assets/voices/vecchietto-320caa6792.mp3 b/assets/voices/vecchietto-320caa6792.mp3 new file mode 100644 index 0000000..01bec71 Binary files /dev/null and b/assets/voices/vecchietto-320caa6792.mp3 differ diff --git a/assets/voices/vecchietto-33b2aadc49.mp3 b/assets/voices/vecchietto-33b2aadc49.mp3 new file mode 100644 index 0000000..9b6b2cf Binary files /dev/null and b/assets/voices/vecchietto-33b2aadc49.mp3 differ diff --git a/assets/voices/vecchietto-6a0dcb4430.mp3 b/assets/voices/vecchietto-6a0dcb4430.mp3 new file mode 100644 index 0000000..1e294ae Binary files /dev/null and b/assets/voices/vecchietto-6a0dcb4430.mp3 differ diff --git a/assets/voices/vecchietto-7204d5b851.mp3 b/assets/voices/vecchietto-7204d5b851.mp3 new file mode 100644 index 0000000..f252df1 Binary files /dev/null and b/assets/voices/vecchietto-7204d5b851.mp3 differ diff --git a/assets/voices/vecchietto-9d2e14790f.mp3 b/assets/voices/vecchietto-9d2e14790f.mp3 new file mode 100644 index 0000000..cb9c4d9 Binary files /dev/null and b/assets/voices/vecchietto-9d2e14790f.mp3 differ diff --git a/assets/voices/vecchietto-cc1d61420b.mp3 b/assets/voices/vecchietto-cc1d61420b.mp3 new file mode 100644 index 0000000..a257153 Binary files /dev/null and b/assets/voices/vecchietto-cc1d61420b.mp3 differ diff --git a/docs/IDEE.md b/docs/IDEE.md index 616ea9e..ea6b248 100644 --- a/docs/IDEE.md +++ b/docs/IDEE.md @@ -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. diff --git a/src/story/story.js b/src/story/story.js index 45a51f2..7d57c28 100644 --- a/src/story/story.js +++ b/src/story/story.js @@ -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' }, ], }, diff --git a/tests/story.test.mjs b/tests/story.test.mjs index 568535f..8c70da0 100644 --- a/tests/story.test.mjs +++ b/tests/story.test.mjs @@ -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(); +});