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:
2026-10-25 14:56:02 +01:00
co-authored by Claude Opus 5.5
parent 4bda52d9ac
commit 32a3d8a7c5
63 changed files with 422 additions and 1 deletions
+112 -1
View File
@@ -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' },
],
},