// Storia del prototipo: le scene del paese a gradini (docs/PROGETTO.md, «La mappa») per collaudare il motore. // Testi, personaggi ed enigmi sono provvisori e verranno sostituiti con i ricordi di Andrea (docs/PROGETTO.md). // Le forme in `art` sono segnaposto disegnati sopra lo sfondo (vecchietti, squama, catena) in attesa degli sprite. import { ambience } from './ambience.js'; import { piloti } from './piloti.js'; // Gli indizi del Trebbio per la catena della torcia (dopo le impronte, finché la torcia non c'è): uno per tappa, // dalla più avanti alla prima. const castello = say => [{ say, who: 'castello' }]; // Prima del GP di Fortezza l'Arcu va a prendere il Betino in cima alla salita (Andrea, 28 ottobre). const rincorsa = level => [{ say: 'Aspettate: prendo la rincorsa, che il Betino s\'accende solo in discesa.', who: 'arcu', pose: 'point' }, { closeup: 'gara', level }]; const torchHints = [{ if: 'has:chiavetta', then: castello('Una chiavetta piccola apre una cosa piccola. All\'area feste c\'è una casetta che aspetta.'), else: [{ if: 'has:stecco_gomma', then: castello('Uno stecco che appiccica pesca dove le mani non arrivano. Al ponticino, sotto la griglia, qualcosa luccica.'), else: [{ if: ['has:stecco', 'has:gomma'], then: castello('Lo stecco e la gomma, da soli, non servono a niente. Insieme, chissà.'), else: [{ if: 'has:stecco', then: [{ if: 'oratorio_aperto', then: castello('Allo stecco serve qualcosa che appiccica. Guarda per terra all\'oratorio: i ragazzi lasciano sempre qualcosa.'), else: [{ if: 'has:chiave_oratorio', then: castello('Hai una chiave in tasca, e alla Pieve c\'è una porta che la aspetta.'), else: castello('San Pietro tiene le chiavi, e un indovinello per chi le vuole. La risposta è dentro la sua Pieve: guarda il fonte battesimale.'), }], }], else: [{ if: ['has:ghiacciolo', 'has:cedrata'], then: castello('Ghiacciolo e cedrata in tasca, e li tieni lì? Il ghiacciolo nella cedrata: guarda cosa resta in mano.'), else: [{ if: 'has:ghiacciolo', then: castello('Un ghiacciolo da solo si scioglie e basta. Alla Tosca chiedi anche una cedrata.'), else: castello('Per il buio ci vuole una luce. Comincia dal fresco: la Tosca, al tennis della chiesa, ha un ghiacciolo che fa al caso tuo.'), }], }], }], }], }], }]; // Il ritorno dal 1997, dalla porta o dal pulsante «Torna al 2007»: la macchina del tempo sparisce, e per rifare il // viaggio si richiede all'Arcu (Andrea, 29 ottobre). const RITORNO_2007 = [ { say: 'Si torna nel 2007. Ciao Vannino, ciao Pierino.' }, { go: 'via_liguri_magelli', at: [212, 280], face: 'down' }, { unset: 'macchina_trappola' }, { say: 'Riportata dove l\'ho presa. Se ti riviene voglia di pokerini, chiedi.', who: 'arcu', pose: 'explain' }, ]; export const story = { title: 'La Leggenda del Regolo', // La mappa (pulsante «Mappa»): ogni scena con `map: [x, y]` (percentuali della pianta) ci compare quando è // stata visitata; le strade sono le uscite fra scene. Un posto nuovo entra con la sua riga `map`. start: { scene: 'piazza', at: [250, 320] }, // Le fasi del giorno (idea di Andrea, 24 ottobre): seguono la storia, non l'orologio. Il primo capitolo comincia // di pomeriggio; con le impronte del Regolo viene il tramonto, e quando Andrea ha la torcia è sera. Sulle scene // all'aperto un velo di colore (`tint`); luci ed effetti possono valere solo in certe fasi (`phase`). phases: [ { id: 'pomeriggio' }, { id: 'tramonto', when: 'indizio_regolo', tint: 'rgba(255, 110, 40, 0.16)' }, { id: 'sera', when: 'casetta_aperta', tint: 'rgba(24, 28, 90, 0.42)', music: 'assets/audio/sera.mp3' }, ], // Il taccuino (pulsante «Taccuino», tasto N): le tappe del capitolo in ordine. Una tappa è fatta quando la sua // condizione `done` è vera; la prima non fatta è l'obiettivo di adesso. Solo testo: non si sente a voce. notebook: [ { done: 'luccichio', text: 'Il palio è sparito dalla scuola, dove lo tenevano: stamani se n\'è accorta la Gianna. La festa è domani. Chiedo in giro: i vecchietti in piazza sanno sempre tutto.' }, { done: 'squama_presa', text: 'La vecchietta ha visto luccicare qualcosa sotto la panchina, in piazza.' }, { done: 'indizio_regolo', text: 'Una squama, grossa e luccicante. Chi l\'ha persa avrà lasciato altre tracce: lassù sotto la Fortezza, magari.' }, { done: 'casetta_aperta', text: 'Le tracce finiscono in una fessura del bastione, buia pesta. Mi serve una torcia: nella casetta dell\'area feste ce n\'è una, ma è chiusa col lucchetto.' }, { done: 'palio_trovato', text: 'Ho la torcia: di corsa alla fessura sotto la Fortezza!' }, ], notebookHelp: 'Se non so più cosa fare: al Trebbio, la torre dà sempre un consiglio.', // I quattro rioni del Palio: dopo «Nuova partita» si sceglie per chi corre Andrea, e la partita lo ricorda col // flag `rione:`. Le battute che parlano del rione di Andrea lo controllano con `if`. // Per ora si corre solo per Campomigliaio (decisione di Andrea, 24 ottobre: ogni rione vuol dire battute e voci // in più); gli altri si vedono chiusi (`locked`) e si sbloccano togliendo la riga. rioni: { piazza: { name: 'Piazza', colors: 'i rossi', color: '#d0453a', locked: true }, pieve: { name: 'Pieve', colors: 'i bianchi', color: '#f2eee2', locked: true }, cardetole: { name: 'Cardetole', colors: 'i verdi', color: '#3fa34d', locked: true }, campomigliaio: { name: 'Campomigliaio', colors: 'i blu', color: '#2f6fd0' }, }, // Le righe dell'introduzione, sopra il panorama del paese, prima della prima scena. intro: [ 'San Piero a Sieve, nel Mugello. Fine maggio 2007.', 'In paese si prepara il Palio della Fortezza: i quattro rioni si sfidano, e chi vince si porta a casa il palio, il quadro dipinto dai ragazzi delle medie.', // La riga del rione: quella del rione scelto dopo «Nuova partita» (story.rioni). { rione: { piazza: 'Io corro per la Piazza, i rossi.', pieve: 'Io corro per la Pieve, i bianchi.', cardetole: 'Io corro per Cardetole, i verdi: gioco in casa.', campomigliaio: 'Io corro per Campomigliaio, i blu.', } }, 'E stamattina, in piazza, è successo qualcosa...', ], // Colonna sonora di Andrea (fatta con Suno): titolo, paese, ricordi (fine e Trebbio). // splash: la musichetta del cartello d'apertura (tools/jingle.py), suonata una volta sola. music: { splash: 'assets/audio/cartello.mp3', title: 'assets/audio/titolo.mp3', game: 'assets/audio/paese.mp3', ending: 'assets/audio/ricordi.mp3' }, // I crediti, schermata «Crediti» dal titolo e dalla fine: un ruolo e chi l'ha fatto. Arriveranno man mano. // Un nome può avere il suo ritratto a pixel (face): nei Ringraziamenti si tocca il nome e compare il volto. credits: [ { role: 'Un gioco di', names: [{ name: 'Manzolo (Andrea Manzi)', face: 'assets/credits/manzolo.png' }] }, { role: 'Idee e consigli', names: [{ name: 'Baldoria (Yuri Baldi)', face: 'assets/credits/baldoria.png' }, { name: 'BaronDeDuke (Gabriele Rossi)', face: 'assets/credits/barondeduke.png' }, { name: 'Tozzino (Francesco Tozzi)', face: 'assets/credits/tozzino.png' }, { name: 'l\'Arcu (Marco Arcuri)', face: 'assets/credits/arcu.png' }, { name: 'Eriketta (Erika Fenaroli)', face: 'assets/credits/eriketta.png' }] }, { role: 'Storia e aneddoti di San Piero', names: [{ name: 'Francesco Bacci', face: 'assets/credits/bacci.png' }, 'Fabrizio Berti, «Memorie di sport e di paese»'] }, { role: 'Musica', names: ['Manzolo, con Suno'] }, { role: 'Sfondi', names: ['dalle fotografie di San Piero di Andrea'] }, // Chi ci ha mandato foto, ricordi o idee: una riga per contributo, si allunga man mano. { role: 'Fotografie', names: [{ name: 'Mariano Mirannalti (l\'interno della Pieve)', face: 'assets/credits/mariano.png' }] }, { role: 'Opere d\'arte nel gioco', names: [{ name: 'il palio del 2007, dipinto dai ragazzi delle medie', face: 'assets/credits/palio.png' }, 'Simone Rocchi (l\'omino di ferro del tennis della chiesa)'] }, { role: 'Voci', names: ['XTTS-v2 di Coqui'] }, { role: 'Carattere', names: ['Press Start 2P di CodeMan38 (licenza OFL)'] }, { role: 'Programmazione', names: ['Manzolo, con Claude e Codex'] }, ], // Primi piani interattivi: libro dell'oratorio e ricerca con la torcia nella fessura. // Le immagini (Codex, assets/closeups/) hanno l'etichetta e le pagine vuote: titolo e «FINE» li scrive il codice. closeups: { // [DA ANDREA: chi è] Partita facoltativa; battute provvisorie. briscola: { type: 'briscola', music: 'assets/audio/carte.mp3', names: { player: 'Andrea', cpu: 'Il giocatore' }, decks: { napoletane: 'carte_napoletane' }, win: [{ set: 'briscola_vinta' }, { set: 'briscola_giocata' }, { say: 'Oh, bravo! Ora però rimescolo io.', who: 'giocatore_carte', pose: 'laugh' }], lose: [{ set: 'briscola_giocata' }, { say: 'I carichi portali qui, mica alla stazione! Rivincita quando vuoi.', who: 'giocatore_carte', pose: 'laugh' }], draw: [{ set: 'briscola_giocata' }, { say: 'Sessanta pari. Un si litiga nemmeno sul conto!', who: 'giocatore_carte', pose: 'talk' }], quit: [{ say: 'Vai, ti tengo il posto. Le carte mica scappano.', who: 'giocatore_carte' }], }, // I tre tavoli da carte suonano il valzer della balera (tools/valzer_carte.py, Andrea: «una sua melodia»). // Il tressette a coppie ai 21 (idea di Andrea): busso, striscio, volo e accuse. [DA ANDREA: chi sono il socio e l'altro] tressette: { type: 'tressette', music: 'assets/audio/carte.mp3', names: { player: 'Andrea', cpu: 'Il giocatore' }, decks: { napoletane: 'carte_napoletane' }, seats: ['Andrea', 'Il giocatore', 'Il socio', 'L\'altro'], win: [{ set: 'tressette_vinto' }, { say: 'Ventuno per primi. Bella coppia, voi due!', who: 'giocatore_carte', pose: 'laugh' }], lose: [{ say: 'Ventuno! Il tressette è un\'arte: si studia da piccini.', who: 'giocatore_carte', pose: 'laugh' }], draw: [], quit: [{ say: 'Vai, ti tengo il posto. Le carte mica scappano.', who: 'giocatore_carte' }], }, // La scopa ai 11 (idea di Andrea): carte, mattoni (o denari), settebello, primiera e scope. scopa: { type: 'scopa', music: 'assets/audio/carte.mp3', names: { player: 'Andrea', cpu: 'Il giocatore' }, decks: { napoletane: 'carte_napoletane' }, win: [{ set: 'scopa_vinta' }, { say: 'Settebello, primiera e pure le scope. Oggi l\'hai vista bene.', who: 'giocatore_carte', pose: 'talk' }], lose: [{ say: 'Undici! Il settebello lo sento arrivare da lontano.', who: 'giocatore_carte', pose: 'laugh' }], draw: [], quit: [{ say: 'Vai, ti tengo il posto. Le carte mica scappano.', who: 'giocatore_carte' }], }, // Le bocce al pallaio contro Mariano, il campione (idea di Andrea, 25 ottobre): solo per gloria. bocce: { type: 'bocce', music: 'assets/audio/bocce.mp3', // la polka del pallaio (tools/polka_bocce.py, Andrea: «un sound suo») picture: 'assets/closeups/pallaio.png', names: { player: 'Andrea', cpu: 'Mariano' }, win: [ { say: 'Aspetta, ci vuole il metro...', who: 'mariano', pose: 'measure' }, { say: 'Hai vinto, ti ci porto!', who: 'mariano', pose: 'laugh' }, { set: 'bocce_vinte' }, ], lose: [ { say: 'Bocciato! Al pallaio comando io.', who: 'mariano', pose: 'cheer' }, { say: 'Quando vuoi la rivincita, sono qui.', who: 'mariano' }, ], quit: [{ say: 'Già stanco? Il pallaio ti aspetta.', who: 'mariano', pose: 'laugh' }], draw: [{ say: 'Quando vuoi la rivincita, sono qui.', who: 'mariano' }], }, // «Fai due tiri» al campo da basket del Circolo 4 Maggio (idea di Andrea, 27 ottobre): da solo, dieci palloni, // si arretra a ogni canestro. La gloria dipende dal livello (basket.LEVELS). [DA ANDREA: le sue battute] basket: { type: 'basket', picture: 'assets/closeups/basket-campo.png', names: { player: 'Andrea', cpu: 'il canestro' }, win: [ { say: 'Che mano! Jordan, fatti da parte.' }, { set: 'basket_vinto' }, ], lose: [ { say: 'Il ferro oggi era stretto. Riprovo dopo.' }, ], quit: [{ say: 'Lascio il pallone lì. Tanto lo sanno tutti che è mio.' }], draw: [], }, // La pesca al lago dell'Anatre coi ragazzi delle canne (idea di Andrea, 28 ottobre): sei lanci, da solo con la // canna di bambù; la gloria dipende dal livello (pesca.LEVELS). [DA ANDREA: le sue battute] pesca: { type: 'pesca', picture: 'assets/closeups/lago-anatre.png', names: { player: 'Andrea', cpu: 'il lago' }, win: [ { say: 'Oh, hai visto? Mica male, per una canna di bambù.', who: 'pescatori', pose: 'laugh' }, { say: 'Stasera si frigge. Ma prima il palio.' }, { set: 'pesca_vinta' }, ], lose: [ { say: 'I pesci c\'erano. Eri te che non c\'eri.', who: 'pescatori', pose: 'talk' }, { say: 'Si rifà. Dopo il palio.' }, ], quit: [{ say: 'Lascio la canna ai ragazzi. Il lago non scappa, il palio sì.' }], draw: [], }, // Il GP di Fortezza (idea di Andrea, 28 ottobre): tre giri coi cinquantini attorno alle mura, gas e sterzo come // nelle vecchie gare da sala giochi viste dall'alto. Chi corre sta in piloti.js. [DA ANDREA: le battute; la musica] gara: { type: 'gara', music: 'assets/audio/gara.mp3', // di Andrea (Suno) picture: 'assets/closeups/gp-fortezza.png', // Codex, dalla planimetria di Andrea; la strada è il tracciato // Corre solo chi ha dato il consenso (`consenso: null` vuol dire «da chiedere»: per ora Puntella). riders: piloti.filter(p => p.consenso !== null), names: { player: 'Andrea', cpu: 'gli altri' }, win: [ { say: 'Primo! E col Fifty di serie, o quasi.' }, { say: 'Si rifà! Questa un vale, avevo la catena lenta.', who: 'arcu', pose: 'shrug' }, { set: 'gara_vinta' }, ], lose: [ { say: 'Ho preso tutta la polvere di quelli davanti.' }, { say: 'Il Fifty è bono. È chi ci sta sopra.', who: 'arcu', pose: 'laugh' }, ], quit: [{ say: 'Lascio stare. Il Fifty mi serve intero, per il palio.' }], draw: [], }, // Il biliardo del Circolo 4 Maggio contro l'Ing. Tozzi: cinque birilli, un colpo a testa, si va a 20. [DA ANDREA: le sue battute] biliardo: { type: 'biliardo', picture: 'assets/closeups/biliardo-tavolo.png', names: { player: 'Andrea', cpu: 'L\'Ing. Tozzi' }, win: [ { say: 'Venti. Hai vinto te, stasera il caffè lo pago io.', who: 'ing_tozzi' }, { set: 'biliardo_vinto' }, ], lose: [ { say: 'Venti! Al biliardo ci vuole la mano ferma, mica la corsa.', who: 'ing_tozzi' }, { say: 'Quando vuoi, il tavolo è qui.', who: 'ing_tozzi' }, ], quit: [{ say: 'Lasci a metà? Ti segno la sconfitta a tavolino, eh.', who: 'ing_tozzi' }], draw: [], }, rinquarto: { type: 'rinquarto', picture: 'assets/closeups/biliardo-tavolo.png', names: { player: 'Andrea', cpu: 'Trappizzio Berti' }, // Andrea contro Trappizzio Berti, sulle stesse posizioni; nell'allenamento il risultato è sempre «pari». [DA ANDREA: le battute] win: [{ say: 'M\'hai battuto ai rinquarti. Però un lo dire a nessuno.', who: 'bertovo', pose: 'shrug' }, { set: 'rinquarti_vinti' }], lose: [{ say: 'Le sponde ci sono per qualcosa! Basta chiederglielo per bene.', who: 'bertovo', pose: 'laugh' }], quit: [{ say: 'Questo me lo tengo per la prossima.' }], draw: [{ say: 'Visto? Geometrie celestiali. Si riprova quando vuoi.', who: 'bertovo', pose: 'explain' }], }, // Il viaggio nel tempo dalla macchina del tempo in Via Liguri Magelli: la data sul cruscotto (Codex), poi il Barrettino // del 10 luglio 1997 (Andrea, 29 ottobre). viaggio: { type: 'viaggio', picture: 'assets/closeups/cruscotto-tempo.png', display: [220, 158, 212, 62], date: '10/07/1997 18:30', complete: [{ go: 'barrettino_1997', at: [320, 330], face: 'up' }], }, // Il pokerino del Barrettino con Vannino e Pierino (Andrea, 29 ottobre). [DA ANDREA: le battute] poker: { type: 'poker', names: { player: 'Andrea', cpu: 'Vannino e Pierino' }, win: [{ say: 'M\'hai pelato, ragazzo. Nel 1997 un ci si vedeva da queste parti, con quella faccia.', who: 'vannino', pose: 'shrug' }, { set: 'poker_vinto' }], lose: [{ say: 'Le fiches restano al banco. E tu torna quando hai imparato a bluffare.', who: 'pierino_parigi', pose: 'laugh' }], quit: [{ say: 'Già finito? E il caffè chi lo paga?', who: 'vannino', pose: 'talk' }], draw: [{ say: 'Pari. Si rifà domani sera, alla stess\'ora.', who: 'pierino_parigi', pose: 'explain' }], }, // La cerbottana con lo stucco verde di Pierin di Frilli, contro il muro della piazza (Andrea, 29 ottobre). // [DA ANDREA: le battute sono provvisorie] cerbottana: { type: 'cerbottana', picture: 'assets/closeups/muro-cerbottana.png', names: { player: 'Andrea' }, win: [{ say: 'Tutti sul muro, verdi in fila. Lo stucco di Pierino un tradisce mai.' }, { set: 'cerbottana_vinta' }], lose: [{ say: 'Finito lo stucco. Domani si ripassa da Pierino.' }], quit: [{ say: 'Il muro resta lì. E l\'odore dello stucco, sulle dita, pure.' }], draw: [], }, // Le macchinine sulla pista col gesso, sul parcheggio di Cardetole, contro il Chiaru (Andrea, 28 e 29 ottobre). // [DA ANDREA: le battute sono provvisorie] micro: { type: 'micro', music: 'assets/audio/macchinine.mp3', // di Andrea (Suno, 29 ottobre) picture: 'assets/closeups/micro-parcheggio.png', names: { player: 'Andrea', cpu: 'Chiaru' }, win: [{ say: 'Hai vinto te. Ma la mia aveva le ruote piene di gesso, sia chiaro.', who: 'chiaru', pose: 'shrug' }, { set: 'micro_vinto' }], lose: [{ say: 'Visto? La blu non perde mai. Mai.', who: 'chiaru', pose: 'cheer' }], quit: [{ say: 'Ti ritiri? Allora la vinco a tavolino.', who: 'chiaru', pose: 'laugh' }], draw: [{ say: 'Pari. Si rifà, ma la pista la ridisegno io.', who: 'chiaru', pose: 'shrug' }], }, fessura: { type: 'torch', picture: 'assets/closeups/palio-2007.jpg', crop: [82, 36, 220, 331], // la tela nella foto fornita da Andrea, senza il muro intorno targets: [ { at: [185, 195], radius: 52, hint: 'Esamina la pietra a sinistra…', lines: [] }, { at: [348, 225], radius: 55, hint: 'Qualcosa riflette la luce, più in basso…', lines: [ { say: 'Laggiù, appoggiato al muro, c\'è un angolo di tela dipinta: una strada bianca, e un omino con la maglia rossa e le braccia alzate.' }, { say: 'È il palio! Il quadro dei ragazzi delle medie!' }, ] }, { at: [462, 138], radius: 45, hint: 'Un rumore nel buio, a destra…', lines: [ { say: 'E quelli... sono due occhi gialli!' }, ] }, ], complete: [ { say: 'Spariti nel buio.' }, { set: 'palio_trovato' }, { say: 'Il Regolo. E ha il nostro palio.' }, { say: 'Però non l\'ha portato via: l\'ha messo proprio lassù, in Fortezza. Dove domani portiamo i mattoni col passamano.' }, { say: 'Il palio è già pronto ad aspettarci. Torno giù a dirlo a tutti: la festa si fa!' }, { end: true }, ], }, libro: { closed: 'assets/closeups/libro-chiuso.png', open: 'assets/closeups/libro-aperto.png', title: 'La storia infinita', last: 'FINE', comment: [{ say: 'Mi ricordavo un finale diverso.' }], // Chiuso dopo aver visto l'ultima pagina (idea di Andrea, 25 ottobre). closing: [{ say: 'Il «Nulla» sta viaggiando troppo velocemente nell\'animo umano, devo darmi una mossa!' }], // Dove scrivere, in pixel delle due immagini: l'etichetta della copertina, le due pagine, la piega. label: [78, 48, 104, 54], pages: { left: [56, 26, 96, 194], right: [163, 12, 101, 204], spine: 157 }, paper: '#fbe6bc', }, }, // I video «Come si gioca» (video/SCALETTA-CARTE.md): il pulsante «Guarda il video» nell'aiuto di ogni gioco. tutorials: { briscola: { title: 'Come si gioca: la briscola', src: 'assets/video/briscola.mp4', poster: 'assets/video/briscola.jpg' }, tressette: { title: 'Come si gioca: il tressette ai 21', src: 'assets/video/tressette.mp4', poster: 'assets/video/tressette.jpg' }, scopa: { title: 'Come si gioca: la scopa', src: 'assets/video/scopa.mp4', poster: 'assets/video/scopa.jpg' }, bocce: { title: 'Come si gioca: le bocce', src: 'assets/video/bocce.mp4', poster: 'assets/video/bocce.jpg' }, biliardo: { title: 'Come si gioca: il biliardo', src: 'assets/video/biliardo.mp4', poster: 'assets/video/biliardo.jpg' }, }, characters: { // [DA ANDREA: chi è] Figura inventata, nessuna persona reale. giocatore_carte: { name: 'Il giocatore di carte', color: '#edc476', sprite: 'assets/characters/giocatore-carte.json' }, andrea: { name: 'Andrea', color: '#ffffff', sprite: 'assets/characters/andrea.json' }, // Andrea col pallone, per «Fai due tiri» (foglio di Codex dal suo sprite): non parla, lo disegna basket-render. andrea_basket: { name: 'Andrea', sprite: 'assets/characters/andrea-basket.json' }, andrea_pesca: { name: 'Andrea', sprite: 'assets/characters/andrea-pesca.json' }, // Quattro ragazzi inventati (sprite di Codex, idea di Andrea del 27 ottobre): nessuna persona reale. pescatori: { name: 'I ragazzi delle canne', color: '#b8f08a', sprite: 'assets/characters/pescatori.json' }, vecchietta: { name: 'Vecchietta', color: '#ffd27a', sprite: 'assets/characters/vecchietta.json' }, vecchietto: { name: 'Vecchietto', color: '#9fe3ff', sprite: 'assets/characters/vecchietto.json' }, castello: { name: 'Lo spirito del Trebbio', color: '#c8f0ff' }, leone: { name: 'Il leone', color: '#f0a070' }, san_pietro: { name: 'San Pietro', color: '#e8e0c8' }, tosca: { name: 'La Tosca', color: '#ffb0d0' }, arcu: { name: 'L\'Arcu', color: '#7fb2ff', sprite: 'assets/characters/arcu.json' }, // L'Ing. Tozzi, il campione del biliardo al Circolo 4 Maggio (sprite da fare con Codex: prompts/personaggi/ing-tozzi-sheet.txt). // Trappizzio Berti (Fabrizio Berti, consenso dato ad Andrea il 28 ottobre), il re dei rinquarti (sprite di Codex dalla sua foto). bertovo: { name: 'Trappizzio Berti', color: '#9fd0ff', sprite: 'assets/characters/bertovo.json' }, ing_tozzi: { name: 'L\'Ing. Tozzi', color: '#d9c48a', sprite: 'assets/characters/ing-tozzi.json' }, tozzino: { name: 'Il Tozzino', color: '#c8f5b0', sprite: 'assets/characters/tozzino.json' }, // Il Chiaru (Matteo Chiarusi, consenso dato ad Andrea il 29 ottobre), alla pista col gesso di Cardetole: sprite di // Codex dalla foto di Andrea. // Al Barrettino del 1997 (Andrea, 29 ottobre; senza foto, dalla descrizione di Andrea): Vannino, alto, magro, coi // capelli corti e la fossetta nel mento; Pierino Parigi (consenso del figlio Marco, 29 ottobre), brizzolato, con gli // occhiali e la barba rada. Sprite di Codex. vannino: { name: 'Vannino', color: '#ffe6a8', sprite: 'assets/characters/vannino.json' }, pierino_parigi: { name: 'Pierino', color: '#c8e0ff', sprite: 'assets/characters/pierino_parigi.json' }, // Lo zio Mario di Andrea (sprite di Codex dalla foto di Andrea, 29 ottobre), alla Ghiacciomobile nel muro. zio_mario: { name: 'Lo zio Mario', color: '#cfe3ff', sprite: 'assets/characters/zio_mario.json' }, chiaru: { name: 'Il Chiaru', color: '#ffd6a0', sprite: 'assets/characters/chiaru.json' }, barondeduke: { name: 'Il BaronDeDuke', color: '#e0c090', sprite: 'assets/characters/barondeduke.json' }, mariano: { name: 'Mariano', color: '#ffb0a3', sprite: 'assets/characters/mariano.json' }, // Non parla: è una cosa, disegnata come un personaggio per stare davanti o dietro ad Andrea. fra_peppino: { name: 'Fra Peppino', color: '#e8c89a', sprite: 'assets/characters/fra-peppino.json' }, macchina: { name: 'La macchina del tempo', color: '#c8d8e8', sprite: 'assets/characters/macchina-tempo.json' }, betino: { name: 'il Betino', sprite: 'assets/characters/betino.json' }, ghiacciomobile: { name: 'la Ghiacciomobile', sprite: 'assets/characters/ghiacciomobile.json' }, }, items: { squama: { name: 'squama', icon: { src: 'assets/icons/squama.svg', fill: '#4fae5e' }, actions: { look: [{ say: 'Una squama verde, grande come una moneta da due euro. Puzza di cantina.' }], use: [{ say: 'Potrei usarla come plettro. Ma prima scopro di chi è.' }], }, }, // Lo scherzo del libro (idea di Andrea, 2026-10-23): «La storia infinita» ha una pagina sola. libro: { name: 'libro', icon: { src: 'assets/icons/libro.svg', fill: '#c46a3a' }, droppable: true, // non serve alla storia: si può buttare actions: { drop: [{ say: 'Una pagina sola, e pure con la fine. Lo lascio qui per il prossimo lettore.' }, { drop: 'libro' }], look: [{ say: '«La storia infinita». Bello spesso: questo mi tiene compagnia fino a settembre.' }], // Il primo piano (story.closeups.libro): la battuta la scopre chi guarda, nessuno la racconta. open: [{ closeup: 'libro' }], use: [{ closeup: 'libro' }], }, }, // La catena del ghiacciolo (idea di Andrea, 2026-10-24): la Tosca dà ghiacciolo e cedrata; il ghiacciolo inzuppato // nella cedrata lascia lo stecco; stecco più gomma (dall'oratorio) ripesca la chiavetta dalla griglia del // ponticino; la chiavetta apre la casetta dell'area feste, dove c'è la torcia. ghiacciolo: { name: 'ghiacciolo', icon: { src: 'assets/icons/ghiacciolo.svg' }, actions: { look: [{ say: 'Un ghiacciolo al limone. Si scioglie a guardarlo.' }], use: [{ say: 'Da solo? No: il ghiacciolo al limone va inzuppato nella cedrata. È la regola.' }], }, with: { cedrata: [ { drop: 'ghiacciolo' }, { drop: 'cedrata' }, { say: 'Ghiacciolo dentro la cedrata... si scioglie, frizza, è verde e giallo insieme.' }, { say: 'Esagerato. Buonissimo. La merenda dei campioni.' }, { give: 'stecco' }, { set: 'stecco_fatto' }, { say: 'Mi resta lo stecco. Non si sa mai.' }, ], }, }, cedrata: { name: 'cedrata', icon: { src: 'assets/icons/cedrata.svg' }, actions: { look: [{ say: 'Una bottiglietta di cedrata, gelata.' }], use: [{ say: 'Bevuta liscia è sprecata. Ci vuole qualcosa da inzupparci dentro.' }], }, }, fanta: { name: 'Fanta', icon: { src: 'assets/icons/fanta.svg' }, droppable: true, alone: true, // si beve subito, senza chiedere «con cosa» actions: { look: [{ say: 'Una Fanta ghiacciata, arancione come il tramonto.' }], use: [{ drop: 'fanta' }, { say: 'Glu glu... arancione fino alle orecchie.' }], }, }, coca: { name: 'Coca', icon: { src: 'assets/icons/coca.svg' }, droppable: true, alone: true, // si beve subito, senza chiedere «con cosa» actions: { look: [{ say: 'Una Coca col vetro appannato dal freddo.' }], use: [{ drop: 'coca' }, { say: 'Fa le bollicine nel naso. Come sempre.' }], }, }, spuma: { name: 'spuma bionda', icon: { src: 'assets/icons/spuma.svg' }, droppable: true, alone: true, // si beve subito, senza chiedere «con cosa» actions: { look: [{ say: 'Una spuma bionda. Ormai la chiedono solo i nonni. E io.' }], use: [{ drop: 'spuma' }, { say: 'Buona come ai tempi della festa.' }], }, }, stecco: { name: 'stecco', icon: { src: 'assets/icons/stecco.svg' }, actions: { look: [{ say: 'Lo stecco del ghiacciolo. Appiccica ancora un po\' di limone.' }], use: [{ say: 'Da solo non arriva a niente. Ci vorrebbe qualcosa che attacca.' }], }, with: { gomma: [{ drop: 'stecco' }, { drop: 'gomma' }, { say: 'Mastico la gomma e la attacco in cima allo stecco.' }, { say: 'Ecco una canna da pesca per chiavi. Brevetto San Piero.' }, { give: 'stecco_gomma' }], }, }, gomma: { name: 'gomma', icon: { src: 'assets/icons/gomma.svg' }, actions: { look: [{ say: 'Una gomma da masticare alla fragola, ancora incartata.' }], use: [{ say: 'Masticarla così, per niente? Meglio tenerla per quando serve qualcosa che appiccica.' }], }, }, stecco_gomma: { name: 'stecco e gomma', icon: { src: 'assets/icons/stecco_gomma.svg' }, actions: { look: [{ say: 'Lo stecco con la gomma in cima. Attacca qualunque cosa. Anche le dita.' }], }, }, chiavetta: { name: 'chiavetta', icon: { src: 'assets/icons/chiavetta.svg' }, actions: { look: [{ say: 'Una chiavetta piccola, ripescata dalla griglia. Di un lucchetto, o di una casetta.' }], }, }, torcia: { name: 'torcia', icon: { src: 'assets/icons/torcia.svg' }, actions: { look: [{ say: 'Una torcia rossa, funziona. Per il buio della Fortezza, prima o poi, servirà.' }], use: [{ say: 'Clic. Accesa. Clic. Spenta. Le pile le tengo per quando serve davvero.' }], }, }, // La chiave dell'oratorio: la dà San Pietro a chi risolve il suo indovinello. Indispensabile: non si butta. chiave_oratorio: { name: 'chiave dell\'oratorio', icon: { src: 'assets/icons/chiave.svg', fill: '#d9b54a' }, actions: { look: [{ say: 'Una chiave grossa e antica. Quella dell\'oratorio, parola di San Pietro.' }], }, }, }, scenes: { piazza: { name: 'Piazza Colonna', map: [32, 45], background: 'assets/scenes/piazza-colonna.png', effects: [{ type: 'clouds', area: [160, 0, 440, 80], count: 3, big: true }, { type: 'windows', phase: 'sera', rects: [[16, 37, 8, 18], [48, 42, 8, 18], [50, 110, 8, 16], [97, 77, 8, 12], [122, 80, 8, 12], [170, 90, 8, 12], [204, 103, 8, 12], [239, 111, 8, 12], [268, 117, 7, 14], [287, 125, 6, 14], [97, 130, 9, 14], [127, 133, 9, 14], [170, 142, 9, 14], [204, 150, 8, 12], [239, 155, 8, 12], [268, 160, 7, 14], [287, 163, 6, 14], [386, 163, 14, 16], [424, 160, 14, 16], [472, 157, 14, 16], [524, 155, 14, 16], [390, 212, 14, 16], [526, 208, 14, 16]] }, { type: 'birds', phase: ['pomeriggio', 'tramonto'], area: [150, 20, 460, 80] }], walk: [[84, 244], [330, 238], [345, 230], [362, 238], [462, 246], [466, 276], [544, 276], [548, 248], [588, 250], [600, 290], [640, 300], [640, 360], [0, 360], [0, 330], [84, 318]], depth: [[236, 0.5], [360, 1.35]], entry: [345, 240], speakers: { vecchietta: [24, 250], vecchietto: [56, 244] }, // I vecchietti seduti sulla panchina: fotogrammi in assets/characters (pose e battute in game.personPose). people: [ { who: 'vecchietta', at: [24, 317], size: 0.92, talk: ['talk', 'explain'], blink: 'blink', every: 3.7 }, { who: 'vecchietto', at: [56, 304], size: 0.88, talk: ['talk', 'explain'], blink: 'doze', every: 5.3, offset: 2 }, ], hotspots: [ { id: 'colonna', name: 'colonna', box: [492, 134, 36, 140], at: [505, 290], face: 'up', actions: { look: [{ say: 'La colonna, il centro del paese. Da qui passa tutto: le notizie, il Palio, i pettegolezzi.' }, { if: 'rione:piazza', then: [{ say: 'E qui è casa del mio rione: noi rossi.' }] }, { say: 'Ai piedi c\'è una strana scia luccicante che va a sinistra, verso la salita di Villa Adami.' }], take: [{ say: 'Se mi porto via la colonna, la piazza come la chiamano?' }], use: [{ say: 'Arrampicarmi? Il palio lassù non c\'è comunque.' }], }, }, { // La Torre dello Scoronconcolo (aneddoto trovato da Andrea su Wikipedia, «Michele del Tavolaccino»): // il sanpierino che aiutò Lorenzino de' Medici ad ammazzare il duca Alessandro, nel 1537. id: 'torre_scoronconcolo', name: 'Torre dello Scoronconcolo', box: [474, 58, 62, 70], at: [505, 290], face: 'up', actions: { look: [ { say: 'La Torre dello Scoronconcolo. Era una vecchia torre di guardia, già in disuso nel Cinquecento.' }, { say: 'Ci si rifugiò Michele del Tavolaccino, detto Scoronconcolo, sanpierino: nel 1537 aiutò Lorenzino de\' Medici ad ammazzare il duca Alessandro.' }, { say: 'Nel 1539 finì sulle galere dell\'ordine gerosolimitano, in guerra contro i Turchi. Altro che Palio.' }, ], open: [{ say: 'Da quassù non ci arrivo. E poi, di nascondigli in quella torre, ce n\'è già stato uno di troppo.' }], take: [{ say: 'Una torre in tasca? Nemmeno lo Scoronconcolo ci è riuscito.' }], }, }, { id: 'bar', name: 'La Colonna', box: [428, 208, 30, 40], at: [443, 252], face: 'up', actions: { look: [{ say: 'Il bar della piazza. Chi c\'era dietro il bancone nel 2007? Questo lo sa solo Andrea.' }], open: [{ say: 'Ci torno quando ho qualche soldo in tasca.' }], talk: [{ say: 'Parlare con una porta. Neanche al Palio si arriva a tanto.' }], }, }, { id: 'verso_gelateria', name: 'strada verso il Fiocco di Neve', box: [570, 150, 28, 100], at: [580, 256], face: 'right', default: 'walk', actions: { walk: [{ say: 'Di là c\'è la gelateria del Fiocco di Neve.' }, { say: 'Con questo caldo, un bel gelatino ci starebbe proprio bene...' }, { say: 'No. Prima ritrovo il palio, poi mi premio.' }], look: [{ say: 'La strada che porta al Fiocco di Neve. Già sento il profumo di cialda.' }], }, }, { // La bottega di Pierin di Frilli sotto la tenda rossa: da ragazzi ci si comprava lo stucco verde per la // cerbottana (Andrea, 29 ottobre). [DA ANDREA: com'era dentro, e cosa diceva Pierino] id: 'pierin', name: 'la bottega di Pierin di Frilli', box: [598, 176, 42, 92], at: [612, 306], face: 'right', default: 'talk', actions: { look: [{ say: 'La bottega di Pierin di Frilli, sotto la tenda rossa. Da ragazzi ci si comprava lo stucco per la cerbottana.' }], talk: [{ dialogue: 'pierin' }], open: [{ dialogue: 'pierin' }], use: [{ dialogue: 'pierin' }], }, }, { // Il Circolo 4 Maggio: il portone ad arco del palazzo arancione porta nella sala dei biliardi. id: 'circolo', name: 'Circolo 4 Maggio', box: [188, 190, 28, 58], at: [202, 252], face: 'up', actions: { look: [{ say: 'Il Circolo 4 Maggio. Dentro, dietro il bar, la sala dei biliardi: tre tavoli e il silenzio delle grandi occasioni.' }], // «Apri» sul portone fa entrare come il clic: nessuno apre una porta per restare fuori. open: [{ walk: [202, 252] }, { go: 'circolo_4_maggio', at: [590, 202], face: 'left' }], talk: [{ say: 'Da fuori non si parla con nessuno: al circolo si entra.' }], }, exit: { scene: 'circolo_4_maggio', at: [590, 202], face: 'left' }, }, { id: 'manifesto', name: 'manifesto del Palio', box: [256, 196, 18, 24], at: [265, 250], face: 'up', art: [{ rect: [256, 196, 18, 24], fill: '#f4efe4' }, { rect: [258, 199, 14, 5], fill: '#b7342e' }, { rect: [258, 207, 12, 2], fill: '#3b3b44' }, { rect: [258, 211, 10, 2], fill: '#3b3b44' }, { rect: [258, 215, 12, 2], fill: '#2f5fb3' }], actions: { look: [ { say: 'Il programma del Palio della Fortezza, con la foto del palio: la strada bianca che sale alla Fortezza, i ragazzi in fila, e uno con la maglia rossa che alza le braccia.' }, { say: 'Qualcuno ci ha scritto sopra col pennarello: «IL REGOLO SI È RIPRESO IL PALIO».' }, ], take: [{ say: 'Il programma lo so a memoria. Il problema è il palio.' }], }, }, { 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: [ { 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 in Fortezza solo per 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.' }], }, }, { id: 'panchina', name: 'sotto la panchina', box: [0, 304, 64, 18], at: [100, 330], face: 'left', actions: { look: [{ if: 'luccichio', then: [{ say: 'Qualcosa luccica, proprio sotto i piedi dei vecchietti.' }], else: [{ say: 'Polvere, un tappo e una cicca. La solita archeologia di piazza.' }] }], }, }, { id: 'cosa_luccicante', name: 'cosa luccicante', box: [26, 308, 14, 10], at: [100, 330], face: 'left', when: ['luccichio', '!has:squama', '!squama_presa'], art: [{ rect: [29, 311, 8, 5], fill: '#7fe08a' }, { rect: [31, 311, 3, 2], fill: '#e6ffe0' }], actions: { look: [{ say: 'Una cosa verde e luccicante. Non è un tappo.' }], take: [{ give: 'squama' }, { set: 'squama_presa' }, { say: 'Una squama! E bella grossa.' }], }, }, // Si compare in basso: la foto di Via Cipriani è presa dall'altro verso (Andrea, 28 ottobre, va bene così). { id: 'verso_campeggio', name: 'Via Cipriani, verso il cinema e il campeggio', box: [330, 190, 34, 48], at: [345, 234], exit: { scene: 'via_cipriani', at: [300, 345], face: 'up' }, }, { id: 'verso_piazzetta', name: 'Via dell\'Antica Posta, verso Piazzetta Cambray Digny', box: [0, 196, 146, 54], at: [92, 250], exit: { scene: 'via_antica_posta', at: [320, 345], face: 'up' }, }, { id: 'verso_calimara', name: 'Via Calimara, verso la farmacia', box: [180, 334, 380, 26], at: [360, 354], exit: { scene: 'via_calimara', at: [365, 212], face: 'down' }, }, ], enter: [{ if: '!intro', then: [{ set: 'intro' }, { say: 'Il palio è sparito! Il quadro che hanno dipinto i ragazzi delle medie.' }, { say: 'Lo tenevano a scuola: stamani la Gianna ha trovato il posto vuoto.' }, { say: 'La festa è domani: se nessuno lo ritrova, salta tutto. Tocca a me.' }] }], }, fortezza: { name: 'Sotto le mura della Fortezza', map: [36, 6], background: 'assets/scenes/fortezza-esterno.png', music: 'assets/audio/fortezza.mp3', // «Sotto i nove bastioni» (Andrea con Suno, 25 ottobre) // Nella fessura, con la torcia: il pulviscolo nel fascio di luce, e gli occhi gialli che sbattono. effects: [ { type: 'dust', when: 'luce_fessura', area: [494, 278, 14, 22], count: 7 }, { type: 'blink', when: 'occhi_regolo', rects: [[498, 282, 2, 2], [504, 282, 2, 2]], fill: '#ffe14a', every: 700, closed: 120 }, ], walk: [[110, 284], [300, 280], [330, 272], [348, 274], [400, 292], [442, 294], [640, 352], [640, 360], [0, 360], [0, 315], [60, 310], [105, 295]], depth: [[272, 0.55], [360, 1.15]], entry: [175, 352], speakers: { pescatori: [150, 225] }, // Quattro ragazzi sull'erba si fanno le canne da pesca col bambù. people: [{ who: 'pescatori', at: [150, 322], idle: 'work', talk: ['work', 'talk'], blink: 'laugh', every: 6, size: 1.25 }], hotspots: [ { id: 'pescatori', name: 'ragazzi con le canne', box: [92, 236, 120, 86], at: [240, 334], face: 'left', default: 'talk', actions: { look: [{ say: 'Quattro ragazzi che affilano canne di bambù col coltellino e ci legano le lenze.' }], talk: [{ if: '!pescatori_parlato', then: [ { set: 'pescatori_parlato' }, { say: 'Oh, che fate?' }, { say: 'Si preparano le canne: si va a pescare al lago dell\'Anatre, dietro Cardetole!', who: 'pescatori', pose: 'talk' }, { say: 'Guarda questa: la lenza la regge anche una carpa di dieci chili.', who: 'pescatori', pose: 'proud' }, { say: '(Vedi, mia mamma aveva ragione: in Fortezza si viene a farsi le canne.)' }, ] }, { dialogue: 'pescatori' }], }, }, { id: 'mura', name: 'bastione', box: [420, 0, 220, 290], actions: { look: [{ say: 'Nove bastioni, li volle Cosimo I. Per tenere fuori i nemici, dicono. Secondo me per tenere dentro il Regolo.' }], use: [{ say: 'Arrampicarmi sul bastione? Ho visto film che finivano meglio.' }], }, }, { id: 'porta', name: 'porta della Fortezza', box: [325, 226, 26, 46], at: [338, 278], face: 'up', // La catena: la Fortezza è chiusa da anni. art: [{ rect: [327, 249, 22, 2], fill: '#9a9aa4' }, { rect: [330, 252, 16, 2], fill: '#7c7c86' }, { rect: [335, 251, 6, 6], fill: '#c9a23a' }], actions: { look: [{ say: 'La porta della Fortezza. Chiusa con una catena grossa come il mio braccio.' }], open: [{ say: 'Niente da fare. La Fortezza è chiusa da anni, e il lucchetto lo sa.' }], talk: [{ say: 'Regolo? Ci sei?' }, { say: '...' }, { say: 'Ho sentito qualcosa. O era la mia pancia.' }], }, }, { id: 'impronte', name: 'strane impronte', box: [246, 304, 84, 18], at: [288, 330], art: [{ poly: [[248, 318], [266, 310], [288, 314], [308, 306], [328, 304], [329, 307], [309, 310], [288, 318], [266, 315], [249, 321]], fill: 'rgba(70, 52, 30, 0.75)' }, { rect: [289, 314, 3, 2], fill: '#9dffa8' }], actions: { look: [{ say: 'Niente scarpe, niente zampe. Qualcosa è strisciato nell\'erba fino alla porta.' }, { say: 'Qualcosa di grosso.' }], 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.' }], else: [ { say: 'Le metto vicine...' }, { say: 'Stesso luccichio, stessa puzza di cantina. Il Regolo è passato di qui!' }, { set: 'indizio_regolo' }, { say: 'Ma la porta è incatenata da anni. E allora da dove è entrato?' }, { say: 'Le impronte non finiscono alla porta: piegano verso il bastione.' }, { say: 'E lì, alla base del muro, c\'è una fessura che prima non avevo notato.' }, ], }], }, }, // Fine del primo capitolo: la fessura si nota solo quando le impronte la indicano (squama sulle impronte); con la torcia si vede il palio, e due occhi gialli. // Il dettaglio che lo fa riconoscere è quello del quadro vero (foto di Andrea, assets/raw/palio-2007-foto.jpg), // già visto sul manifesto in piazza: l'omino con la maglia rossa e le braccia alzate. { id: 'fessura', name: 'fessura nel bastione', box: [486, 266, 30, 38], at: [462, 310], face: 'right', when: 'indizio_regolo', art: [ { poly: [[490, 301], [493, 288], [497, 276], [502, 270], [507, 278], [510, 290], [512, 302]], fill: '#120c08' }, { when: 'luce_fessura', poly: [[494, 299], [497, 286], [502, 278], [506, 286], [508, 299]], fill: 'rgba(255, 228, 140, 0.6)' }, { when: 'luce_fessura', rect: [497, 291, 9, 8], fill: '#d9d2b0' }, { when: 'luce_fessura', rect: [499, 293, 1, 3], fill: '#c0392b' }, { when: 'luce_fessura', rect: [503, 294, 1, 3], fill: '#9bb04a' }, ], actions: { 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: '!has:torcia', then: [{ say: 'Ci vuole una torcia. Quelli della festa ne tengono una nella casetta dell\'area feste, con le prolunghe.' }] }], use: [{ say: 'Infilarci la mano al buio? Neanche per sogno.' }], take: [{ say: 'Una fessura non si prende. Al massimo ci si guarda dentro.' }], open: [{ say: 'È già aperta. Il problema è che è piccola.' }], talk: [{ say: 'C\'è nessuno?' }, { say: '...' }, { say: 'Solo l\'eco. Spero.' }], }, with: { 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...' }, { closeup: 'fessura' }, ], }, }, { id: 'sentiero_trebbio', name: 'sentiero per il Trebbio', box: [0, 200, 90, 160], at: [20, 330], exit: { scene: 'sentiero_fortezza', at: [325, 190], face: 'down' }, }, { id: 'verso_villa_adami', name: 'giù per il Poggio, verso Villa Adami', box: [180, 326, 340, 34], at: [330, 352], exit: { scene: 'salita_fortezza', at: [150, 318], face: 'up' }, }, ], }, // Livello 0: la Pieve vista dalla salita, con la salita per Villa Adami alle spalle. pieve: { name: 'La Pieve', map: [56, 45], background: 'assets/scenes/pieve-dalla-salita.png', // Quando parla, dalla statua esce lo spirito di San Pietro con le sue chiavi (disegnato da Codex, idea di Andrea). speakers: { san_pietro: [300, 100] }, apparitions: [{ who: 'san_pietro', src: 'assets/characters/spirito-san-pietro.png', at: [300, 232], height: 100 }], // La rampa in primo piano e, dietro il muretto, il sagrato (ci si arriva da sinistra). walk: [[0, 270], [80, 266], [86, 252], [100, 222], [270, 215], [300, 224], [480, 234], [560, 242], [600, 252], [610, 268], [276, 240], [276, 270], [292, 278], [640, 352], [640, 360], [0, 360]], depth: [[215, 0.42], [360, 1.15]], entry: [30, 320], hotspots: [ { id: 'chiesa', name: 'Pieve di San Pietro', box: [108, 78, 166, 132], at: [200, 290], face: 'up', actions: { look: [{ if: 'rione:pieve', then: [{ say: 'La Pieve di San Pietro. Il mio rione: noi bianchi.' }], else: [{ say: 'La Pieve di San Pietro. Il rione Pieve, quelli in bianco.' }] }], open: [{ say: 'Il prete è a benedire le carrette del Palio. Torno dopo.' }], }, }, { id: 'portone', name: 'portone della Pieve', box: [196, 160, 46, 56], at: [218, 222], face: 'up', exit: { scene: 'pieve_interno', at: [320, 352], face: 'up' }, }, { id: 'campanile', name: 'campanile', box: [272, 8, 60, 140], at: [300, 300], face: 'up', actions: { look: [{ say: 'Il campanile della Pieve. Da lassù si vedrebbe tutto il paese. Anche un serpente con le ali.' }], }, }, { // 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: [{ if: 'chiave_data', then: [{ say: 'La chiave te l\'ho già data, figliolo. Di solito ne do di più importanti.', who: 'san_pietro' }], else: [ { say: 'Buongiorno, San Pietro.' }, { say: 'Buongiorno a te, Andrea.', who: 'san_pietro' }, { say: 'La statua parla?!' }, { say: 'Tengo le chiavi, è il mio mestiere. Quella dell\'oratorio te la do se rispondi a un indovinello sulla mia Pieve.', who: 'san_pietro' }, { say: 'Il fonte battesimale, là dentro. Per secoli hanno detto che l\'aveva fatto Luca della Robbia. Chi lo fece davvero?', who: 'san_pietro' }, { dialogue: 'indovinello' }, ], }], }, }, { // La porta resta chiusa finché non si usa la chiave; poi è aperta per sempre e la chiave sparisce. id: 'porta_oratorio', name: 'porta dell\'oratorio', box: [452, 180, 42, 56], at: [473, 240], face: 'up', default: 'open', when: '!oratorio_aperto', actions: { look: [{ say: 'La porta che dà sull\'oratorio. Chiusa a chiave.' }], open: [{ if: 'has:chiave_oratorio', then: [{ drop: 'chiave_oratorio' }, { set: 'oratorio_aperto' }, { say: 'Clic! Aperta. La chiave la lascio nella serratura: così resta aperta.' }, { go: 'oratorio', at: [320, 345], face: 'right' }], else: [{ say: 'Chiusa a chiave. E le chiavi, da queste parti, chi le tiene?' }], }], walk: [{ say: 'Chiusa a chiave. E le chiavi, da queste parti, chi le tiene?' }], }, with: { chiave_oratorio: [{ drop: 'chiave_oratorio' }, { set: 'oratorio_aperto' }, { say: 'Clic! Aperta. La chiave la lascio nella serratura: così resta aperta.' }, { go: 'oratorio', at: [320, 345], face: 'right' }], }, }, { id: 'oratorio', name: 'porta dell\'oratorio', box: [452, 180, 42, 56], at: [473, 240], face: 'up', when: 'oratorio_aperto', exit: { scene: 'oratorio', at: [320, 345], face: 'right' }, }, { id: 'verso_cardetole', name: 'strada per Cardetole', box: [0, 204, 82, 54], at: [95, 250], face: 'left', exit: { scene: 'carza', at: [300, 350], face: 'up' }, actions: { look: [{ if: 'rione:cardetole', then: [{ say: 'La strada che scende a Cardetole: casa mia, e il mio rione, i verdi.' }], else: [{ say: 'La strada che scende a Cardetole, il rione dei verdi.' }] }], }, }, { id: 'verso_provinciale', name: 'Via Provinciale, verso il River', box: [0, 270, 46, 70], at: [14, 312], face: 'left', exit: { scene: 'provinciale_pignone', at: [268, 216], face: 'down' }, }, { id: 'verso_forno', name: 'a destra, verso il forno', box: [570, 176, 70, 76], at: [588, 250], exit: { scene: 'forno', at: [628, 300], face: 'left' }, }, { id: 'salita_villa_adami', name: 'su per Via della Compagnia, verso Villa Adami', box: [440, 330, 200, 30], at: [600, 350], exit: { scene: 'via_compagnia', at: [94, 316], face: 'right' }, }, ], }, // Dentro la Pieve (dalla foto di Mariano Mirannalti): la navata, l'altare, il crocifisso e San Pietro. pieve_interno: { name: 'Dentro la Pieve', map: [56, 39], background: 'assets/scenes/pieve-interno.png', music: 'assets/audio/pieve.mp3', // l'organo soave della chiesa (tools/organo.py, 25 ottobre) effects: [{ type: 'beam', phase: ['pomeriggio', 'tramonto'], poly: [[22, 122], [32, 118], [250, 360], [150, 360]] }, { type: 'dust', phase: ['pomeriggio', 'tramonto'], area: [60, 200, 90, 110], count: 9 }], // Penombra, e le sei candele dell'altare accese (Andrea, 24 ottobre). indoor: true, shade: 'rgba(14, 8, 24, 0.62)', // Le candele si accendono dal tramonto: di pomeriggio la chiesa è in penombra e basta. lights: [[284, 157], [294, 159], [304, 155], [336, 155], [346, 159], [356, 157]].map(at => ({ at, phase: ['tramonto', 'sera'] })), walk: [[262, 360], [290, 256], [350, 256], [380, 360]], depth: [[256, 0.7], [360, 1.7]], entry: [320, 352], hotspots: [ // Il fonte battesimale robbiano (1518), in primo piano a sinistra come nella Pieve vera (disegnato da Codex dalle // foto): la risposta all'indovinello di San Pietro (curiosità trovata da Andrea). { id: 'fonte', name: 'fonte battesimale', box: [0, 228, 150, 132], at: [276, 335], face: 'left', actions: { look: [ { say: 'Il fonte battesimale, in terracotta invetriata bianca e azzurra. Ci hanno battezzato mezzo paese, me compreso.' }, { say: 'C\'è un cartellino: «Bottega di Giovanni della Robbia, 1518. Per secoli attribuito a Luca della Robbia».' }, { set: 'fonte_visto' }, ], use: [{ say: 'Sono già battezzato. Una volta basta e avanza.' }], take: [{ say: 'Pesa come un\'utilitaria. E poi chi lo spiega al parroco?' }], }, }, // Il libro dimenticato su una panca (idea di Andrea, 24 ottobre): in copertina la risposta, dentro la domanda. { id: 'libro_panca', name: 'libro su una panca', box: [516, 314, 44, 26], at: [372, 335], face: 'right', art: [ // Il libro sulla seduta della prima panca a destra: copertina rossa, il 42 dorato, il taglio delle pagine. { rect: [525, 323, 26, 7], fill: '#c0392b' }, { rect: [525, 323, 26, 1], fill: '#e0604a' }, { rect: [526, 330, 24, 2], fill: '#f3e7c4' }, { rect: [534, 325, 3, 3], fill: '#ffd76a' }, { rect: [538, 325, 3, 3], fill: '#ffd76a' }, // Da vicino: la copertina col 42, poi l'unica pagina con la domanda. { when: 'copertina_42', top: true, rect: [255, 60, 130, 170], fill: '#7a1f1f' }, { when: 'copertina_42', top: true, rect: [263, 68, 114, 154], fill: '#8e2a26' }, { when: 'copertina_42', top: true, text: '42', at: [320, 146], size: 48, fill: '#e8c25a' }, { when: 'pagina_domanda', top: true, rect: [240, 70, 160, 150], fill: '#f1e6c4' }, { when: 'pagina_domanda', top: true, rect: [240, 70, 160, 4], fill: '#d8c79a' }, { when: 'pagina_domanda', top: true, text: 'Qual era', at: [320, 132], size: 12, fill: '#2a1f30' }, { when: 'pagina_domanda', top: true, text: 'la domanda?', at: [320, 156], size: 12, fill: '#2a1f30' }, ], actions: { look: [ { set: 'copertina_42' }, { say: 'Un libro dimenticato su una panca. In copertina, niente titolo: solo un numero. 42.' }, { unset: 'copertina_42' }, ], open: [ { say: 'Vediamo cosa c\'è dentro...' }, { set: 'pagina_domanda' }, { say: 'Una pagina sola: «Qual era la domanda?».' }, { unset: 'pagina_domanda' }, { say: 'Ecco. La risposta ce l\'hanno tutti: è la domanda che non si ricorda nessuno.' }, ], take: [{ say: 'Lo lascio dov\'è. Qualcun altro potrebbe cercare la stessa domanda.' }], }, }, { id: 'altare', name: 'altare', box: [270, 186, 100, 64], at: [320, 262], face: 'up', actions: { look: [{ say: 'L\'altare, coi candelieri dorati e i fiori freschi. Qualcuno li cambia ogni mattina, prima di tutti.' }], take: [{ say: 'Un candeliere? Mi sa che San Pietro le chiavi del Paradiso me le toglie per sempre.' }], }, }, { id: 'crocifisso', name: 'crocifisso', box: [296, 100, 48, 70], at: [320, 262], face: 'up', actions: { look: [{ say: 'Il grande crocifisso di legno, davanti alla statua di San Pietro.' }, { say: 'Qui si abbassa la voce senza che nessuno lo chieda.' }], }, }, { id: 'san_pietro_statua', name: 'statua di San Pietro', box: [298, 64, 44, 40], at: [320, 262], face: 'up', actions: { look: [{ say: 'San Pietro, il patrono. Quello fuori sul sagrato parla. Questo, per fortuna, no.' }], }, }, { id: 'panche', name: 'panche', box: [150, 240, 110, 120], at: [280, 320], face: 'left', actions: { look: [{ say: 'Le panche dove ci siamo seduti tutti, dal battesimo in poi. Le più scomode del Mugello.' }], use: [{ say: 'Un minuto seduto... no, se mi siedo qui mi addormento come alla messa delle undici.' }], }, }, { id: 'uscita', name: 'esci sul sagrato', box: [240, 334, 160, 26], at: [320, 356], exit: { scene: 'pieve', at: [218, 222], face: 'down' }, }, ], }, // Il cortile dell'oratorio, dietro la porta della canonica: palco, tettoia, tavolate della festa. oratorio: { name: 'Oratorio della Pieve', map: [82, 45], background: 'assets/scenes/oratorio.png', speakers: { giocatore_carte: [595, 185] }, people: [{ who: 'giocatore_carte', at: [595, 239], facing: -1, idle: 'sit', talk: ['sit', 'talk'], blink: 'shuffle', every: 5, size: 1.05 }], walk: [[0, 236], [300, 226], [480, 222], [500, 232], [640, 254], [640, 360], [0, 360]], depth: [[222, 0.5], [360, 1.15]], entry: [320, 345], hotspots: [ { id: 'palco', name: 'palco', box: [52, 149, 134, 58], at: [120, 238], face: 'up', actions: { look: [{ say: 'Il palco dell\'oratorio. D\'estate ci fanno le recite, la tombola e i concerti.' }, { say: 'Adesso è vuoto. Peccato, avevo un numero di giocoleria pronto.' }], use: [{ say: 'Salire sul palco senza pubblico? Mi vergogno pure da solo.' }], }, }, { id: 'tettoia', name: 'tettoia', box: [333, 119, 153, 72], at: [400, 236], face: 'up', actions: { look: [{ say: 'La tettoia, dove si mettono le cucine quando c\'è la festa.' }], }, }, { id: 'tavolate', name: 'tavolate', box: [500, 128, 140, 113], at: [560, 268], face: 'right', actions: { look: [{ say: 'Le tavolate della festa. Fra qualche giorno qui si mangia per tre ore di fila.' }], use: [{ say: 'Mi siedo e aspetto che arrivi la pastasciutta? Ci vorrebbe una settimana.' }], }, }, { // [DA ANDREA: chi è] Seduto alle tavolate, col mazzo davanti. id: 'giocatore_carte', name: 'Il giocatore di carte', box: [580, 195, 39, 45], at: [580, 266], face: 'right', default: 'talk', art: [{ rect: [578, 211, 9, 5], fill: '#f3dfb1' }, { rect: [579, 211, 7, 3], fill: '#34584e' }], actions: { look: [{ say: 'Ha già mescolato. Mi sa che aspettava proprio un pollo di passaggio.' }], talk: [{ dialogue: 'giocatore_carte' }], }, }, { id: 'gomma_terra', name: 'gomma da masticare', box: [134, 230, 16, 10], at: [140, 244], face: 'up', when: ['!has:gomma', '!gomma_presa'], art: [{ rect: [137, 233, 10, 4], fill: '#f27ab0' }, { rect: [138, 233, 3, 1], fill: '#ffd0e8' }], actions: { look: [{ say: 'Una gomma da masticare ancora incartata, persa davanti al palco. Qualcuno ha perso l\'appetito.' }], take: [{ give: 'gomma' }, { set: 'gomma_presa' }, { say: 'Una gomma alla fragola. Me la tengo.' }], }, }, { // Dopo le tavolate: dove si sovrappongono, vince l'ultimo della lista. // Sulla prima tavolata, a sinistra del palo: lontano dal giocatore di carte (Andrea: «troppo vicini»). id: 'libro_dimenticato', name: 'libro dimenticato', box: [512, 198, 22, 14], at: [522, 262], face: 'up', when: ['!has:libro', '!libro_preso'], art: [{ rect: [517, 203, 11, 5], fill: '#c46a3a' }, { rect: [517, 207, 11, 1], fill: '#f4efe4' }, { rect: [521, 204, 3, 3], fill: '#e8c25a' }], actions: { look: [{ say: 'Un libro dimenticato sulle tavolate. Sulla copertina c\'è scritto «La storia infinita».' }], take: [{ give: 'libro' }, { set: 'libro_preso' }, { say: 'Ricordo di aver visto il film da piccolo... era stupendo!' }, { closeup: 'libro' }], }, }, { id: 'cancello', name: 'cancello', box: [477, 166, 23, 52], at: [488, 236], face: 'up', actions: { // Il vecchio campo «Alberto Bettini» (Andrea, 25 ottobre; www.polisportivasanpieroasieve.it). look: [ { say: 'Il cancello di dietro. Se chiudo gli occhi vedo ancora l\'A. Bettini, il campo da calcio di quando eravamo piccoli: lassù ci sono ancora i riflettori.' }, { say: 'Il primo vero campo del paese: inaugurato nel 1964 e intitolato ad Alberto Bettini, un giovane consigliere della società scomparso troppo presto.' }, ], open: [{ say: 'Chiuso. Si apre solo quando c\'è la festa.' }], }, }, { id: 'verso_pieve', name: 'torna alla Pieve', box: [0, 334, 640, 26], at: [320, 354], exit: { scene: 'pieve', at: [473, 240], face: 'down' }, }, ], }, // Via de' Medici: dalla Piazzetta Cambray Digny sale verso Villa Adami (la Piazzetta è alle spalle, in fondo si va su). via_de_medici: { name: 'Via de\' Medici', map: [22, 32], background: 'assets/scenes/via-de-medici.png', walk: [[0, 360], [0, 336], [160, 290], [262, 240], [288, 212], [312, 208], [340, 222], [470, 300], [545, 360]], depth: [[208, 0.32], [360, 1.25]], entry: [300, 348], hotspots: [ { id: 'portone', name: 'portone ad arco', box: [478, 30, 70, 270], at: [430, 290], face: 'right', actions: { look: [{ say: 'Un portone antico con l\'inferriata. Chissà cosa c\'è dietro: una cantina? Un tesoro? La cantina di un tesoro?' }], open: [{ say: 'Chiuso. Come tutte le porte interessanti di questo paese.' }], }, }, { id: 'su_villa_adami', name: 'su, verso Via della Compagnia', box: [272, 186, 60, 34], at: [300, 216], exit: { scene: 'via_compagnia', at: [300, 350], face: 'up' }, }, { id: 'giu_piazzetta', name: 'giù verso Piazzetta Cambray Digny', box: [0, 334, 545, 26], at: [300, 354], exit: { scene: 'piazzetta', at: [20, 320], face: 'right' }, }, ], }, // Via Pietro Cipriani, fra Via Massorondinaio (alle spalle, verso il campeggio) e la Piazza (in fondo, col Circolo 4 Maggio arancione). // A destra il Cinema Taiuti, aperto come nel 2007, col cartellone del Rattattù; lassù il campo da basket del Circolo. via_cipriani: { name: 'Via Pietro Cipriani', map: [22, 64], background: 'assets/scenes/via-cipriani.png', walk: [[40, 360], [40, 320], [60, 280], [100, 272], [150, 276], [300, 300], [360, 318], [640, 345], [640, 360]], depth: [[272, 0.45], [360, 1.15]], entry: [300, 345], hotspots: [ { id: 'rattattu', name: 'cartellone del Rattattù', box: [460, 152, 58, 110], at: [480, 336], face: 'up', actions: { look: [{ say: 'Il Rattattù: la gara di canto del paese. Si sale sul palco e ci si sfida tutti, chi stona e chi no.' }, { say: 'Quest\'anno mi ci iscrivo. Forse.' }], }, }, { id: 'cinema', name: 'Cinema Taiuti', box: [420, 40, 220, 220], at: [520, 340], face: 'up', actions: { look: [{ say: 'Il Cinema Taiuti. Una sala, un proiettore e le poltroncine che cigolano a tempo.' }], open: [{ say: 'A quest\'ora è chiuso. Apre la sera, per il film o per il Rattattù.' }], }, }, { id: 'campo_basket', name: 'campo da basket del Circolo', box: [250, 110, 170, 80], at: [340, 316], face: 'up', default: 'use', actions: { look: [{ say: 'Il campo da basket del Circolo, lassù oltre la rete. Due tiri ce li faccio sempre volentieri.' }], use: [{ dialogue: 'basket' }], walk: [{ dialogue: 'basket' }], }, }, { id: 'alla_piazza', name: 'in fondo, la Piazza', box: [80, 230, 120, 50], at: [120, 280], exit: { scene: 'piazza', at: [345, 240], face: 'down' }, }, { id: 'al_campeggio', name: 'indietro, verso il campeggio', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'via_massorondinaio', at: [30, 300], face: 'right' }, }, ], }, // Via Massorondinaio: a sinistra si riprende Via Cipriani (verso la Piazza), a diritto si va al campeggio. via_massorondinaio: { name: 'Via Massorondinaio', map: [17, 74], background: 'assets/scenes/via-massorondinaio.png', walk: [[0, 360], [0, 266], [200, 258], [400, 240], [520, 226], [566, 226], [552, 250], [545, 290], [600, 360]], depth: [[226, 0.4], [360, 1.2]], entry: [300, 330], hotspots: [ { id: 'a_via_cipriani', name: 'a sinistra, Via Cipriani', box: [0, 262, 40, 80], at: [16, 300], face: 'left', exit: { scene: 'via_cipriani', at: [300, 345], face: 'up' }, }, { id: 'al_campeggio', name: 'a diritto, verso il campeggio', box: [496, 196, 74, 34], at: [535, 232], exit: { scene: 'campeggio', at: [200, 345], face: 'right' }, }, ], }, // Le Mozzète (Via Donatello): in fondo il campo secondario, in basso a destra si scende al ponticino. mozzete: { name: 'Le Mozzète', map: [72, 92], background: 'assets/scenes/mozzete.png', walk: [[0, 360], [0, 280], [40, 232], [120, 212], [300, 200], [335, 198], [350, 210], [420, 270], [640, 330], [640, 360]], depth: [[198, 0.3], [360, 1.2]], entry: [320, 330], hotspots: [ { id: 'fermata', name: 'fermata della corriera', box: [450, 170, 110, 90], at: [470, 300], face: 'right', actions: { look: [{ say: 'La fermata della corriera. Da qui si va dappertutto. Se passa.' }], }, }, { id: 'al_secondario', name: 'in fondo, il campo secondario', box: [300, 176, 60, 30], at: [330, 206], exit: { scene: 'polisportiva', at: [628, 290], face: 'left' }, }, { id: 'al_ponticino', name: 'giù a destra, il ponticino delle Mozzète', box: [580, 316, 60, 44], at: [612, 345], face: 'right', exit: { scene: 'ponticino_mozzete', at: [300, 196], face: 'down' }, }, ], }, // Il ponticino delle Mozzète: lassù la congiunzione con le Mozzète, indietro si va verso Coldaia. ponticino_mozzete: { name: 'Il ponticino delle Mozzète', map: [78, 88], background: 'assets/scenes/ponticino-mozzete.png', walk: [[0, 360], [0, 300], [200, 270], [280, 190], [320, 186], [380, 230], [520, 290], [640, 310], [640, 360]], depth: [[186, 0.3], [360, 1.2]], entry: [300, 340], hotspots: [ { id: 'parapetto', name: 'parapetto del ponticino', box: [460, 230, 120, 50], at: [470, 300], face: 'right', actions: { look: [{ say: 'Il ponticino delle Mozzète. Sotto ci passa un fossino che d\'estate fa più zanzare che acqua.' }], }, }, { id: 'alle_mozzete', name: 'lassù, le Mozzète', box: [270, 166, 60, 30], at: [300, 196], exit: { scene: 'mozzete', at: [612, 345], face: 'left' }, }, { id: 'a_coldaia', name: 'indietro, verso Coldaia', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'coldaia', at: [450, 345], face: 'up' }, }, ], }, // Coldaia: dietro il ponticino delle Mozzète; avanti la falegnameria e poi Gabbiano. coldaia: { name: 'Coldaia', map: [84, 89], background: 'assets/scenes/coldaia.png', walk: [[230, 360], [300, 250], [318, 200], [290, 166], [330, 162], [460, 205], [640, 268], [640, 360]], depth: [[162, 0.3], [360, 1.2]], entry: [450, 345], hotspots: [ { id: 'campo_arato', name: 'campo arato', box: [0, 160, 220, 130], at: [280, 330], face: 'left', actions: { look: [{ say: 'Terra appena arata. Profuma di campagna e di trattore.' }], }, }, { id: 'alla_falegnameria', name: 'avanti, verso la falegnameria', box: [280, 140, 60, 34], at: [305, 168], exit: { scene: 'falegnameria_coldaia', at: [300, 340], face: 'up' }, }, { id: 'al_ponticino', name: 'indietro, il ponticino delle Mozzète', box: [220, 334, 420, 26], at: [450, 354], exit: { scene: 'ponticino_mozzete', at: [300, 340], face: 'up' }, }, ], }, // La falegnameria di Coldaia, col fienile delle rotoballe; a diritto si va a Gabbiano. falegnameria_coldaia: { name: 'La falegnameria', map: [90, 91], background: 'assets/scenes/falegnameria-coldaia.png', walk: [[0, 360], [0, 300], [100, 260], [160, 220], [185, 220], [230, 250], [640, 250], [640, 360]], depth: [[220, 0.35], [360, 1.2]], entry: [300, 340], hotspots: [ { id: 'falegnameria', name: 'falegnameria', box: [160, 176, 120, 44], at: [220, 260], face: 'up', actions: { look: [{ say: 'La falegnameria. L\'odore di segatura arriva fin qui.' }], open: [{ say: 'Bussare a una falegnameria? Mi danno una scopa e mi fanno spazzare.' }], }, }, { id: 'fienile', name: 'fienile', box: [290, 90, 320, 140], at: [440, 280], face: 'up', actions: { look: [{ say: 'Un fienile pieno di rotoballe. Fossi una mucca, sarebbe il paradiso.' }], }, }, { id: 'a_gabbiano', name: 'a diritto, verso Gabbiano', box: [140, 190, 64, 32], at: [172, 222], exit: { scene: 'gabbiano', at: [300, 340], face: 'up' }, }, { id: 'a_coldaia', name: 'indietro, verso Coldaia', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'coldaia', at: [305, 170], face: 'down' }, }, ], }, // La strada di Gabbiano, in mezzo alla campagna del Mugello. gabbiano: { name: 'Gabbiano', map: [95, 93], background: 'assets/scenes/gabbiano.png', walk: [[0, 360], [0, 300], [200, 260], [400, 215], [430, 186], [445, 186], [520, 240], [640, 280], [640, 360]], depth: [[186, 0.3], [360, 1.2]], entry: [300, 340], hotspots: [ { id: 'valle', name: 'campagna', box: [150, 140, 260, 60], at: [330, 300], face: 'up', actions: { look: [{ say: 'La campagna verso Gabbiano. Da quassù si vede mezzo Mugello.' }, { say: 'Il palio, però, no.' }], }, }, { id: 'casolare', name: 'casolare', box: [0, 30, 140, 220], at: [150, 320], face: 'left', actions: { look: [{ say: 'Un casolare vecchio, coi mattoni che spuntano dall\'intonaco. Come le mie ginocchia.' }], }, }, { id: 'alla_falegnameria', name: 'indietro, verso la falegnameria', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'falegnameria_coldaia', at: [172, 224], face: 'down' }, }, ], }, // L'ingresso del campeggio: dalla Piazza per Via Cipriani e Via Massorondinaio; poco dopo, a destra, si sale al Bosco ai Frati. campeggio: { name: 'Ingresso del campeggio', map: [12, 84], background: 'assets/scenes/campeggio.png', effects: [{ type: 'cloth', pole: 'right', rects: [[28, 108, 26, 44], [84, 92, 36, 72], [229, 104, 34, 30], [548, 92, 58, 64]] }], walk: [[150, 360], [165, 262], [420, 266], [640, 286], [640, 360]], depth: [[262, 0.6], [360, 1.15]], entry: [200, 345], hotspots: [ { id: 'campeggio', name: 'campeggio', box: [190, 120, 220, 140], at: [300, 280], face: 'up', actions: { look: [{ say: 'L\'ingresso del campeggio. A giudicare dalle bandiere, ci dorme mezzo mondo.' }], walk: [{ say: 'Dentro non conosco nessuno. E il Regolo, che io sappia, non va in campeggio.' }], }, }, { id: 'bandiere', name: 'bandierine', box: [115, 52, 340, 30], at: [300, 280], face: 'up', actions: { look: [{ say: 'Una fila di bandierine di tutti i paesi. Il Palio della Fortezza però è roba nostra.' }], take: [{ say: 'Senza scala ci arrivo solo con la fantasia.' }], }, }, { id: 'bosco_ai_frati', name: 'salita verso il Bosco ai Frati', box: [570, 250, 70, 110], at: [628, 320], exit: { scene: 'bosco_ai_frati', at: [320, 345], face: 'right' }, }, { id: 'verso_piazza', name: 'Via Massorondinaio, verso la Piazza', box: [150, 290, 100, 70], at: [175, 345], exit: { scene: 'via_massorondinaio', at: [530, 236], face: 'down' }, }, ], }, // Il convento del Bosco ai Frati, nel bosco sopra il campeggio. bosco_ai_frati: { name: 'Bosco ai Frati', map: [12, 96], background: 'assets/scenes/bosco-ai-frati.png', effects: [{ type: 'leafshadow', phase: ['pomeriggio', 'tramonto'], area: [0, 296, 230, 50], count: 16 }], walk: [[0, 304], [100, 298], [480, 292], [640, 300], [640, 360], [0, 360]], depth: [[292, 0.78], [360, 1.1]], entry: [320, 345], // Fra Peppino da Gricignano (sprite di Codex dalla foto di Andrea, 25 ottobre): stava sul sagrato della Pieve, // ma è un francescano, e il Bosco ai Frati è il loro convento (Andrea, 26 ottobre). speakers: { fra_peppino: [470, 238] }, people: [{ who: 'fra_peppino', at: [470, 304], facing: -1, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.8 }], hotspots: [ { // Battute provvisorie: le vere le scrive Andrea. id: 'fra_peppino', name: 'Fra Peppino', box: [458, 248, 26, 58], at: [430, 306], face: 'right', default: 'talk', actions: { look: [{ say: 'Fra Peppino da Gricignano, col saio e i sandali. Qui al Bosco ai Frati è a casa sua: è un convento di francescani.' }], talk: [{ say: 'Buongiorno, Fra Peppino!' }, { say: 'Pace e bene, figliolo. Cerchi qualcosa?', who: 'fra_peppino', pose: 'bless' }, { say: 'Il palio. È sparito.' }, { say: 'Le cose sparite, prima o poi, tornano. Come le pecorelle.', who: 'fra_peppino', pose: 'explain' }], }, }, { id: 'convento', name: 'chiesa del convento', box: [96, 60, 386, 236], at: [320, 310], face: 'up', actions: { look: [{ say: 'Il convento del Bosco ai Frati, in mezzo al bosco. Qui si viene a cercare il fresco e il silenzio.' }], open: [{ say: 'Meglio non disturbare: i frati sono gli unici in tutto il Mugello che non parlano del Palio.' }], }, }, { id: 'porta_convento', name: 'porta del convento', box: [526, 218, 32, 78], at: [540, 304], face: 'up', actions: { look: [{ say: 'Una porta ad arco col cancelletto di ferro.' }], open: [{ say: 'Chiusa. A quest\'ora i frati pregano. O pranzano. O tutte e due.' }], }, }, { id: 'tiglio', name: 'tiglio', box: [0, 0, 92, 296], at: [100, 320], face: 'left', actions: { look: [{ say: 'Un tiglio enorme. Profuma che sembra una pasticceria.' }], use: [{ say: 'Arrampicarmi? Ho i pantaloni buoni.' }], }, }, { id: 'giu_campeggio', name: 'scendi verso il campeggio', box: [0, 334, 640, 26], at: [320, 354], exit: { scene: 'campeggio', at: [620, 320], face: 'left' }, }, ], }, // Il Comune e l'asilo infantile Antonio Frilli: dalla strada di fronte alla farmacia o da Via Calimara // (a sinistra in Piazza, dove una volta si veniva qui, c'è la Piazzetta Cambray Digny: Andrea, 27 ottobre). comune: { name: 'Il Comune', map: [11, 45], background: 'assets/scenes/comune-asilo.png', walk: [[0, 360], [0, 262], [200, 256], [330, 250], [420, 268], [440, 305], [640, 330], [640, 360]], depth: [[250, 0.5], [360, 1.15]], entry: [320, 350], hotspots: [ { id: 'torre', name: 'torre dell\'orologio', box: [200, 26, 40, 70], at: [250, 262], face: 'up', actions: { look: [{ say: 'La torre dell\'orologio del Comune. Va sempre giusto, tranne quando serve.' }], }, }, { id: 'palazzo', name: 'Comune', box: [170, 96, 120, 150], at: [250, 262], face: 'up', actions: { look: [{ say: 'Il Comune di San Piero. Qui si fanno i timbri, i permessi e, a quanto pare, anche il Palio.' }], open: [{ say: 'Senza un modulo in carta bollata non mi fanno entrare neanche a chiedere l\'ora.' }], }, }, { id: 'asilo', name: 'asilo Antonio Frilli', box: [300, 140, 150, 90], at: [380, 268], face: 'up', actions: { look: [{ say: 'L\'asilo infantile Antonio Frilli. Ci sono passato anch\'io, coi grembiulini a quadretti.' }], open: [{ say: 'All\'asilo? Ho già dato, grazie.' }], }, }, { id: 'alla_scalinata', name: 'a sinistra, la scalinata della Piazzetta', box: [0, 120, 150, 212], at: [40, 300], face: 'left', exit: { scene: 'scalinata', at: [300, 350], face: 'up' }, }, { id: 'al_giardino', name: 'verso il giardino di Via Calimara', box: [596, 290, 44, 70], at: [600, 340], exit: { scene: 'via_calimara', at: [160, 290], face: 'right' }, }, { id: 'alla_farmacia', name: 'giù, verso la farmacia', box: [60, 334, 520, 26], at: [320, 354], exit: { scene: 'via_provinciale', at: [622, 244], face: 'left' }, }, ], }, // Il campone delle poste: a destra della stazione; in fondo, le poste. giardini_poste: { name: 'Il campone delle poste', map: [11, 58], background: 'assets/scenes/giardini-poste.png', walk: [[0, 360], [0, 232], [640, 232], [640, 360]], depth: [[232, 0.55], [360, 1.15]], entry: [580, 340], hotspots: [ { id: 'giochi', name: 'giochi', box: [196, 120, 330, 100], at: [360, 250], face: 'up', actions: { look: [{ say: 'Lo scivolo e le altalene. Ho ventisette anni, ufficialmente. Ufficiosamente, un giro ci starebbe.' }], use: [{ say: 'Un giro sull\'altalena! ... No, c\'è troppa gente che mi conosce.' }], }, }, { id: 'panchina', name: 'panchina rossa', box: [56, 164, 56, 22], at: [90, 240], face: 'up', actions: { look: [{ say: 'La panchina rossa. Qui si scambiavano le figurine: celo, celo, manca.' }], }, }, { id: 'poste', name: 'le poste', box: [0, 100, 110, 50], at: [60, 240], face: 'up', actions: { look: [{ say: 'Laggiù le poste. Mia nonna ci andava a ritirare la pensione e tornava con tutte le notizie del paese.' }], }, }, { id: 'alla_stazione', name: 'verso la stazione', box: [100, 110, 80, 130], at: [137, 240], exit: { scene: 'stazione', at: [628, 320], face: 'left' }, }, { // Dietro le poste passa la passeggiata sulla Carza (Andrea, 29 ottobre). id: 'alla_carza', name: 'dietro, la passeggiata sulla Carza', box: [560, 150, 80, 80], at: [600, 250], exit: { scene: 'passeggiata_poste', at: [280, 240], face: 'right' }, }, { id: 'alla_strada', name: 'indietro, sulla strada della stazione', box: [100, 336, 440, 24], at: [300, 352], exit: { scene: 'viale_stazione', at: [620, 280], face: 'left' }, }, ], }, // Via Calimara: dalla Piazza scende alla farmacia, in Via Provinciale. via_calimara: { name: 'Via Calimara', map: [36, 58], background: 'assets/scenes/via-calimara.png', walk: [[0, 360], [0, 318], [330, 206], [400, 206], [560, 300], [600, 360]], depth: [[206, 0.3], [360, 1.15]], entry: [300, 350], hotspots: [ { id: 'giardino', name: 'dal giardino, verso il Comune', box: [0, 110, 330, 120], at: [160, 290], face: 'left', exit: { scene: 'comune', at: [600, 340], face: 'left' }, actions: { look: [{ say: 'Il giardino coi cedri e le panchine. All\'ombra, d\'estate, ci si fa la siesta a turno.' }], }, }, { id: 'vetrina', name: 'vetrina', box: [570, 110, 70, 150], at: [540, 300], face: 'right', actions: { look: [{ say: 'Una vetrina vuota. Ci vedo solo il mio riflesso, e ha l\'aria di uno che cerca un palio.' }], }, }, { id: 'alla_piazza', name: 'in fondo, la Piazza', box: [330, 176, 90, 40], at: [365, 210], exit: { scene: 'piazza', at: [360, 350], face: 'up' }, }, { id: 'alla_provinciale', name: 'verso la farmacia', box: [0, 330, 640, 30], at: [300, 354], exit: { scene: 'via_provinciale', at: [600, 330], face: 'left' }, }, ], }, // Via Provinciale alla rotonda: il River e la farmacia. Andando avanti, la Pieve. via_provinciale: { name: 'Via Provinciale', map: [40, 71], background: 'assets/scenes/via-provinciale.png', walk: [[0, 360], [0, 312], [300, 302], [440, 262], [470, 238], [640, 238], [640, 360]], depth: [[238, 0.45], [360, 1.15]], entry: [140, 340], hotspots: [ { id: 'river', name: 'il River', box: [60, 128, 190, 110], at: [160, 320], face: 'up', actions: { look: [{ say: 'Il River, il bar della rotonda. Fuori gli ombrelloni, dentro i flipper e le figurine.' }], open: [{ say: 'Un ghiacciolo ci starebbe. Ma prima il palio, poi i ghiaccioli.' }], }, }, { id: 'farmacia', name: 'farmacia', box: [356, 176, 50, 60], at: [380, 290], face: 'up', actions: { look: [{ say: 'La farmacia, con la croce verde. Mia nonna ci veniva per le pasticche e per le chiacchiere. Più per le chiacchiere.' }], open: [{ say: 'Non mi fa male niente. Per ora.' }], }, }, { id: 'al_ponte', name: 'a sinistra, verso il campo sportivo', box: [0, 216, 60, 100], at: [12, 318], exit: { scene: 'ponte_sieve', at: [300, 350], face: 'up' }, }, { id: 'alla_pieve', name: 'dietro la farmacia, verso la Pieve', box: [420, 170, 118, 70], at: [480, 242], exit: { scene: 'provinciale_pignone', at: [300, 345], face: 'up' }, }, { id: 'area_feste', name: 'qui sotto, verso l\'area feste', box: [0, 318, 300, 42], at: [120, 352], exit: { scene: 'area_feste', at: [44, 350], face: 'up' }, }, { id: 'al_comune', name: 'verso il Comune', box: [540, 40, 100, 198], at: [622, 244], exit: { scene: 'comune', at: [320, 350], face: 'up' }, }, { id: 'alla_calimara', name: 'Via Calimara, verso la Piazza', box: [520, 260, 120, 100], at: [600, 330], exit: { scene: 'via_calimara', at: [300, 350], face: 'up' }, }, ], }, // Via Provinciale fra la rotonda (alle spalle) e la Pieve (in fondo); a destra sale Via del Pignone. provinciale_pignone: { name: 'Via Provinciale', map: [50, 64], background: 'assets/scenes/provinciale-pignone.png', walk: [[30, 360], [30, 330], [130, 270], [245, 212], [290, 212], [340, 228], [540, 232], [540, 258], [640, 300], [640, 360]], depth: [[212, 0.32], [360, 1.2]], entry: [300, 345], hotspots: [ { id: 'cartelli', name: 'cartelli', box: [570, 162, 52, 28], at: [560, 290], face: 'right', actions: { look: [{ say: 'Cartelli per la Pieve, per la stazione, per Firenze. Per il palio, nessuno.' }], }, }, { // L'edicola, col chiosco chiuso: qui Andrea comprava le cassette per il Commodore 64 (Andrea, 28 ottobre). id: 'edicola', name: 'edicola', box: [20, 160, 92, 100], at: [120, 278], face: 'left', actions: { look: [ { say: 'L\'edicola. Qui compravo le cassette per il Commodore 64: trenta giochi a mille lire, diceva la copertina.' }, { say: 'Si infilava la cassetta, si scriveva LOAD, si premeva play... e si aspettava dieci minuti col registratore che cigolava.' }, { say: 'Poi, quando andava bene, partiva il gioco. Quando andava male: LOAD ERROR. E si riavvolgeva tutto. Bei tempi.' }, ], open: [{ say: 'Chiusa. E comunque le cassette non le fanno più. Neanche i Commodore.' }], use: [{ say: 'Vorrei un Topolino e trenta giochi a mille lire. ...Niente, parlo con una serranda.' }], }, }, { // La banca all'angolo di Via del Pignone: il bancomat non funziona quasi mai (Andrea, 28 ottobre). id: 'banca', name: 'banca', box: [368, 166, 80, 50], at: [400, 236], face: 'up', actions: { look: [ { say: 'La banca. Il bancomat funziona solo il mercoledì delle settimane pari, negli anni bisestili, quando Venere si allinea a Plutone.' }, { say: 'Oggi? Not today.' }, ], open: [{ say: 'Chiusa. Come il bancomat, del resto.' }], use: [{ say: 'Carta dentro, carta fuori. «Servizio momentaneamente non disponibile». Momentaneamente dal 1998.' }], }, }, { id: 'alla_pieve', name: 'in fondo, verso la Pieve', box: [236, 150, 64, 64], at: [268, 216], exit: { scene: 'pieve', at: [24, 312], face: 'right' }, }, { id: 'via_pignone', name: 'a destra, Via del Pignone', box: [440, 196, 100, 56], at: [530, 245], face: 'right', exit: { scene: 'via_pignone', at: [300, 345], face: 'up' }, }, { id: 'alla_rotonda', name: 'indietro, verso la rotonda della farmacia', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'via_provinciale', at: [480, 246], face: 'down' }, }, ], }, // Via del Pignone dal basso: sul muro a destra il murale di Cistola (Davide Poggi, consenso del 27 ottobre). // In cima si arriva in Piazzetta Cambray Digny. via_pignone: { name: 'Via del Pignone', map: [46, 54], background: 'assets/scenes/via-del-pignone.png', walk: [[0, 360], [0, 300], [150, 258], [290, 226], [335, 206], [352, 206], [350, 240], [345, 282], [640, 290], [640, 360]], depth: [[206, 0.3], [360, 1.2]], entry: [300, 345], hotspots: [ { id: 'murale', name: 'murale di Cistola', box: [430, 36, 170, 240], at: [470, 300], face: 'right', actions: { look: [{ say: 'Cistola. Il talento di via del Pignone.' }, { say: 'Col dieci, come i grandi. Se c\'è un muro che se lo merita, è questo.' }], talk: [{ say: 'Ciao Cistola! ...Almeno dipinto stai fermo ad ascoltarmi.' }], }, }, { id: 'su_piazzetta', name: 'su, verso Piazzetta Cambray Digny', box: [316, 176, 56, 40], at: [343, 210], exit: { scene: 'piazzetta', at: [610, 345], face: 'left' }, }, { id: 'giu_provinciale', name: 'giù, in Via Provinciale', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'provinciale_pignone', at: [530, 245], face: 'left' }, }, ], }, // Piazzetta Cambray Digny, in cima a Via del Pignone, sotto Villa Schifanoia: a sinistra Via de' Medici, a diritto // Via dell'Antica Posta che scende in Piazza, a destra del palazzo la scalinata che scende al Comune (Andrea, 28 ottobre). piazzetta: { name: 'Piazzetta Cambray Digny', map: [40, 38], background: 'assets/scenes/piazzetta-cambray-digny.png', walk: [[0, 360], [0, 288], [300, 284], [470, 276], [495, 268], [540, 268], [600, 300], [640, 330], [640, 360]], depth: [[268, 0.55], [360, 1.15]], entry: [320, 330], hotspots: [ { id: 'villa_schifanoia', name: 'Villa Schifanoia', box: [60, 110, 230, 170], at: [180, 300], face: 'up', actions: { look: [{ say: 'Il muro di Villa Schifanoia, la villa dei Medici, mezzo coperto dall\'edera.' }, { say: 'Lassù una volta c\'era una torre, per tenere d\'occhio chi passava sulla strada per Bologna. Ne ha viste più di me.' }, { say: 'E la piazzetta si chiama come i Cambray-Digny, gli ultimi signori della villa.' }], }, }, { id: 'casetta_bianca', name: 'casetta bianca', box: [296, 196, 160, 90], at: [380, 292], face: 'up', actions: { look: [{ say: 'Una casetta piccina, appoggiata al muro della villa come un gatto al sole.' }], open: [{ say: 'Chiusa. E poi non è casa mia.' }], }, }, { id: 'alla_piazza', name: 'a diritto, Via dell\'Antica Posta verso la Piazza', box: [470, 226, 70, 48], at: [510, 274], exit: { scene: 'antica_posta_alta', at: [235, 230], face: 'down' }, }, { id: 'via_de_medici', name: 'a sinistra, Via de\' Medici', box: [0, 100, 60, 260], at: [20, 320], face: 'left', exit: { scene: 'via_de_medici', at: [300, 348], face: 'up' }, }, { id: 'giu_scalinata', name: 'a destra, giù per la scalinata verso il Comune', box: [541, 226, 40, 60], at: [560, 285], exit: { scene: 'scalinata', at: [560, 325], face: 'down' }, }, { id: 'giu_pignone', name: 'giù per Via del Pignone', box: [570, 300, 70, 60], at: [610, 345], exit: { scene: 'via_pignone', at: [343, 212], face: 'down' }, }, ], }, // Via dell'Antica Posta (foto di Andrea, 28 ottobre): dalla Piazza, a sinistra, sale verso Piazzetta Cambray Digny. // La Piazza è alle spalle; a sinistra, coi tre scalini, la Piazzetta del Comune; in fondo si sale. via_antica_posta: { name: 'Via dell\'Antica Posta', map: [35, 41], background: 'assets/scenes/via-antica-posta.png', walk: [[0, 360], [0, 300], [120, 290], [220, 252], [300, 240], [372, 226], [396, 226], [470, 252], [630, 300], [640, 360]], depth: [[226, 0.35], [360, 1.15]], entry: [320, 345], hotspots: [ { id: 'colonnine', name: 'colonnine con le catene', box: [225, 225, 95, 68], at: [290, 300], face: 'left', actions: { look: [{ say: 'Le colonnine con le catene: le macchine di qua non passano.' }, { say: 'Io sì. Scavalcare le catene è uno sport che pratico da quando avevo sei anni.' }], }, }, { id: 'tenda', name: 'tenda a righe', box: [508, 182, 30, 28], at: [500, 268], face: 'right', actions: { look: [{ say: 'Una tenda a righe bianche e rosse. Fa tanto spiaggia: peccato che il mare sia di là dall\'Appennino.' }], }, }, { id: 'muro_edera', name: 'muro con l\'edera', box: [546, 140, 94, 150], at: [570, 296], face: 'right', actions: { look: [{ say: 'Il muro di sasso con l\'edera e la ringhiera in cima. Lassù c\'è il verde della villa.' }], }, }, { id: 'alla_piazzetta_comune', name: 'a sinistra, il Comune', box: [0, 90, 200, 204], at: [130, 292], face: 'left', exit: { scene: 'piazzetta_comune', at: [260, 350], face: 'up' }, }, { id: 'su_antica_posta', name: 'su, in fondo a Via dell\'Antica Posta', box: [350, 200, 70, 30], at: [384, 230], exit: { scene: 'antica_posta_alta', at: [240, 350], face: 'up' }, }, { id: 'alla_piazza', name: 'indietro, la Piazza', box: [0, 334, 640, 26], at: [320, 354], exit: { scene: 'piazza', at: [92, 250], face: 'right' }, }, ], enter: [{ if: '!antica_posta_vista', then: [{ set: 'antica_posta_vista' }, { say: 'Via dell\'Antica Posta. Chissà se la posta antica arrivava prima di quella moderna.' }] }], }, // La Piazzetta del Comune, dietro il municipio: la torre dell'orologio, le sculture sui pilastrini di mattoni. piazzetta_comune: { name: 'Piazzetta del Comune', map: [32, 39], background: 'assets/scenes/piazzetta-comune.png', walk: [[0, 360], [0, 318], [130, 292], [470, 288], [540, 300], [520, 360]], depth: [[288, 0.55], [360, 1.15]], entry: [260, 350], hotspots: [ { id: 'torre', name: 'torre dell\'orologio', box: [264, 16, 58, 104], at: [290, 294], face: 'up', actions: { look: [{ say: 'La torre dell\'orologio, vista dal retro. Anche da qui segna un\'ora tutta sua.' }], }, }, { id: 'porta_comune', name: 'porta del Comune', box: [286, 238, 26, 50], at: [298, 292], face: 'up', actions: { look: [{ say: 'La porta del Comune. Dal retro, ma sempre Comune.' }], open: [{ say: 'Chiusa. Anche dalla porta di dietro, senza un modulo non si entra.' }], }, }, { id: 'scultura', name: 'scultura alta', box: [264, 248, 22, 68], at: [250, 320], face: 'right', actions: { look: [{ say: 'Una scultura moderna, lunga e appuntita. Secondo me è un\'antenna per parlare coi marziani.' }], }, }, { id: 'sasso', name: 'scultura a sasso', box: [92, 276, 42, 54], at: [150, 330], face: 'left', actions: { look: [{ say: 'Questa sembra un sasso. Ma sta su un piedistallo, quindi è arte.' }], take: [{ say: 'Pesa più di me. E poi l\'arte non si porta via in tasca.' }], }, }, { id: 'vaso_fiori', name: 'vaso di fiori', box: [520, 264, 106, 82], at: [505, 330], face: 'right', actions: { look: [{ say: 'Un vasone di fiori. Qualcuno se ne prende cura, al Comune.' }], }, }, { id: 'alla_via', name: 'indietro, Via dell\'Antica Posta', box: [0, 336, 520, 24], at: [260, 354], exit: { scene: 'via_antica_posta', at: [140, 294], face: 'right' }, }, ], }, // In cima a Via dell'Antica Posta, prima della Piazzetta: il muro della villa con l'edera, il ponticello sopra la // strada, il giardinetto con le panchine e due gatti al sole. A sinistra, sotto il ponticello, la scalinata (Andrea). antica_posta_alta: { name: 'In cima a Via dell\'Antica Posta', map: [38, 39], background: 'assets/scenes/via-antica-posta-alta.png', walk: [[0, 360], [0, 322], [190, 226], [283, 222], [470, 360]], depth: [[222, 0.35], [360, 1.15]], entry: [240, 350], hotspots: [ { id: 'gatti', name: 'gatti', box: [490, 236, 100, 28], at: [420, 330], face: 'right', actions: { look: [{ say: 'Due gatti che dormono sull\'erba. Il Palio, per loro, può anche aspettare.' }], talk: [{ say: 'Micio, micio... Niente. Per meno di una scatoletta non aprono neanche un occhio.' }], take: [{ say: 'Svegliare un gatto che dorme al sole? Non sono così coraggioso.' }], }, }, { id: 'panchine', name: 'panchine', box: [358, 212, 130, 44], at: [375, 300], face: 'right', actions: { look: [{ say: 'Due panchine all\'ombra del muro. Un posto per chi non ha un palio da ritrovare.' }], use: [{ say: 'Mi siederei volentieri, ma il Palio non si ritrova da solo.' }], }, }, { id: 'ponticello', name: 'ponticello', box: [187, 34, 92, 38], at: [235, 240], face: 'up', actions: { look: [{ say: 'Un ponticello sopra la strada, da una casa all\'altra. Per andare dal vicino senza fare le scale.' }], }, }, { id: 'muro_villa', name: 'muro della villa', box: [383, 0, 257, 205], at: [330, 280], face: 'right', actions: { look: [{ say: 'Il muro di Villa Schifanoia, alto alto, con l\'edera che ormai lo tiene su lei.' }], }, }, { id: 'su_piazzetta', name: 'su, Piazzetta Cambray Digny', box: [250, 196, 80, 30], at: [280, 226], exit: { scene: 'piazzetta', at: [510, 276], face: 'down' }, }, { id: 'alla_scalinata', name: 'a sinistra, giù per la scalinata verso il Comune', box: [150, 190, 60, 36], at: [195, 228], exit: { scene: 'scalinata', at: [470, 312], face: 'down' }, }, { id: 'giu_antica_posta', name: 'giù, Via dell\'Antica Posta', box: [0, 334, 470, 26], at: [240, 354], exit: { scene: 'via_antica_posta', at: [384, 234], face: 'down' }, }, ], }, // La scalinata (foto di Andrea, 28 ottobre): un cortile coi garage; su per le scale la Piazzetta Cambray Digny, // alle spalle i giardini e il retro del Comune. scalinata: { name: 'La scalinata della Piazzetta', map: [30, 42], background: 'assets/scenes/scalinata-piazzetta.png', walk: [[0, 360], [0, 290], [100, 282], [380, 278], [400, 300], [620, 330], [640, 360]], depth: [[278, 0.55], [360, 1.15]], entry: [300, 350], hotspots: [ { id: 'saracinesca', name: 'saracinesca', box: [268, 196, 62, 79], at: [300, 290], face: 'up', actions: { look: [{ say: 'Una saracinesca color ruggine. Dietro, scommetto, una macchina e trent\'anni di roba da buttare.' }], open: [{ say: 'Chiusa. E se la apro io, mi tocca anche fare ordine.' }], }, }, { id: 'panni', name: 'panni stesi', box: [110, 108, 34, 30], at: [130, 290], face: 'up', actions: { look: [{ say: 'Panni stesi al sole. Se piove, qui lo sanno tutti prima del telegiornale.' }], take: [{ say: 'Rubare i panni stesi? Mi conoscono tutti, mi ritroverebbero prima del Palio.' }], }, }, { id: 'su_antica_posta', name: 'su per le scale, poi a sinistra verso Via dell\'Antica Posta', box: [440, 196, 90, 70], at: [470, 312], face: 'up', exit: { scene: 'antica_posta_alta', at: [195, 228], face: 'right' }, }, { id: 'su_piazzetta', name: 'su per le scale, poi a destra verso Piazzetta Cambray Digny', box: [530, 196, 80, 70], at: [560, 325], face: 'up', exit: { scene: 'piazzetta', at: [560, 285], face: 'left' }, }, { id: 'al_comune', name: 'indietro, i giardini del Comune', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'comune', at: [40, 300], face: 'right' }, }, ], }, // L'area feste (il parco Antonio Berti): dalla rotonda del River, a sinistra. area_feste: { name: 'Area feste', map: [30, 84], background: 'assets/scenes/area-feste.png', // Dal basso si sale per la scaletta a sinistra, poi si segue il vialetto di pietrini sopra la staccionata. walk: [[0, 360], [88, 360], [88, 292], [120, 276], [320, 300], [460, 318], [600, 338], [640, 338], [640, 240], [420, 190], [260, 190], [0, 250]], depth: [[190, 0.35], [360, 1.15]], entry: [44, 350], hotspots: [ { id: 'prato', name: 'prato della festa', box: [120, 190, 520, 80], at: [320, 270], face: 'up', actions: { look: [{ say: 'L\'area feste. D\'estate ci montano la pista da ballo, le tavolate e lo stand della pasta.' }, { say: 'Adesso c\'è solo l\'erba. E la fame che mi viene a pensarci.' }], }, }, { id: 'casetta', name: 'casetta', box: [170, 146, 26, 22], at: [250, 200], face: 'up', actions: { look: [{ if: 'casetta_aperta', then: [{ say: 'La casetta, aperta. Dentro solo prolunghe: la torcia ce l\'ho io.' }], else: [{ say: 'Una casetta chiusa con un lucchetto piccolo. Ci tengono le prolunghe della festa e, dicono, una torcia.' }, { if: '!has:chiavetta', then: [{ say: 'E la chiavetta del lucchetto? Dicono che l\'hanno persa giù al ponticino della Carza.' }] }] }], 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' }] }], }, }, { id: 'al_piazzale', name: 'laggiù, il piazzale delle feste', box: [40, 100, 120, 70], at: [130, 224], exit: { scene: 'area_feste_festa', at: [320, 350], face: 'up' }, }, { id: 'alla_rotonda', name: 'giù per la scaletta, verso la rotonda', box: [0, 300, 90, 60], at: [44, 354], exit: { scene: 'via_provinciale', at: [120, 345], face: 'up' }, }, ], }, // La sala dei biliardi del Circolo 4 Maggio (dalla foto di Andrea, 25 ottobre): tre tavoli, il primo è quello // dove si gioca ai birilli con l'Ing. Tozzi. [DA ANDREA: cosa c'è da ricordare della sala] circolo_4_maggio: { name: 'Circolo 4 Maggio, sala dei biliardi', map: [29, 48], background: 'assets/scenes/circolo-4-maggio.png', music: 'assets/audio/biliardo.mp3', // trio jazz da circolo (tools/jazz_biliardo.py, 25 ottobre) indoor: true, walk: [[0, 360], [0, 356], [90, 350], [175, 330], [236, 316], [318, 300], [334, 240], [402, 236], [480, 232], [520, 214], [600, 190], [640, 190], [640, 360]], depth: [[190, 1.2], [360, 2.5]], entry: [590, 202], speakers: { ing_tozzi: [452, 150], bertovo: [396, 132] }, // L'Ing. Tozzi aspetta accanto al primo tavolo, con la stecca: si parla con lui per giocare, come con Mariano. people: [ { who: 'ing_tozzi', at: [452, 296], facing: 1, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.4 }, // Trappizzio Berti al tavolo di mezzo, coi suoi rinquarti (Andrea, 28 ottobre). { who: 'bertovo', at: [396, 238], facing: 1, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 5.1 }, ], enter: [{ if: '!circolo_visto', then: [{ set: 'circolo_visto' }, { say: 'La sala dei biliardi. Qui dentro si parla piano, e si gioca forte.' }] }], hotspots: [ { id: 'biliardo', name: 'biliardo', box: [0, 120, 358, 230], at: [380, 300], face: 'left', default: 'use', actions: { look: [{ say: 'Il primo tavolo: il panno verde, il castello di birilli in mezzo, le biglie già pronte.' }, { say: 'L\'Ing. Tozzi gli gira intorno con la stecca in mano, come se aspettasse qualcuno.' }], use: [{ say: 'Il tavolo è dell\'Ingegnere: prima gli chiedo una partita.' }], talk: [{ say: 'Si parla col panno, qui. Prendi la stecca.', who: 'ing_tozzi' }], take: [{ say: 'Una biglia in tasca? Mi sbattono fuori dal circolo.' }], }, }, { id: 'ing_tozzi', name: 'l\'Ing. Tozzi', box: [432, 196, 40, 100], at: [410, 304], face: 'right', default: 'talk', actions: { look: [{ say: 'L\'Ing. Tozzi, il campione del circolo. Occhiali scuri anche al chiuso: dice che così non vede le biglie degli altri.' }], talk: [{ dialogue: 'ing_tozzi' }], }, }, { id: 'bertovo', name: 'Trappizzio Berti', box: [382, 162, 30, 76], at: [360, 244], face: 'right', default: 'talk', actions: { look: [{ say: 'Trappizzio Berti, al tavolo di mezzo. Le biglie le mette dove nessuno ci arriva, e poi ci arriva lui.' }], talk: [{ dialogue: 'bertovo' }], }, }, { id: 'stecche', name: 'rastrelliera delle stecche', box: [140, 0, 60, 110], at: [150, 352], face: 'up', actions: { look: [{ say: 'Le stecche del circolo, in fila. Ognuna ha il suo proprietario, e guai a sbagliare.' }], take: [{ say: 'La stecca me la dà l\'Ingegnere, quando si gioca.' }], }, }, { id: 'quadro', name: 'quadro alla parete', box: [300, 30, 36, 55], at: [352, 320], face: 'up', actions: { look: [{ say: 'Un campione di biliardo in posa, con la stecca. Avrà il suo nome, ma da qui non si legge.' }], }, }, { id: 'armadietto', name: 'armadietto delle stecche', box: [480, 58, 34, 48], at: [496, 242], face: 'up', actions: { look: [{ say: 'L\'armadietto a vetri, con le stecche buone. Chiuso a chiave, naturalmente.' }], open: [{ say: 'Chiuso. Le stecche buone sono per chi le sa usare.' }], }, }, { id: 'alla_piazza', name: 'la porta, verso la piazza', box: [550, 30, 80, 160], at: [590, 202], exit: { scene: 'piazza', at: [202, 252], face: 'down' }, }, ], }, // Il ponte sulla Sieve, proseguendo la Provinciale dalla farmacia; di là dal ponte, la polisportiva. ponte_sieve: { name: 'Ponte sulla Sieve', map: [48, 84], background: 'assets/scenes/ponte-sieve.png', walk: [[0, 360], [0, 252], [180, 226], [300, 202], [342, 202], [380, 214], [330, 238], [330, 300], [460, 330], [640, 318], [640, 360]], depth: [[202, 0.4], [360, 1.15]], entry: [300, 350], hotspots: [ { id: 'tabernacolo', name: 'tabernacolo dell\'Annunciazione', box: [138, 148, 36, 60], at: [180, 236], face: 'up', actions: { // Notizie di Andrea: una copia dell'Annunciazione di Antonio Berti (1904–1990), l'originale è del 1947. look: [ { say: 'Il tabernacolo del ponte, con l\'Annunciazione di Antonio Berti, scultore sanpierino.' }, { say: 'Questa è una copia: l\'originale lo fece nel 1947. Lo stesso Berti del parco dell\'area feste.' }, { say: 'Chi passa per andare via dal paese, un saluto glielo fa sempre.' }, ], }, }, { id: 'sieve', name: 'la Sieve', box: [380, 170, 260, 40], at: [340, 210], face: 'right', actions: { look: [{ say: 'Sotto il ponte la Carza si butta nella Sieve, e da qui vanno avanti insieme.' }, { say: 'Nel 1758 la piena arrivò fino a Cardetole: in casa mia, di sicuro, c\'erano i pesci.' }], }, }, { id: 'alla_polisportiva', name: 'di là dal ponte, il campo sportivo', box: [250, 180, 110, 36], at: [320, 206], exit: { scene: 'polisportiva_principale', at: [40, 330], face: 'right' }, }, { id: 'alla_provinciale', name: 'indietro, verso la farmacia', box: [0, 330, 640, 30], at: [300, 354], exit: { scene: 'via_provinciale', at: [12, 320], face: 'right' }, }, ], }, // La polisportiva: passato il ponte, prima il campo principale con la tribuna; proseguendo il secondario, coi campi da padel e tennis. polisportiva: { name: 'Campo secondario', map: [62, 96], background: 'assets/scenes/polisportiva-secondario.png', walk: [[0, 360], [0, 330], [300, 262], [430, 222], [600, 210], [640, 212], [640, 360]], depth: [[210, 0.4], [360, 1.15]], entry: [100, 340], // Il BaronDeDuke nella discesa verso la polisportiva: aspetta chi gli riporta le mutande perse a poker. speakers: { barondeduke: [230, 243], macchina: [360, 212] }, people: [ { who: 'barondeduke', at: [230, 300], facing: -1, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.6 }, // Compare solo dopo che Andrea dice di voler giocare a padel (idea di Andrea, 25 ottobre; sprite di Codex). { who: 'macchina', at: [360, 262], size: 1.05, idle: 'stand', when: 'macchina_vista' }, ], hotspots: [ { id: 'campo', name: 'campo secondario', box: [140, 160, 240, 60], at: [330, 254], face: 'up', actions: { look: [{ say: 'Il campo secondario della polisportiva. Qui si allenano i piccoli, e i grandi fanno finta di non guardare.' }], }, }, { id: 'cupola', name: 'pallone bianco', box: [320, 140, 70, 40], at: [430, 226], face: 'up', actions: { look: [{ say: 'Il pallone bianco della palestra. Da fuori sembra un gigantesco marshmallow.' }], }, }, { id: 'tennis', name: 'campi da tennis', box: [520, 190, 120, 40], at: [600, 214], face: 'right', default: 'walk', actions: { walk: [{ say: 'Più avanti ci sono i campi da tennis. Racchette, palline e gente che si lamenta del sole.' }], look: [{ say: 'Laggiù i campi da tennis.' }], }, }, { id: 'padel', name: 'capannone del padel', box: [0, 110, 90, 180], at: [40, 345], face: 'left', actions: { look: [{ say: 'Il capannone verde del padel.' }, { say: 'Il padel, nel 2007, non so nemmeno cosa sia. Tra qualche anno ci giocheranno tutti, me compreso.' }], open: [{ say: 'Chiuso. E poi non saprei nemmeno da che parte si tiene la racchetta.' }], use: [{ if: '!macchina_vista', then: [ { say: 'Voglio giocare a padel!' }, { set: 'macchina_vista' }, { say: 'Toh, guarda: c\'è una macchina del tempo.' }, { say: 'Per arrivare al padel mi manca solo un po\' di plutonio. Potrei sentire da Alvarino se ce l\'ha.' }, ], else: [{ say: 'Il padel aspetta. Prima il plutonio: devo sentire Alvarino.' }], }], }, }, { id: 'macchina', name: 'macchina del tempo', box: [311, 219, 98, 43], at: [290, 290], face: 'right', when: 'macchina_vista', actions: { look: [{ say: 'Acciaio, portiere ad ali di gabbiano, cavi e bobine dappertutto. E un contenitore vuoto, sul retro.' }, { say: 'Vuoto di plutonio, si capisce.' }], open: [{ say: 'Le portiere sono già su. È il plutonio che manca.' }], use: [{ say: 'Senza plutonio non parte. Alvarino, dove sei?' }], take: [{ say: 'Una macchina in tasca? Neanche nel futuro.' }], }, }, { id: 'all_area_feste', name: 'dietro il campo, verso il piazzale delle feste', box: [150, 130, 190, 50], at: [320, 265], exit: { scene: 'area_feste_festa', at: [620, 300], face: 'left' }, }, { id: 'al_principale', name: 'indietro, verso il campo principale', box: [0, 330, 640, 30], at: [100, 354], exit: { scene: 'polisportiva_principale', at: [620, 330], face: 'left' }, }, { id: 'alle_mozzete', name: 'a destra, verso le Mozzète', box: [610, 226, 30, 100], at: [628, 290], face: 'right', exit: { scene: 'mozzete', at: [330, 206], face: 'down' }, }, { 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: [ { say: 'Barone! Che ci fai qui?' }, { say: 'Aspetto uno che mi deve riportare le mutande.', who: 'barondeduke' }, { say: 'Le... mutande?' }, { say: 'Le ho perse a poker, ieri sera.', who: 'barondeduke', pose: 'facepalm' }, { say: 'Avevo due donne e due jack. Entra la terza donna, e penso: «Male male si divide».', who: 'barondeduke', pose: 'cards' }, { say: 'E invece?' }, { say: 'L\'altro aveva colore.', who: 'barondeduke', pose: 'shrug' }, ], }, }, ], }, polisportiva_principale: { name: 'Campo principale', map: [40, 96], background: 'assets/scenes/polisportiva-principale.png', walk: [[0, 298], [640, 298], [640, 360], [0, 360]], depth: [[298, 1.0], [360, 1.2]], entry: [40, 330], hotspots: [ { id: 'tribuna', name: 'tribuna', box: [254, 172, 116, 40], at: [310, 320], face: 'up', actions: { look: [{ say: 'La tribuna bianca e rossa. La domenica qui c\'è più tifo che al Palio. Quasi.' }], }, }, { id: 'campo', name: 'campo', box: [0, 212, 640, 76], at: [320, 320], face: 'up', actions: { look: [{ say: 'Il campo principale. Erba vera, righe vere, porte vere. Altro che le maglie per terra.' }], walk: [{ say: 'Entrare in campo senza permesso? Il custode mi fa fare dieci giri di corsa.' }], }, }, { id: 'al_ponte', name: 'indietro, verso il ponte', box: [0, 280, 50, 80], at: [14, 330], exit: { scene: 'ponte_sieve', at: [320, 206], face: 'down' }, }, { id: 'al_secondario', name: 'avanti, verso il campo secondario', box: [590, 280, 50, 80], at: [626, 330], exit: { scene: 'polisportiva', at: [100, 340], face: 'up' }, }, ], }, // Via Provinciale, a destra dalla Pieve: il forno (la Pieve gli è a destra); a sinistra la stazione, e oltre La Luna e Campomigliaio. forno: { name: 'Il forno', map: [86, 58], background: 'assets/scenes/forno-conti.png', walk: [[0, 360], [0, 268], [640, 268], [640, 360]], depth: [[268, 0.8], [360, 1.15]], entry: [628, 300], hotspots: [ { id: 'forno', name: 'forno', box: [100, 40, 420, 220], at: [320, 290], face: 'up', actions: { look: [{ say: 'Il forno. Il profumo del pane arriva fino alla Pieve, e la domenica mattina fino a casa mia.' }], open: [{ say: 'Una schiacciata calda... no, prima il palio. Però l\'odore me lo porto dietro.' }], }, }, { id: 'alla_stazione', name: 'a sinistra, verso la stazione e la scuola', box: [0, 200, 50, 160], at: [12, 300], exit: { scene: 'bivio_provinciale', at: [318, 224], face: 'down' }, }, { id: 'alla_pieve', name: 'a destra, verso la Pieve', box: [590, 220, 50, 140], at: [628, 300], exit: { scene: 'pieve', at: [588, 250], face: 'left' }, }, { // Dietro, su per l'arco di Via della Compagnia (Andrea, 29 ottobre). id: 'all_arco', name: 'dietro, su per l\'arco di Via della Compagnia', box: [60, 334, 520, 26], at: [320, 350], exit: { scene: 'via_compagnia', at: [222, 296], face: 'up' }, }, ], }, stazione: { name: 'La stazione', map: [88, 71], background: 'assets/scenes/stazione.png', walk: [[0, 360], [0, 270], [640, 270], [640, 360]], depth: [[270, 0.75], [360, 1.15]], entry: [628, 320], hotspots: [ { id: 'stazione', name: 'stazione', box: [200, 30, 440, 200], at: [400, 290], face: 'up', actions: { look: [{ say: 'La stazione della Faentina. Da qui i treni vanno a Firenze e a Faenza, con calma.' }, { say: 'Molta calma.' }], }, }, { id: 'bar', name: 'bar della stazione', box: [360, 196, 50, 66], at: [385, 290], face: 'up', actions: { look: [{ say: 'Il bar della stazione. Qui si aspetta il treno, e quando il treno è in ritardo si aspetta un altro caffè.' }], open: [{ say: 'Non ho tempo per un caffè. E poi il caffè mi fa tremare come la carretta del Palio.' }], }, }, { id: 'al_ponticino', name: 'a sinistra, verso il ponticino della Carza', box: [0, 190, 56, 120], at: [14, 300], exit: { scene: 'ponticino', at: [474, 202], face: 'down' }, }, { id: 'al_bivio', name: 'indietro, verso la Provinciale', box: [60, 334, 520, 26], at: [320, 354], exit: { scene: 'viale_stazione', at: [340, 236], face: 'down' }, }, { id: 'ai_giardini', name: 'a destra, il campone delle poste', box: [590, 190, 50, 100], at: [628, 300], exit: { scene: 'giardini_poste', at: [137, 240], face: 'down' }, }, { // Dal ponte delle poste si scende sulla passeggiata della Carza (Andrea, 29 ottobre). id: 'giu_carza', name: 'giù dal ponte, la passeggiata sulla Carza', box: [590, 296, 50, 38], at: [620, 320], exit: { scene: 'ponte_stazione', at: [440, 252], face: 'left' }, }, ], }, // Via Provinciale fra il forno e la stazione: qui si sbuca dalla scuola. bivio_provinciale: { name: 'Via Provinciale, al bivio', map: [78, 64], background: 'assets/scenes/bivio-provinciale.png', walk: [[0, 360], [0, 232], [120, 226], [290, 222], [350, 222], [380, 240], [600, 340], [640, 360]], depth: [[222, 0.5], [360, 1.7]], entry: [300, 350], hotspots: [ { id: 'case', name: 'case gialle', box: [380, 0, 260, 230], at: [460, 300], face: 'right', actions: { look: [{ say: 'Le case gialle della Provinciale, coi vasi sul marciapiede. Ogni vaso ha la sua padrona, e guai a toccarlo.' }], }, }, { id: 'alla_scuola', name: 'più avanti, la stradina della scuola', box: [170, 196, 80, 40], at: [208, 226], exit: { scene: 'scuola', at: [600, 320], face: 'left' }, }, { id: 'la_luna', name: 'a sinistra, verso La Luna e Campomigliaio', box: [0, 216, 44, 56], at: [12, 248], exit: { scene: 'provinciale_viale', at: [300, 350], face: 'up' }, }, { id: 'al_forno', name: 'laggiù, verso il forno', box: [280, 196, 80, 40], at: [318, 224], exit: { scene: 'forno', at: [12, 300], face: 'right' }, }, { id: 'alla_stazione', name: 'a destra, verso la stazione', box: [560, 250, 80, 110], at: [580, 345], exit: { scene: 'viale_stazione', at: [300, 352], face: 'up' }, }, ], }, // La Provinciale dopo il bivio della stazione, fra gli alberi, prima della Carza (foto di Andrea, 24 ottobre). provinciale_viale: { name: 'Via Provinciale, il viale alberato', map: [72, 68], background: 'assets/scenes/provinciale-viale.png', effects: [{ type: 'clouds', area: [300, 10, 220, 120], count: 2 }, { type: 'leaves', area: [20, 40, 360, 250], count: 4, colors: ['#a8c44e', '#efe8c8', '#7fa83a'] }], walk: [[0, 360], [0, 330], [400, 232], [462, 232], [620, 360]], depth: [[232, 0.4], [360, 1.7]], entry: [300, 350], hotspots: [ { id: 'verso_la_sieve', name: 'avanti, alla rotonda: Via Cafaggio e La Luna', box: [392, 220, 80, 22], at: [435, 236], exit: { scene: 'rotonda_cafaggio', at: [20, 245], face: 'right' }, }, { id: 'negozi', name: 'negozi', box: [20, 150, 200, 95], at: [150, 330], face: 'left', actions: { look: [{ say: 'I negozi sotto i palazzi, al riparo degli alberi. Con la festa domani, stasera chiudono tardi.' }], }, }, { id: 'alberi', name: 'alberi del viale', box: [230, 20, 160, 200], at: [330, 290], face: 'up', actions: { look: [{ say: 'Gli alberi del viale: d\'estate fanno un\'ombra che in piazza se la sognano.' }], use: [{ say: 'Arrampicarmi? Ho ventisette anni, non sette.' }], }, }, { id: 'villette', name: 'case col balcone', box: [500, 0, 140, 230], at: [540, 330], face: 'right', actions: { look: [{ say: 'Case coi balconi pieni di fiori. Qui il palio si sente da lontano: il giusto.' }], }, }, { id: 'al_bivio', name: 'indietro, verso il bivio', box: [0, 334, 620, 26], at: [300, 354], exit: { scene: 'bivio_provinciale', at: [12, 248], face: 'right' }, }, ], }, // La Provinciale lungo la Carza, uscendo dal paese verso La Luna (foto di Andrea, 24 ottobre). verso_luna: { name: 'La Provinciale lungo la Carza', map: [66, 73], background: 'assets/scenes/verso-luna.png', effects: [{ type: 'birds', phase: ['pomeriggio', 'tramonto'], area: [200, 30, 400, 90] }, { type: 'clouds', area: [160, 0, 480, 110], count: 3, big: true }, { type: 'fireflies', phase: 'sera', area: [200, 210, 220, 80], count: 8 }, { type: 'sparkle', area: [380, 288, 200, 30], count: 5 }, { type: 'sparkle', area: [430, 210, 40, 30], count: 2 }, { type: 'smoke', at: [113, 116] }, { type: 'lamps', phase: 'sera', points: [[165, 93]] }], walk: [[0, 360], [0, 200], [168, 190], [182, 196], [330, 360]], depth: [[192, 0.45], [360, 1.7]], entry: [150, 206], hotspots: [ { id: 'verso_la_luna', name: 'avanti, verso La Luna e Campomigliaio', box: [0, 334, 330, 26], at: [150, 352], exit: { scene: 'campomigliaio_strada', at: [300, 350], face: 'up' }, }, { id: 'carza', name: 'la Carza', box: [340, 205, 300, 155], at: [250, 300], face: 'right', actions: { look: [{ say: 'La Carza, la stessa che passa sotto il ponticino per Cardetole. Più sassi che acqua.' }, { say: 'Da quando scavano le gallerie dell\'alta velocità, d\'estate sparisce. Torna viva d\'inverno.' }], use: [{ say: 'Scendere nel greto ora? Il palio non sta mica sotto un sasso.' }], }, }, { id: 'luna', name: 'la luna', box: [482, 54, 24, 24], at: [200, 300], face: 'right', actions: { look: [{ say: 'La luna, già alta in pieno giorno. Proprio sulla strada per La Luna: chi ha dato i nomi qui aveva il senso dell\'umorismo.' }], take: [{ say: 'Ci arrivo, ci arrivo. Fra un paio di secoli.' }], }, }, { id: 'casa_bianca', name: 'casa bianca', box: [84, 112, 80, 64], at: [120, 220], face: 'up', actions: { look: [{ say: 'Una casa bianca sotto il bosco, coi pini sopra. Bella vista sulla Carza, e sui camion della Provinciale.' }], }, }, { id: 'muretto', name: 'muretto', box: [178, 196, 120, 150], at: [190, 300], face: 'right', actions: { look: [{ say: 'Il muretto lungo la Carza, tutto licheni. È più vecchio di me, e sta in piedi meglio.' }], }, }, { id: 'al_viale', name: 'indietro, verso la rotonda di Via Cafaggio', box: [0, 182, 240, 26], at: [150, 200], exit: { scene: 'provinciale_luna', at: [200, 352], face: 'up' }, }, ], }, // Campomigliaio, il rione dei blu (foto dell'Arcu): la strada in salita, il Circolo, il ponte vecchio. campomigliaio_strada: { name: 'Campomigliaio, la strada', map: [60, 78], background: 'assets/scenes/campomigliaio-strada.png', walk: [[0, 360], [0, 300], [250, 222], [300, 210], [350, 210], [420, 240], [640, 345], [640, 360]], depth: [[210, 0.35], [360, 1.7]], entry: [300, 350], hotspots: [ { id: 'al_circolo', name: 'su, verso il circolino', box: [270, 195, 90, 25], at: [320, 214], exit: { scene: 'campomigliaio_circolo', at: [150, 345], face: 'up' }, }, { id: 'torretta', name: 'casa con la torretta', box: [280, 120, 80, 62], at: [320, 222], face: 'up', actions: { look: [{ say: 'In cima alla salita, la casa con la torretta. Da quaggiù sembra il castello di Campomigliaio.' }], }, }, { id: 'muro', name: 'muro di pietra', box: [430, 190, 210, 140], at: [420, 300], face: 'right', actions: { look: [{ say: 'Un muro di sassi a secco, con la ringhiera sopra. Ne ha visti passare di pali.' }], }, }, { id: 'porta', name: 'porta marrone', box: [150, 165, 32, 56], at: [180, 270], face: 'left', actions: { look: [{ say: 'Una porta marrone, chiusa.' }], open: [{ say: 'Chiusa. Saranno tutti al circolino.' }], }, }, { id: 'alla_carza', name: 'indietro, verso la Provinciale', box: [0, 334, 640, 26], at: [300, 354], exit: { scene: 'verso_luna', at: [150, 330], face: 'up' }, }, ], }, campomigliaio_circolo: { name: 'Campomigliaio, il circolino', map: [55, 82], background: 'assets/scenes/campomigliaio-circolo.png', effects: [{ type: 'windows', phase: 'sera', rects: [[55, 186, 50, 28], [110, 186, 50, 28], [165, 186, 36, 28], [316, 180, 16, 44]] }], walk: [[0, 360], [0, 335], [60, 300], [400, 280], [640, 250], [640, 360]], depth: [[250, 1.0], [360, 1.5]], entry: [320, 330], // L'Arcu davanti al circolino, accanto alla fontanella (sprite di Codex, 25 ottobre). speakers: { arcu: [418, 214] }, // La Ghiacciomobile non è più qui: sta nel muro di Via Liguri Magelli (Andrea, 29 ottobre). people: [ { who: 'arcu', at: [418, 292], facing: -1, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.2 }, ], hotspots: [ { id: 'circolo', name: 'il circolino', box: [100, 0, 380, 205], at: [300, 290], face: 'up', actions: { look: [{ say: 'Il circolino: il Circolo SMS di Campomigliaio. Un\'istituzione, qui i volontari hanno sempre fatto miracoli.' }, { say: 'Il sabato sera ci si mangia una pizza ottima, e si sta meglio che a casa. Si respira fratellanza.' }], open: [{ if: 'rione:campomigliaio', then: [{ say: 'Se entro ora, mi chiedono tutti del palio. Prima lo ritrovo, poi entro a testa alta.' }], else: [{ say: 'Il circolino dei blu, il giorno prima del palio? Meglio di no.' }], }], }, }, { id: 'fontanella', name: 'fontanella', box: [364, 212, 26, 58], at: [376, 286], face: 'up', actions: { look: [{ say: 'Una fontanella di ghisa. Acqua fresca e gratis, la cosa più preziosa di maggio.' }], use: [{ say: 'Un sorso d\'acqua. Ora sì che si ragiona.' }], }, }, { id: 'insegna', name: 'insegna del circolino', box: [484, 86, 28, 62], at: [500, 272], face: 'up', actions: { look: [{ say: 'L\'insegna del circolino. Senza scritte: tanto qui lo sanno tutti dov\'è.' }], }, }, { id: 'panchina', name: 'panchina', box: [520, 206, 52, 30], at: [545, 262], face: 'up', actions: { look: [{ say: 'La panchina davanti al circolino. Di solito è occupata da chi sa tutto di tutti.' }], use: [{ say: 'Non è il momento di sedersi. Il palio non si cerca da solo.' }], }, }, { id: 'alla_strada', name: 'giù per la strada', box: [0, 334, 300, 26], at: [150, 352], exit: { scene: 'campomigliaio_strada', at: [320, 216], face: 'down' }, }, { id: 'al_ponte', name: 'a sinistra, verso il ponte', box: [44, 220, 40, 80], at: [70, 312], exit: { scene: 'campomigliaio_ponte', at: [80, 330], face: 'right' }, }, { id: 'tagliaferro', name: 'a diritto, verso Tagliaferro', box: [596, 210, 44, 60], at: [622, 258], face: 'right', default: 'walk', actions: { walk: [{ say: 'A diritto si va a Tagliaferro. Il palio non sarà mica scappato fin laggiù.' }], look: [{ say: 'La strada va avanti verso Tagliaferro.' }], }, }, { 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' }], }, }, ], }, campomigliaio_ponte: { name: 'Campomigliaio, il ponte vecchio', map: [50, 86], background: 'assets/scenes/campomigliaio-ponte.png', effects: [{ type: 'birds', phase: ['pomeriggio', 'tramonto'], area: [100, 10, 300, 60] }, { type: 'clouds', area: [80, 5, 300, 50], count: 2 }, { type: 'fireflies', phase: 'sera', area: [0, 220, 150, 120], count: 7 }, { type: 'sparkle', area: [150, 205, 160, 90], count: 7 }, { type: 'sparkle', area: [330, 300, 110, 40], count: 3 }, { type: 'smoke', at: [605, 50] }], walk: [[0, 360], [0, 232], [100, 225], [140, 240], [170, 275], [260, 330], [300, 360]], depth: [[225, 0.6], [360, 1.5]], entry: [80, 330], hotspots: [ { id: 'ponte', name: 'il ponte vecchio', box: [60, 100, 290, 95], at: [110, 240], face: 'up', actions: { look: [{ say: 'Il ponte vecchio, coi suoi due archi. Chissà quante piene ha visto passare: io al primo temporale cerco riparo.' }], }, }, { id: 'torrente', name: 'il torrente', box: [150, 200, 320, 160], at: [200, 300], face: 'right', actions: { look: [{ say: 'L\'acqua è bassa e limpida. Si vedono i sassi del fondo, e nessun palio.' }], use: [{ say: 'Mi bagno le scarpe e poi chi la sente, la mamma.' }], }, }, { id: 'tronco', name: 'tronco', box: [318, 230, 74, 56], at: [215, 315], face: 'right', actions: { look: [{ say: 'Un tronco bianco portato giù dalla piena, piantato in mezzo all\'acqua.' }], take: [{ say: 'Troppo pesante, e troppo bagnato. Lo lascio ai girini.' }], }, }, { id: 'al_circolo', name: 'indietro, verso il circolino', box: [0, 334, 280, 26], at: [120, 354], exit: { scene: 'campomigliaio_circolo', at: [76, 314], face: 'right' }, }, ], }, // «Il tennis della chiesa»: il campo dietro la Pieve, dal cancello verde della Carza. tennis_chiesa: { name: 'Il tennis della chiesa', map: [66, 51], background: 'assets/scenes/tennis-chiesa.png', speakers: { tosca: [292, 196], mariano: [500, 234] }, // Mariano, il campione del pallaio (sprite di Codex dalla foto di Andrea, 25 ottobre). people: [{ who: 'mariano', at: [500, 290], facing: -1, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.4 }], walk: [[0, 360], [0, 300], [200, 290], [420, 268], [640, 258], [640, 360]], depth: [[258, 0.7], [360, 1.15]], entry: [320, 350], hotspots: [ { id: 'pallaio', name: 'il pallaio', box: [300, 248, 340, 40], at: [400, 300], face: 'up', actions: { look: [{ say: 'Il pallaio, dove si gioca a bocce. Qui un punto si discute più di un rigore.' }], use: [{ say: 'Una partita? Chiedo a Mariano, il campione.' }, { dialogue: 'mariano' }], }, }, { id: 'tennis', name: 'campo da tennis', box: [0, 190, 70, 130], at: [40, 310], face: 'left', actions: { look: [{ say: 'Di là, dove guarda l\'omino di ferro, c\'è il campo da tennis della chiesa.' }], }, }, { 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' }], open: [{ say: 'Il chiosco si apre da dentro. Basta chiamare la Tosca.' }], }, }, { id: 'omino', name: 'omino di ferro', box: [80, 190, 40, 140], at: [130, 320], face: 'left', actions: { look: [{ say: 'L\'omino di ferro con la racchetta, una scultura di Simone Rocchi. Almeno lui a tennis ci gioca.' }], talk: [{ say: 'Partita?' }, { say: '...' }, { say: 'Mi sa che vince lui ai punti. Non si muove mai.' }], }, }, { id: 'al_cancello', name: 'dal cancello verde, verso il posticino della Carza', box: [470, 140, 120, 130], at: [515, 280], exit: { scene: 'carza', at: [440, 290], face: 'left' }, }, { id: 'mariano', name: 'Mariano', box: [482, 238, 36, 52], at: [455, 300], face: 'right', default: 'talk', actions: { look: [{ say: 'Mariano, il campione del pallaio. Gli occhiali in testa, il sorriso di chi ha già vinto.' }], talk: [{ dialogue: 'mariano' }], }, }, ], }, // Il sentiero nel bosco fra la casa del maestro Bacci (alle spalle) e la Fortezza (a diritto): foto di Andrea, // 28 ottobre. La pozza c'è anche a Ferragosto (Andrea). sentiero_fortezza: { name: 'Il sentiero della Fortezza', map: [43, 9], background: 'assets/scenes/sentiero-fortezza.png', walk: [[0, 360], [0, 321], [208, 267], [292, 196], [317, 181], [342, 181], [375, 217], [500, 292], [640, 325], [640, 360]], depth: [[181, 0.3], [360, 1.15]], entry: [320, 350], hotspots: [ { id: 'pozza', name: 'pozza', box: [271, 212, 96, 54], at: [250, 285], face: 'right', actions: { look: [{ say: 'La pozza. Anche il quindici d\'agosto è sempre bella piena.' }, { say: 'Un giorno ci casco dentro e ci affogo: il primo annegato in mezzo al bosco.' }], use: [{ say: 'Un bagno nella pozza? No, grazie: non so quanto è fonda, e non lo voglio sapere.' }], }, }, { id: 'rete', name: 'rete', box: [0, 140, 230, 150], at: [120, 300], face: 'left', actions: { look: [{ say: 'Una rete vecchia, tenuta su coi pali di legno e con la speranza.' }], }, }, { id: 'alla_fortezza', name: 'a diritto, verso la Fortezza', box: [295, 160, 70, 36], at: [328, 186], exit: { scene: 'fortezza', at: [20, 330], face: 'right' }, }, { id: 'alla_casa_bacci', name: 'indietro, verso la casa del maestro Bacci', box: [0, 334, 640, 26], at: [320, 354], exit: { scene: 'casa_maestro_bacci', at: [120, 350], face: 'up' }, }, ], }, // La salita bianca fra la casa del maestro Bacci (alle spalle) e il viale dei cipressi (lassù spuntano i // cipressi): foto di Andrea, 28 ottobre. salita_cipressi: { name: 'La salita dei cipressi', map: [55, 10], background: 'assets/scenes/salita-cipressi.png', walk: [[0, 360], [0, 317], [208, 258], [298, 190], [333, 188], [417, 233], [583, 300], [640, 325], [640, 360]], depth: [[188, 0.3], [360, 1.15]], entry: [320, 350], hotspots: [ { id: 'cipressi', name: 'cipressi', box: [310, 118, 26, 70], at: [316, 200], face: 'up', actions: { look: [{ say: 'Lassù spuntano i cipressi: il viale del Trebbio. Ancora un pezzo di salita.' }], }, }, { id: 'cartello', name: 'cartello', box: [104, 144, 26, 26], at: [150, 280], face: 'left', actions: { look: [{ say: 'Un cartello bianco. Bianco e basta: chi l\'ha messo s\'è scordato cosa ci voleva scrivere.' }], }, }, { id: 'muretto', name: 'muretto', box: [0, 232, 112, 60], at: [120, 300], face: 'left', actions: { look: [{ say: 'Un muretto di sassi e mattoni: buono per riprendere fiato a metà salita.' }], use: [{ say: 'Mi siederei, ma se mi siedo ora non mi rialzo più.' }], }, }, { id: 'ai_cipressi', name: 'su, verso i cipressi', box: [290, 162, 66, 32], at: [316, 194], exit: { scene: 'viale_cipressi', at: [300, 350], face: 'up' }, }, { id: 'alla_casa_bacci', name: 'indietro, verso la casa del maestro Bacci', box: [0, 334, 640, 26], at: [320, 354], exit: { scene: 'casa_maestro_bacci', at: [138, 226], face: 'down' }, }, ], }, // Fra la Fortezza e i cipressi: la stradina fra le vigne, la casa del maestro Bacci, e lassù il Trebbio. casa_maestro_bacci: { name: 'La casa del maestro Bacci', map: [50, 13], background: 'assets/scenes/casa-maestro-bacci.png', walk: [[0, 360], [0, 340], [100, 270], [130, 222], [150, 222], [150, 270], [240, 360]], depth: [[222, 0.3], [360, 1.2]], entry: [120, 350], hotspots: [ { id: 'casa', name: 'giù a destra, la casa del maestro Bacci', box: [500, 296, 140, 64], at: [200, 340], face: 'right', actions: { look: [{ say: 'Giù a destra, oltre le vigne, c\'è la casa del maestro Bacci. Mezzo paese ha imparato a leggere e scrivere da lui.' }], }, }, { id: 'trebbio', name: 'castello del Trebbio', box: [286, 66, 50, 30], at: [140, 240], face: 'up', actions: { look: [{ say: 'Eccolo lì, il castello del Trebbio, in tutto il suo splendore. Da quaggiù sembra una pedina.' }], }, }, { id: 'vigne', name: 'vigne', box: [160, 250, 340, 110], at: [190, 320], face: 'right', actions: { look: [{ say: 'Le vigne in fila. A settembre qui si vendemmia, e tutto il paese ha le mani appiccicose.' }], take: [{ say: 'L\'uva a maggio? È ancora un\'idea d\'uva.' }], }, }, { id: 'ai_cipressi', name: 'avanti, verso i cipressi e il Trebbio', box: [120, 150, 56, 30], at: [138, 226], exit: { scene: 'salita_cipressi', at: [320, 350], face: 'up' }, }, { id: 'alla_fortezza', name: 'indietro, verso la Fortezza', box: [0, 330, 240, 30], at: [120, 354], exit: { scene: 'sentiero_fortezza', at: [320, 350], face: 'up' }, }, ], }, // Il piazzale coperto dell'area feste, apparecchiato per la festa. area_feste_festa: { name: 'Il piazzale delle feste', map: [26, 91], background: 'assets/scenes/area-feste-festa.png', // Le lucine dei festoni, che si accendono e si spengono; di sera i lampioni. effects: [ { type: 'bulbs', points: [[178, 122], [197, 126], [217, 130], [236, 133], [255, 136], [275, 139], [294, 141], [313, 143], [333, 144], [352, 145], [371, 146], [391, 146], [410, 146], [430, 145], [449, 144], [468, 143], [488, 141], [507, 139], [526, 137], [546, 134], [565, 130], [584, 127], [604, 122], [623, 118]] }, { type: 'lamps', phase: 'sera', points: [[162, 90], [216, 148], [250, 162], [370, 158], [440, 158], [496, 182], [527, 180], [590, 178], [632, 112]] }, ], walk: [[0, 360], [0, 260], [160, 240], [420, 240], [640, 296], [640, 360]], depth: [[240, 0.55], [360, 2.4]], entry: [320, 350], hotspots: [ { id: 'tavolate', name: 'tavolate', box: [180, 250, 460, 80], at: [250, 340], face: 'right', actions: { look: [{ say: 'Le tavolate già apparecchiate per la festa. Fra poco qui non si trova un posto nemmeno a pagarlo.' }], use: [{ say: 'Mi siedo a tenere il posto? Me lo hanno già tenuto tre zie, a turno.' }], }, }, { id: 'bandierine', name: 'bandierine', box: [130, 120, 510, 60], at: [320, 300], face: 'up', actions: { look: [{ say: 'Le bandierine colorate da un lampione all\'altro. Le montano ogni anno, e ogni anno ne manca una.' }], }, }, { id: 'padiglione', name: 'bar dell\'area feste', box: [0, 110, 120, 140], at: [60, 280], face: 'left', actions: { look: [{ say: 'Il bar sotto il porticato. Fra qualche anno ci faranno il Locura.' }, { say: 'E il mercoledì d\'estate, tutti fuori a cena. Stupendo.' }], open: [{ say: 'Il mercoledì sera è ancora lontano. Prima il palio.' }], }, }, { id: 'al_secondario', name: 'di là, verso il campo secondario', box: [590, 170, 50, 110], at: [620, 300], exit: { scene: 'polisportiva', at: [320, 265], face: 'down' }, }, { id: 'al_parco', name: 'indietro, verso il parco', box: [0, 334, 640, 26], at: [320, 354], exit: { scene: 'area_feste', at: [130, 224], face: 'down' }, }, ], }, // Livello 1: Villa Adami, vista dalla salita della Fortezza guardando in discesa. villa_adami: { name: 'Villa Adami', map: [46, 32], background: 'assets/scenes/villa-adami.png', effects: [{ type: 'birds', phase: ['pomeriggio', 'tramonto'], area: [300, 20, 330, 60] }, { type: 'clouds', area: [300, 5, 340, 60], count: 2 }, { type: 'windows', phase: 'sera', rects: [[148, 104, 10, 24], [205, 110, 10, 22], [300, 120, 12, 26], [372, 128, 10, 20], [412, 130, 10, 20], [448, 134, 10, 18], [150, 186, 12, 22], [205, 190, 12, 22], [372, 190, 10, 20], [412, 190, 10, 20], [448, 192, 10, 18]] }, { type: 'flag', at: [251, 4], w: 9, h: 6, colors: ['#f4f1e8', '#2a2a2a'] }], walk: [[0, 272], [30, 246], [60, 244], [110, 256], [190, 268], [360, 296], [440, 288], [520, 276], [560, 268], [612, 262], [614, 272], [520, 288], [500, 292], [500, 360], [0, 360]], depth: [[244, 0.5], [360, 1.2]], entry: [300, 345], hotspots: [ { id: 'villa', name: 'Villa Adami', box: [69, 8, 459, 247], at: [300, 300], face: 'up', actions: { look: [{ say: 'Villa Adami. Gialla come un tuorlo, con le persiane verdi.' }], open: [{ say: 'Mica è casa mia. E poi suonare e scappare non si fa più dalla quinta elementare.' }], }, }, { id: 'verso_compagnia', name: 'a destra, giù per Via della Compagnia', box: [560, 236, 60, 38], at: [600, 266], exit: { scene: 'via_compagnia', at: [440, 258], face: 'down' }, }, { id: 'salita', name: 'salita verso la Fortezza', box: [100, 330, 400, 30], at: [300, 354], exit: { scene: 'salita_villa_adami', at: [340, 352], face: 'right' }, }, { // Oltre il muretto si scende alla scuola e a Via Cafaggio (Andrea, 29 ottobre). id: 'alla_scuola', name: 'giù, verso la scuola e Via Cafaggio', box: [502, 296, 138, 64], at: [498, 345], exit: { scene: 'via_cafaggio', at: [150, 352], face: 'up' }, }, ], }, // Il Poggio, dalla salita del leone alla Fortezza: la stradina col muretto e tutto il Mugello sotto (foto di Andrea, 24 ottobre). salita_fortezza: { name: 'Il Poggio', map: [37, 12], background: 'assets/scenes/salita-fortezza.png', walk: [[0, 360], [0, 322], [80, 264], [150, 246], [195, 246], [222, 262], [296, 360]], depth: [[246, 0.45], [360, 1.4]], entry: [150, 345], hotspots: [ { id: 'giu_leone', name: 'giù, verso Villa Adami', box: [130, 222, 90, 30], at: [175, 250], exit: { scene: 'salita_villa_adami', at: [326, 259], face: 'right' }, }, { id: 'su_fortezza', name: 'su, alla Fortezza', box: [0, 334, 296, 26], at: [150, 352], exit: { scene: 'fortezza', at: [330, 300], face: 'left' }, }, { id: 'panorama', name: 'il Mugello', box: [300, 120, 340, 80], at: [190, 300], face: 'right', actions: { look: [{ say: 'Da quassù si vede tutto: i tetti del paese, i campi, e in fondo i monti del Mugello.' }, { say: 'Il palio però da qui non si vede. Ci avevo sperato.' }], }, }, { id: 'fico', name: 'fico', box: [460, 200, 180, 160], at: [240, 320], face: 'right', actions: { look: [{ say: 'Un fico che si sporge dal muretto. A fine maggio i fichi sono ancora duri: torno ad agosto.' }], take: [{ say: 'Acerbi. E poi non sono miei.' }], }, }, { id: 'case', name: 'case', box: [40, 0, 100, 240], at: [60, 320], face: 'left', actions: { look: [{ say: 'Le case del Poggio, che salgono verso la Fortezza coi fiori alle finestre e i muri di sasso.' }], }, }, ], }, // Tra il livello 1 e il 2: la salita di Villa Adami, con la casa del leone. Si sale alla Fortezza. salita_villa_adami: { name: 'Salita di Villa Adami', map: [38, 19], background: 'assets/scenes/salita-villa-adami.png', walk: [[0, 314], [140, 310], [262, 322], [292, 346], [322, 346], [318, 300], [322, 262], [334, 244], [420, 250], [640, 286], [640, 360], [0, 360]], depth: [[252, 0.5], [360, 1.1]], entry: [340, 352], // Quando parla, dalla statua di coccio esce lo spirito di un leone vero (disegnato da Codex, idea di Andrea). speakers: { leone: [285, 40] }, apparitions: [{ who: 'leone', src: 'assets/characters/spirito-leone.png', at: [440, 100], height: 84 }], hotspots: [ { id: 'leone', name: 'leone di terracotta', box: [412, 66, 34, 30], at: [400, 290], face: 'up', actions: { look: [{ say: 'Un leone di terracotta che fa la guardia alla salita. Di serpenti, dice, non ne ha visti passare.' }], 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: 'giù, verso la scuola e Via Cafaggio', box: [0, 286, 120, 44], at: [40, 336], face: 'left', exit: { scene: 'via_cafaggio', at: [300, 350], face: 'up' }, actions: { look: [{ say: 'Di là si va alla scuola. Ci ho passato abbastanza anni, grazie.' }], }, }, { id: 'su_fortezza', name: 'su per il Poggio, verso la Fortezza', box: [168, 196, 182, 46], at: [326, 259], face: 'left', exit: { scene: 'salita_fortezza', at: [175, 252], face: 'down' }, }, { id: 'verso_villa_adami', name: 'discesa verso Villa Adami', box: [200, 334, 280, 26], at: [340, 356], exit: { scene: 'villa_adami', at: [300, 345], face: 'right' }, }, ], }, // La strada da Pieve a Cardetole: il posticino della Carza, il ponticino, l'area camper. carza: { name: 'Il posticino della Carza', map: [60, 58], background: 'assets/scenes/carza.png', effects: [{ type: 'fireflies', phase: 'sera', area: [80, 200, 480, 100], count: 9 }], walk: [[60, 360], [250, 262], [300, 218], [350, 218], [420, 262], [600, 360]], depth: [[218, 0.55], [360, 1.65]], entry: [300, 350], // Il Tozzino davanti al cancello del tennis, in tenuta, che aspetta Federer. speakers: { tozzino: [440, 222] }, people: [{ who: 'tozzino', at: [440, 300], facing: -1, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 3.9 }], hotspots: [ { id: 'muro', name: 'casa dell\'ing. Tozzi', box: [0, 120, 200, 140], at: [190, 300], face: 'left', actions: { look: [{ say: 'Dietro il muro di sassi c\'è la casa dell\'ingegner Patrizio Giuseppe Tozzi, il babbo del Tozzino.' }, { say: 'Uno che fra qualche anno farà il presidente del gruppo INPS: i pensionati sanpierini che si danno un sacco da fare.' }], }, }, { id: 'cancello', name: 'cancello verde, verso il tennis della chiesa', box: [460, 150, 46, 132], at: [440, 290], face: 'right', exit: { scene: 'tennis_chiesa', at: [515, 285], face: 'left' }, actions: { look: [{ say: 'Il cancello verde, sempre aperto. Di là c\'è il tennis della chiesa.' }], }, }, { id: 'al_ponticino', name: 'il ponticino sulla Carza', box: [270, 180, 110, 50], at: [325, 222], exit: { scene: 'ponticino', at: [400, 350], face: 'up' }, }, { id: 'alla_pieve', name: 'su verso la Pieve', box: [0, 330, 640, 30], at: [300, 354], exit: { scene: 'pieve', at: [95, 250], face: 'right' }, }, { 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: [ { say: 'Tozzino! Che fai lì davanti al cancello?' }, { say: 'Aspetto Federer. Oggi si fa una partita.', who: 'tozzino', pose: 'explain' }, { say: 'Federer? Roger Federer?' }, { say: 'E chi sennò? Ha chiamato ora: s\'è fermato a Pratolino a mettere le catene. A breve arriva.', who: 'tozzino', pose: 'watch' }, { say: 'Se non arriva, la vinco a tavolino.', who: 'tozzino', pose: 'look_far' }, ], }, }, ], }, ponticino: { name: 'Il ponticino sulla Carza', map: [64, 71], background: 'assets/scenes/ponticino-carza.png', walk: [[250, 360], [438, 198], [478, 198], [560, 360]], depth: [[198, 0.3], [360, 1.15]], entry: [320, 350], hotspots: [ { id: 'torrente', name: 'la Carza', box: [0, 230, 230, 130], at: [300, 330], face: 'left', actions: { look: [{ say: 'La Carza. A maggio c\'è poca acqua: d\'estate si scendeva a fare le dighe coi sassi.' }], use: [{ say: 'Fare i ponti di sassi? Prima il palio. Poi le dighe.' }], }, }, { id: 'griglia', name: 'griglia', box: [346, 246, 40, 24], at: [366, 270], face: 'up', art: [{ rect: [364, 257, 5, 2], fill: '#f2f6ff', when: '!chiavetta_presa' }, { rect: [365, 256, 2, 1], fill: '#ffffff', when: '!chiavetta_presa' }], actions: { look: [{ if: 'chiavetta_presa', then: [{ say: 'La griglia. Ormai dentro ci sono solo foglie.' }], else: [{ say: 'Dentro la griglia luccica qualcosa: una chiavetta! È caduta fra le sbarre.' }] }], take: [{ if: 'chiavetta_presa', then: [{ say: 'Non c\'è più niente da prendere.' }], else: [{ say: 'Le dita non passano fra le sbarre. Ci vorrebbe qualcosa di lungo e sottile... e appiccicoso.' }] }], }, with: { stecco_gomma: [{ if: 'chiavetta_presa', then: [{ say: 'La chiavetta l\'ho già ripescata.' }], else: [{ say: 'Giù lo stecco, piano piano... la gomma tocca la chiavetta...' }, { say: 'Eccola, presa!' }, { give: 'chiavetta' }, { set: 'chiavetta_presa' }] }], stecco: [{ say: 'Lo stecco ci arriva, ma la chiavetta non si attacca. Serve qualcosa di appiccicoso in cima.' }], gomma: [{ say: 'La gomma da sola non ci arriva. Serve qualcosa per spingerla giù.' }], }, }, { id: 'tabernacolo', name: 'tabernacolo della Madonna', box: [442, 148, 36, 44], at: [458, 204], face: 'up', actions: { look: [{ say: 'Il piccolo tabernacolo in fondo al ponticino. C\'è sempre un fiore fresco, ma nessuno l\'ha mai visto metterlo.' }], }, }, { id: 'all_area_camper', name: 'a sinistra, verso le villette del Giannini', box: [320, 160, 110, 42], at: [442, 202], exit: { scene: 'area_camper', at: [600, 330], face: 'left' }, }, { // [DA ANDREA: dove si gira per Cardetole, in fondo al ponticino] id: 'a_cardetole', name: 'in fondo a destra, verso Cardetole', box: [578, 80, 62, 90], at: [476, 204], exit: { scene: 'cardetole', at: [628, 290], face: 'left' }, }, { id: 'alla_stazione', name: 'a destra, verso la stazione', box: [486, 160, 90, 40], at: [474, 202], exit: { scene: 'stazione', at: [20, 300], face: 'right' }, }, { id: 'alla_carza', name: 'indietro, verso la Pieve', box: [0, 330, 640, 30], at: [400, 354], exit: { scene: 'carza', at: [325, 222], face: 'down' }, }, ], }, area_camper: { // Le villette dove abita il Giannini: da qui si va al suo campo (Andrea, 28 ottobre). L'id resta area_camper. name: 'Le villette del Giannini', map: [70, 84], background: 'assets/scenes/area-camper.png', walk: [[0, 360], [0, 260], [200, 232], [380, 240], [450, 248], [640, 300], [640, 360]], depth: [[232, 0.5], [360, 1.15]], entry: [600, 330], hotspots: [ { id: 'panchina', name: 'panchina', box: [156, 190, 36, 20], at: [190, 242], face: 'up', actions: { look: [{ say: 'La panchina del parco. Ci si sedevano i camperisti a guardare le montagne, con la cartina al contrario.' }], }, }, { id: 'villette', name: 'villette', box: [500, 80, 140, 106], at: [560, 280], face: 'right', actions: { look: [{ say: 'Le villette rosa coi balconi bianchi. Da qui a casa mia è un attimo.' }], }, }, { // Casa è a destra, per la strada (Andrea, 28 ottobre). id: 'a_cardetole', name: 'verso casa, a Cardetole', box: [572, 188, 68, 96], at: [618, 300], exit: { scene: 'cardetole', at: [560, 348], face: 'up' }, }, { // Laggiù, in fondo al vialetto vicino alla siepe, il campo del Giannini (Andrea, 28 ottobre). id: 'al_giannini', name: 'laggiù, il campo del Giannini', box: [330, 150, 96, 74], at: [380, 246], exit: { scene: 'campo_giannini', at: [480, 216], face: 'left' }, }, { id: 'al_ponticino', name: 'indietro, il ponticino', box: [560, 300, 80, 60], at: [620, 330], exit: { scene: 'ponticino', at: [442, 202], face: 'down' }, }, ], }, // Il prato del parco dei camper visto dall'altra parte: per i ragazzi, «il campo del Giannini». Ci si arriva dal // lato delle villette dove abita il Giannini (fra gli alberi a destra) e dal Trappola; dal ponticino non si viene // qui. L'area camper è il campo stesso: i camper stanno qui dietro (Andrea, 28 ottobre). campo_giannini: { name: 'Il campo del Giannini', map: [82, 96], background: 'assets/scenes/campo-giannini.png', walk: [[0, 360], [0, 214], [300, 208], [460, 210], [640, 220], [640, 360]], depth: [[208, 0.4], [360, 1.15]], entry: [320, 350], hotspots: [ { id: 'porte', name: 'porte', box: [300, 180, 120, 30], at: [360, 216], face: 'up', actions: { look: [{ say: 'Il campo del Giannini. Qui si giocava a calcio fino a buio, con le porte grandi: roba da campionato.' }], use: [{ say: 'Senza pallone, e senza la squadra, non vale.' }], }, }, { id: 'camper', name: 'qui dietro, i camper', box: [520, 320, 120, 40], at: [560, 340], face: 'down', default: 'look', actions: { look: [{ say: 'Qui dietro ci stanno i camper. Ma per noi questo resta il campo del Giannini.' }], }, }, { id: 'giochi', name: 'giochi dei bambini', box: [220, 170, 80, 40], at: [260, 216], face: 'up', actions: { look: [{ say: 'Gli scivoli dei bambini. Una volta il pallone finiva lì una volta su tre.' }], }, }, { // Fra gli alberi a destra si arriva alle villette del Giannini, in fondo al vialetto (Andrea, 28 ottobre). id: 'all_area_camper', name: 'verso le villette del Giannini', box: [440, 150, 90, 60], at: [480, 216], exit: { scene: 'area_camper', at: [380, 246], face: 'down' }, }, { id: 'via_liguri_magelli', name: 'dal Trappola, in Via Liguri Magelli', box: [0, 100, 70, 260], at: [30, 260], exit: { scene: 'via_liguri_magelli', at: [520, 306], face: 'left' }, }, ], }, // Via Liguri Magelli (Street View mandato da Andrea, 28 ottobre): a sinistra dal campo del Giannini. A destra la // casa salmone con la tenda del Trappola (il Barrettino), sul muro giallo la targa della Ghiacciomobile con la sua // fotina, e in cima alla salita il Betino dell'Arcu (dipinto da Codex nel quadro), di traverso verso la discesa: // per partire ne ha bisogno, e intanto ferma il traffico. via_liguri_magelli: { name: 'Via Liguri Magelli', map: [76, 97], background: 'assets/scenes/via-liguri-magelli.png', // All'inizio la Ghiacciomobile è dentro il muro giallo, coi mattoni rotti (Codex, 29 ottobre); dal tramonto // (le impronte del Regolo) il muro è rifatto e c'è la sua targa (Andrea, 29 ottobre). backdrops: [{ when: '!indizio_regolo', src: 'assets/scenes/via-liguri-magelli-muro.png' }], // La strada gira intorno all'Audi nera parcheggiata davanti al Trappola. walk: [[0, 360], [0, 320], [140, 262], [226, 198], [272, 198], [300, 242], [370, 246], [400, 252], [580, 318], [640, 330], [640, 360]], // Le persone in proporzione con la Ghiacciomobile e l'Audi (Andrea, 29 ottobre: erano troppo piccole). depth: [[198, 0.4], [360, 2.4]], entry: [320, 340], speakers: { arcu: [374, 176], zio_mario: [440, 196] }, people: [ // L'Arcu sotto la tenda del Trappola: due minuti fa era a Campomigliaio (Andrea, 28 ottobre). // La macchina del tempo, dopo i pokerini dell'Arcu. { who: 'macchina', when: 'macchina_trappola', at: [200, 262], size: 1.1, idle: 'stand', talk: [] }, { who: 'arcu', at: [374, 248], facing: -1, size: 1.05, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.2 }, // Lo zio Mario davanti alla Ghiacciomobile nel muro, che si gratta la testa (sprite di Codex dalla sua foto, // 29 ottobre). Solo finché la macchina è lì. [DA ANDREA: le sue battute] { who: 'zio_mario', when: '!indizio_regolo', at: [440, 330], facing: 1, idle: 'think', talk: ['talk', 'explain', 'point'] }, ], hotspots: [ { id: 'arcu', name: 'l\'Arcu', box: [362, 180, 26, 68], at: [352, 256], face: 'right', default: 'talk', actions: { look: [{ say: 'L\'Arcu, sotto la tenda del Trappola. Due minuti fa era a Campomigliaio.' }], talk: [{ dialogue: 'arcu_trappola' }], }, }, { // «Vai dal Trappola, la tenda è il Trappola» (Andrea). [DA ANDREA: com'è dentro, e chi c'è] id: 'trappola', name: 'dal Trappola', box: [316, 150, 46, 46], at: [340, 252], face: 'right', default: 'walk', actions: { look: [{ say: 'La tenda è il Trappola: sotto c\'è il Barrettino.' }], walk: [{ say: 'Dal Trappola ci si passa dopo. Prima il palio.' }], }, }, { // «Di chi è quell'Audi lì?» «Let it be» (che si legge «L'è di Bi»: è di Bini). Andrea, 28 ottobre. id: 'audi', name: 'Audi nera', box: [292, 198, 68, 40], at: [330, 254], face: 'up', default: 'look', actions: { look: [{ say: 'Di chi è quell\'Audi lì?' }, { say: 'Let it be.', who: 'arcu', pose: 'explain' }], talk: [{ say: 'Di chi è quell\'Audi lì?' }, { say: 'Let it be.', who: 'arcu', pose: 'explain' }], use: [{ say: 'Non è mica mia. Mi garba, però, nera fiammante.' }], }, }, { id: 'targa', name: 'targa della Ghiacciomobile', box: [570, 130, 62, 78], at: [565, 336], face: 'right', default: 'look', when: 'indizio_regolo', actions: { look: [{ say: '«Qui riposa la Ghiacciomobile, che si è schiantata lì.»' }, { say: 'C\'è anche la fotina. Pareva sempre nuova.' }], }, }, { // La Ghiacciomobile nel muro (prima del tramonto). Le battute erano del circolino (Andrea, 26 ottobre); // [DA ANDREA] quella dello schianto. Parlandole, Andrea ricorda; lei non risponde. id: 'ghiacciomobile', name: 'la Ghiacciomobile', box: [462, 192, 140, 92], at: [440, 300], face: 'right', default: 'look', when: '!indizio_regolo', actions: { look: [{ say: 'La Ghiacciomobile nera, mezza dentro il muro. Hai visto cose che noi poveri umani non potremmo neppur lontanamente immaginare.' }], talk: [{ dialogue: 'ghiacciomobile' }], use: [{ say: 'Per tirarla fuori di lì ci vuole altro che le mie braccia.' }], }, }, { id: 'macchina_tempo', name: 'macchina del tempo', box: [150, 214, 104, 48], at: [212, 280], face: 'up', default: 'use', when: 'macchina_trappola', actions: { look: [{ say: 'La macchina del tempo, parcheggiata davanti al Trappola. Sul cruscotto la data è già pronta.' }], use: [{ say: 'Imposto: 10 luglio 1997, ore 18 e 30. Il pokerino da Vannino.' }, { say: 'Monto anch\'io: davanti, però.', who: 'arcu', pose: 'laugh' }, { closeup: 'viaggio' }], open: [{ say: 'Imposto: 10 luglio 1997, ore 18 e 30. Il pokerino da Vannino.' }, { say: 'Monto anch\'io: davanti, però.', who: 'arcu', pose: 'laugh' }, { closeup: 'viaggio' }], }, }, { // La prima battuta è di Andrea (dal circolino, 26 ottobre). id: 'betino', name: 'il Betino dell\'Arcu', box: [232, 172, 40, 24], at: [250, 206], face: 'up', default: 'look', actions: { look: [{ say: 'Nessuno ha mai capito davvero il tuo immenso valore.' }, { say: 'Lassù in cima, di traverso: per partire ha bisogno della discesa. E intanto ferma il traffico.' }], use: [{ say: 'È il Betino dell\'Arcu. Senza una discesa davanti, un si muove.' }], }, }, { // Casa di Andrea è lassù, in cima alla salita, a destra del Betino (Andrea, 28 ottobre). id: 'a_cardetole', name: 'lassù, verso casa a Cardetole', box: [274, 148, 40, 50], at: [264, 202], exit: { scene: 'cardetole', at: [20, 352], face: 'right' }, }, { // Il campo del Giannini è laggiù a destra, oltre la siepe (Andrea, 28 ottobre). id: 'al_giannini', name: 'verso il campo del Giannini', box: [404, 150, 160, 42], at: [520, 306], exit: { scene: 'campo_giannini', at: [60, 250], face: 'right' }, }, // In fondo all'elenco, così sta sopra all'uscita e alla siepe. { id: 'zio_mario', name: 'lo zio Mario', box: [418, 206, 46, 124], at: [362, 334], face: 'right', default: 'look', when: '!indizio_regolo', actions: { look: [{ say: 'Lo zio Mario. Guarda il muro, guarda la macchina, e si gratta la testa sotto il berretto.' }], // Il primo scambio con lo zio (Andrea, 29 ottobre). talk: [{ say: 'Zio, hai problemi?' }, { say: 'I problemi io gli avevo quando andavo a scuola!', who: 'zio_mario', pose: 'laugh' }], }, }, ], }, // Cardetole, il rione dei verdi, dove abita Andrea: giù dalla Pieve. cardetole: { name: 'Cardetole', map: [90, 84], background: 'assets/scenes/cardetole.png', walk: [[0, 360], [0, 344], [120, 332], [200, 304], [262, 292], [330, 292], [372, 296], [640, 266], [640, 360]], depth: [[266, 0.55], [360, 1.15]], entry: [300, 350], // Il Chiaru (Matteo Chiarusi) accanto alla pista col gesso, sul parcheggio sotto casa. speakers: { chiaru: [520, 214] }, people: [{ who: 'chiaru', at: [520, 318], facing: -1, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 3.7 }], hotspots: [ { id: 'parcheggio', name: 'parcheggio', box: [356, 262, 280, 60], at: [450, 330], face: 'right', actions: { look: [{ say: 'Il parcheggio sotto casa. Col gesso ci si disegnava la pista delle macchinine, e si giocava finché non chiamavano per cena.' }], }, }, { // Si sale in terrazza (Andrea, 29 ottobre). id: 'casa', name: 'casa di Andrea, su in terrazza', box: [330, 20, 220, 212], at: [470, 290], face: 'up', exit: { scene: 'terrazza', at: [300, 330], face: 'up' }, actions: { look: [{ say: 'Casa mia. Secondo piano: quella con la tapparella a metà è la camera di mia sorella, e a destra quella dei miei.' }], }, }, { id: 'platano', name: 'platano', box: [90, 0, 170, 206], at: [200, 306], face: 'up', actions: { look: [{ say: 'Il prato sotto casa. Qui le porte le facevamo con le maglie per terra: due maglie, un palo ciascuna.' }, { say: 'E ogni gol era «Era fuori!», «No, era dentro!».' }], use: [{ say: 'Arrampicarmi? Alla mia età, e davanti a tutto il condominio?' }], }, }, { // Il prato in salita sotto casa: le parole sono di Andrea (28 ottobre). id: 'prato', name: 'prato', box: [52, 208, 278, 76], at: [262, 300], face: 'up', default: 'look', actions: { look: [ { say: 'Su questo campo ci abbiamo passato trentacinque anni, giorno, pomeriggio e sera, a giocare a calcio.' }, { say: 'Le maglie a fare da pali, e i palloni tagliati che entravano nelle terrazze, ovunque.' }, ], }, }, // Le uscite di casa (Andrea, 28 ottobre): in basso a destra il Giannini (le sue villette, dalla strada delle // villette), a destra il ponticino della Carza, a sinistra il Trappola. { id: 'al_giannini', name: 'dal Giannini', box: [440, 322, 200, 38], at: [560, 348], exit: { scene: 'area_camper', at: [618, 300], face: 'left' }, }, { id: 'al_ponticino', name: 'a destra, il ponticino della Carza', box: [596, 150, 44, 110], at: [628, 290], exit: { scene: 'ponticino', at: [476, 204], face: 'down' }, }, { id: 'al_trappola', name: 'a sinistra, dal Trappola', box: [0, 236, 50, 104], at: [20, 352], exit: { scene: 'via_liguri_magelli', at: [264, 202], face: 'down' }, }, // In fondo all'elenco, così sta sopra a parcheggio e casa: il clic sul Chiaru è suo (l'ultimo della lista vince). { id: 'chiaru', name: 'il Chiaru', box: [498, 212, 46, 106], at: [470, 330], face: 'right', default: 'talk', actions: { look: [{ say: 'Il Chiaru, con le ginocchia bianche di gesso e una Formula 1 blu in mano.' }], talk: [{ dialogue: 'chiaru' }], }, }, ], }, // Il terrazzo di casa a Cardetole: la vista dalla finestra di Andrea (foto sua, 29 ottobre), il paese che sale e // lassù la Fortezza. Codex l'ha dipinta dalla foto e ci ha messo il terrazzo davanti. [DA ANDREA: le battute] terrazza: { name: 'Il terrazzo di casa', map: [92, 81], background: 'assets/scenes/terrazza-cardetole.png', walk: [[120, 298], [500, 298], [560, 330], [604, 360], [60, 360], [100, 322]], depth: [[290, 1.8], [360, 2.3]], entry: [300, 330], enter: [{ if: '!terrazza_vista', then: [{ say: 'La vista di casa. Da qui si vede mezzo paese, e lassù la Fortezza.' }, { set: 'terrazza_vista' }] }], hotspots: [ { id: 'fortezza', name: 'la Fortezza, lassù', box: [176, 44, 52, 30], at: [220, 304], face: 'up', actions: { look: [{ say: 'Lassù in cima, fra gli alberi, la Fortezza. Da qui pare piccina.' }] }, }, { id: 'paese', name: 'il paese', box: [196, 96, 220, 60], at: [300, 304], face: 'up', actions: { look: [{ say: 'Il paese che sale verso la collina, coi tetti uno sull\'altro e il campanile in mezzo.' }] }, }, { id: 'palazzo', name: 'il palazzo accanto', box: [504, 54, 136, 140], at: [470, 304], face: 'up', actions: { look: [{ say: 'Il palazzo accanto, di mattoni come il nostro.' }] }, }, { id: 'gerani', name: 'gerani', box: [500, 226, 100, 94], at: [480, 330], face: 'right', actions: { look: [{ say: 'I gerani. Guai a chi li tocca.' }], take: [{ say: 'Se ne strappo uno, il palio lo guardo dal letto.' }] }, }, { id: 'edera', name: 'edera', box: [54, 176, 136, 134], at: [150, 330], face: 'left', actions: { look: [{ say: 'L\'edera nel vaso: cresce da sola, e si arrampica dove le pare.' }] }, }, { id: 'sedia', name: 'sedia di plastica', box: [592, 208, 48, 116], at: [560, 340], face: 'right', actions: { look: [{ say: 'Una sedia di plastica, piegata.' }], use: [{ say: 'Sedermi qui a guardare il paese? Prima il palio.' }] }, }, { id: 'in_casa', name: 'dentro casa', box: [0, 0, 54, 340], at: [112, 340], face: 'left', actions: { look: [{ say: 'La porta-finestra di casa, con la tapparella a metà.' }], walk: [{ say: 'Se rientro, mi mettono ad apparecchiare. Prima il palio.' }], open: [{ say: 'Se rientro, mi mettono ad apparecchiare. Prima il palio.' }], }, }, { id: 'giu_cardetole', name: 'giù, sotto casa', box: [120, 340, 400, 20], at: [300, 352], exit: { scene: 'cardetole', at: [470, 290], face: 'down' }, }, ], }, // Via della Compagnia (foto di Andrea, 29 ottobre): la strada che sale dalla Pieve verso la Fortezza. Alle spalle // Via de' Medici, a sinistra l'arco che scende alla Pieve, a destra si sale a Villa Adami. [DA ANDREA: le battute] via_compagnia: { name: 'Via della Compagnia', map: [34, 30], background: 'assets/scenes/via-della-compagnia.png', walk: [[0, 360], [0, 318], [88, 306], [200, 292], [250, 290], [330, 272], [420, 254], [446, 248], [460, 262], [540, 360]], depth: [[248, 0.55], [360, 1.3]], entry: [300, 350], hotspots: [ { id: 'stemma', name: 'stemma di pietra', box: [358, 160, 22, 18], at: [370, 266], face: 'up', actions: { look: [{ say: 'Un piccolo stemma di pietra sul muro. Chissà di chi era, questa casa, un tempo.' }] }, }, { id: 'lampione', name: 'lampione', box: [102, 90, 26, 36], at: [150, 306], face: 'up', actions: { look: [{ say: 'Il lampione di ferro, attaccato al muro. La sera fa una luce gialla che pare d\'altri tempi.' }] }, }, { // L'arco porta al forno; alla Pieve si scende fra le due case gialle (Andrea, 29 ottobre). id: 'arco_forno', name: 'sotto l\'arco, giù al forno', box: [198, 222, 50, 66], at: [222, 296], exit: { scene: 'forno', at: [320, 350], face: 'up' }, }, { id: 'alla_pieve', name: 'fra le case gialle, giù alla Pieve', box: [80, 196, 40, 100], at: [94, 316], exit: { scene: 'pieve', at: [600, 350], face: 'left' }, }, { id: 'su_villa_adami', name: 'su verso Villa Adami', box: [420, 196, 42, 56], at: [440, 258], exit: { scene: 'villa_adami', at: [600, 266], face: 'left' }, }, { id: 'giu_medici', name: 'giù per Via de\' Medici', box: [0, 336, 540, 24], at: [300, 352], exit: { scene: 'via_de_medici', at: [300, 216], face: 'down' }, }, ], }, // Via Cafaggio (foto di Andrea, 29 ottobre): scendendo dalla salita di Villa Adami (alle spalle), a sinistra il // cancello della scuola con la palestra dal tetto a denti, dritto Via Cafaggio, lassù Monte Cacioli con le antenne. // [DA ANDREA: le battute] via_cafaggio: { name: 'Via Cafaggio', map: [26, 17], background: 'assets/scenes/via-cafaggio.png', walk: [[0, 360], [0, 346], [160, 318], [300, 268], [345, 258], [400, 240], [470, 208], [500, 188], [515, 188], [530, 230], [555, 300], [565, 360]], depth: [[188, 0.3], [360, 1.4]], entry: [300, 350], hotspots: [ { id: 'palestra', name: 'palestra della scuola', box: [20, 165, 250, 60], at: [200, 324], face: 'up', actions: { look: [{ say: 'La palestra della scuola, col tetto a denti di sega.' }] }, }, { id: 'monte_cacioli', name: 'Monte Cacioli', box: [230, 86, 170, 56], at: [300, 300], face: 'up', actions: { look: [{ say: 'Lassù Monte Cacioli, con le antenne in cima.' }] }, }, { id: 'giu_cafaggio', name: 'dritto, giù per Via Cafaggio', box: [486, 166, 46, 36], at: [507, 192], exit: { scene: 'via_cafaggio_fondo', at: [300, 350], face: 'up' }, }, { id: 'cancello', name: 'cancello della palestra', box: [298, 188, 52, 70], at: [322, 268], face: 'up', actions: { look: [{ say: 'Il cancello della palestra. Per la scuola si passa dalla stradina più in là.' }], open: [{ say: 'Chiuso. Per la scuola si passa dalla stradina più in là.' }] }, }, { // Alla scuola non si passa dal cancello ma dalla stradina subito dopo (Andrea, 29 ottobre). id: 'alla_scuola', name: 'la stradina della scuola', box: [380, 172, 50, 32], at: [410, 246], exit: { scene: 'scuola', at: [128, 340], face: 'right' }, }, { id: 'su_villa', name: 'su, verso Villa Adami', box: [0, 336, 280, 24], at: [150, 352], exit: { scene: 'villa_adami', at: [498, 345], face: 'up' }, }, { id: 'su_salita', name: 'su per la salita, verso la Fortezza', box: [280, 336, 280, 24], at: [400, 352], exit: { scene: 'salita_villa_adami', at: [40, 336], face: 'right' }, }, ], }, // Via Cafaggio più giù (foto di Andrea, 29 ottobre): dritta fra le case, verso la Provinciale. [DA ANDREA: battute] via_cafaggio_fondo: { name: 'Via Cafaggio', map: [44, 40], background: 'assets/scenes/via-cafaggio-fondo.png', walk: [[60, 360], [150, 300], [260, 240], [340, 196], [368, 176], [386, 176], [400, 200], [420, 262], [470, 282], [640, 318], [640, 360]], depth: [[176, 0.3], [360, 1.4]], entry: [300, 350], hotspots: [ { id: 'siepe', name: 'siepe', box: [400, 0, 240, 260], at: [430, 290], face: 'right', actions: { look: [{ say: 'Una siepe alta come una casa, e l\'edera che si mangia il muro.' }] }, }, { id: 'villette', name: 'villette', box: [0, 30, 200, 130], at: [200, 300], face: 'left', actions: { look: [{ say: 'Le villette col giardino e il muretto: qui è tutto in ordine.' }] }, }, { id: 'avanti_cafaggio', name: 'avanti per Via Cafaggio', box: [350, 150, 56, 34], at: [377, 180], exit: { scene: 'via_cafaggio_avanti', at: [300, 350], face: 'up' }, }, { id: 'su_cafaggio', name: 'indietro, su per Via Cafaggio', box: [0, 336, 640, 24], at: [300, 352], exit: { scene: 'via_cafaggio', at: [507, 192], face: 'down' }, }, ], }, // Via Cafaggio, ancora avanti (foto di Andrea, 29 ottobre: Codex ha ricostruito il pezzo coperto dal dito). via_cafaggio_avanti: { name: 'Via Cafaggio, verso la rotonda', map: [56, 58], background: 'assets/scenes/via-cafaggio-avanti.png', walk: [[0, 360], [0, 330], [110, 268], [230, 190], [248, 176], [272, 176], [300, 200], [360, 262], [440, 330], [460, 360]], depth: [[176, 0.3], [360, 1.4]], entry: [300, 350], hotspots: [ { id: 'villa_archi', name: 'villa con gli archi', box: [470, 40, 170, 90], at: [380, 300], face: 'right', actions: { look: [{ say: 'Una villa con gli archi dietro la siepe. Qui le siepi le tosano col righello.' }] }, }, { id: 'alla_rotonda', name: 'in fondo, alla rotonda della Provinciale', box: [236, 158, 50, 34], at: [260, 180], exit: { scene: 'rotonda_cafaggio', at: [390, 352], face: 'up' }, }, { id: 'su_cafaggio', name: 'indietro, su per Via Cafaggio', box: [0, 336, 460, 24], at: [300, 352], exit: { scene: 'via_cafaggio_fondo', at: [377, 180], face: 'down' }, }, ], }, // In fondo a Via Cafaggio, la rotonda sulla Provinciale (foto di Andrea, 29 ottobre): a sinistra il viale // alberato, dritto verso La Luna, lungo la Carza. rotonda_cafaggio: { name: 'La rotonda in fondo a Via Cafaggio', map: [64, 66], background: 'assets/scenes/rotonda-cafaggio.png', walk: [[180, 360], [230, 320], [300, 290], [330, 262], [0, 252], [0, 238], [360, 236], [520, 224], [560, 224], [590, 300], [600, 360]], depth: [[224, 0.4], [360, 1.35]], entry: [390, 352], hotspots: [ { id: 'cipresso', name: 'cipresso', box: [146, 0, 64, 250], at: [300, 292], face: 'left', actions: { look: [{ say: 'Un cipresso dritto come un fuso, in mezzo all\'aiuola.' }] }, }, { id: 'panchina', name: 'panchina', box: [68, 252, 110, 40], at: [260, 336], face: 'left', actions: { look: [{ say: 'Una panchina all\'ombra.' }], use: [{ say: 'Sedersi ora? Prima il palio.' }] }, }, { id: 'palazzo_rosso', name: 'palazzo di mattoni', box: [204, 136, 146, 88], at: [360, 240], face: 'up', actions: { look: [{ say: 'Il palazzo di mattoni coi negozi sotto, di là dalla Provinciale.' }] }, }, { id: 'al_viale', name: 'a sinistra, il viale alberato', box: [0, 222, 60, 40], at: [20, 245], exit: { scene: 'provinciale_viale', at: [435, 238], face: 'down' }, }, { id: 'verso_luna', name: 'dritto, lungo la Provinciale verso La Luna', box: [500, 204, 60, 30], at: [540, 226], exit: { scene: 'provinciale_luna', at: [330, 198], face: 'down' }, }, { id: 'su_cafaggio', name: 'indietro, su per Via Cafaggio', box: [180, 336, 420, 24], at: [390, 352], exit: { scene: 'via_cafaggio_avanti', at: [260, 180], face: 'down' }, }, ], }, // La Provinciale fra La Luna (alle spalle) e la rotonda di Via Cafaggio (davanti); a destra, fra i platani, la // passeggiata sulla Carza (foto di Andrea, 29 ottobre). [DA ANDREA: le battute] provinciale_luna: { name: 'La Provinciale, sotto i platani', map: [65, 70], background: 'assets/scenes/provinciale-luna.png', walk: [[0, 360], [0, 262], [150, 222], [290, 200], [380, 192], [420, 192], [470, 200], [505, 240], [510, 268], [400, 268], [390, 360]], depth: [[190, 0.35], [360, 1.4]], entry: [200, 352], hotspots: [ { id: 'platani', name: 'platani', box: [530, 0, 110, 360], at: [470, 262], face: 'right', actions: { look: [{ say: 'I platani della Provinciale: d\'estate fanno un\'ombra che pare una galleria.' }] }, }, { id: 'villette', name: 'villette', box: [0, 70, 250, 110], at: [150, 300], face: 'left', actions: { look: [{ say: 'Le villette sotto il bosco, coi giardini curati.' }] }, }, { id: 'alla_rotonda', name: 'avanti, alla rotonda di Via Cafaggio', box: [290, 176, 90, 24], at: [330, 198], exit: { scene: 'rotonda_cafaggio', at: [540, 226], face: 'left' }, }, { id: 'alla_passeggiata', name: 'a destra, la passeggiata sulla Carza', box: [462, 186, 48, 44], at: [480, 232], exit: { scene: 'passeggiata_carza', at: [330, 352], face: 'up' }, }, { id: 'alla_luna', name: 'indietro, verso La Luna', box: [0, 336, 390, 24], at: [200, 352], exit: { scene: 'verso_luna', at: [150, 206], face: 'down' }, }, ], }, // La passeggiata sulla Carza (foto di Andrea, 29 ottobre): il prato, il greto e la cascatella che si vede dalla // Luna. [DA ANDREA: le battute] passeggiata_carza: { name: 'La passeggiata sulla Carza', map: [70, 76], background: 'assets/scenes/passeggiata-carza.png', walk: [[0, 360], [0, 300], [190, 300], [230, 270], [330, 235], [420, 200], [540, 195], [560, 260], [520, 300], [540, 360]], depth: [[195, 0.45], [360, 1.35]], entry: [330, 352], hotspots: [ { id: 'cascata', name: 'la cascatella', box: [288, 172, 84, 36], at: [330, 246], face: 'left', actions: { look: [{ say: 'La cascatella della Carza: quella che si vede anche dalla Luna.' }, { say: 'D\'estate si veniva a rinfrescare i piedi qui sotto.' }] }, }, { id: 'greto', name: 'greto della Carza', box: [150, 186, 150, 70], at: [230, 280], face: 'left', actions: { look: [{ say: 'Il greto pieno di sassi. Dighe, ponti, pesci immaginari: qui ci si passava l\'estate.' }] }, }, { id: 'lampione', name: 'lampione', box: [504, 70, 26, 186], at: [480, 270], face: 'right', actions: { look: [{ say: 'Un lampione in mezzo al prato. Di sera la passeggiata la fanno le zanzare.' }] }, }, { // Il sentiero va avanti a sinistra, dietro il grande albero (Andrea, 29 ottobre). id: 'avanti_carza', name: 'avanti, lungo la Carza', box: [0, 200, 50, 130], at: [20, 330], exit: { scene: 'passeggiata_carza_avanti', at: [300, 352], face: 'up' }, }, { id: 'alla_provinciale', name: 'indietro, sulla Provinciale', box: [180, 336, 360, 24], at: [330, 352], exit: { scene: 'provinciale_luna', at: [480, 232], face: 'left' }, }, ], }, // La passeggiata sulla Carza più avanti (foto di Andrea, 29 ottobre): il ponticino, gli orti, il greto. // [DA ANDREA: le battute] passeggiata_carza_avanti: { name: 'La passeggiata sulla Carza, gli orti', map: [74, 80], background: 'assets/scenes/passeggiata-carza-avanti.png', walk: [[0, 360], [0, 300], [180, 236], [262, 186], [300, 186], [350, 222], [470, 262], [560, 300], [600, 360]], depth: [[186, 0.4], [360, 1.4]], entry: [300, 352], hotspots: [ { id: 'orti', name: 'orti', box: [0, 150, 220, 130], at: [150, 310], face: 'left', actions: { look: [{ say: 'Gli orti con la rete: cavoli, insalata e i fagioli sulle canne.' }], take: [{ say: 'Un cavolo dall\'orto di qualcun altro? Poi chi lo sente.' }] }, }, { id: 'ponticino', name: 'ponticino', box: [280, 182, 72, 40], at: [316, 232], face: 'up', actions: { look: [{ say: 'Un ponticino di ferro sul fosso. Due passi e sei di là.' }] }, }, { id: 'greto', name: 'greto della Carza', box: [470, 210, 170, 126], at: [520, 300], face: 'right', actions: { look: [{ say: 'Il greto bianco della Carza, con un filo d\'acqua in mezzo ai sassi.' }] }, }, { id: 'in_fondo', name: 'avanti, lungo la Carza', box: [252, 146, 56, 34], at: [282, 190], exit: { scene: 'passeggiata_poste', at: [250, 352], face: 'up' }, }, { id: 'indietro', name: 'indietro, verso la cascatella', box: [0, 336, 600, 24], at: [300, 352], exit: { scene: 'passeggiata_carza', at: [20, 330], face: 'right' }, }, ], }, // La passeggiata sulla Carza, dietro le case (foto di Andrea, 29 ottobre): a sinistra si va al campone delle poste, // dritto si continua verso il ponte delle poste. [DA ANDREA: le battute] passeggiata_poste: { name: 'La passeggiata sulla Carza, dietro le poste', map: [16, 64], background: 'assets/scenes/passeggiata-carza-poste.png', walk: [[90, 360], [180, 300], [260, 250], [300, 224], [318, 224], [330, 250], [350, 300], [420, 360]], depth: [[224, 0.45], [360, 1.4]], entry: [250, 352], hotspots: [ { id: 'casa', name: 'casa con la siepe', box: [0, 0, 150, 170], at: [150, 330], face: 'left', actions: { look: [{ say: 'Una casa con la siepe rossa davanti. Da quel balcone si vede tutta la Carza.' }] }, }, { id: 'carza', name: 'la Carza', box: [440, 230, 200, 130], at: [370, 320], face: 'right', actions: { look: [{ say: 'La Carza sotto il muretto, con le canne dritte nell\'acqua e il muro vecchio di sassi.' }] }, }, { id: 'al_campone', name: 'a sinistra, il campone delle poste', box: [226, 196, 48, 40], at: [280, 240], exit: { scene: 'giardini_poste', at: [600, 250], face: 'left' }, }, { id: 'avanti', name: 'avanti, verso il ponte delle poste', box: [286, 196, 52, 30], at: [310, 226], exit: { scene: 'passeggiata_ponte', at: [225, 352], face: 'up' }, }, { id: 'indietro', name: 'indietro, verso gli orti', box: [90, 336, 330, 24], at: [250, 352], exit: { scene: 'passeggiata_carza_avanti', at: [282, 190], face: 'down' }, }, ], }, // L'ultimo pezzo della passeggiata sulla Carza (foto di Andrea, 29 ottobre): gli orti a sinistra, la Carza a destra, // in fondo il ponte che collega le poste alla stazione. [DA ANDREA: le battute] passeggiata_ponte: { name: 'La passeggiata sulla Carza, verso il ponte', map: [14, 70], background: 'assets/scenes/passeggiata-carza-ponte.png', walk: [[150, 360], [200, 290], [226, 200], [242, 200], [260, 280], [300, 360]], depth: [[200, 0.4], [360, 1.4]], entry: [225, 352], hotspots: [ { id: 'orti', name: 'orti', box: [0, 140, 170, 180], at: [190, 320], face: 'left', actions: { look: [{ say: 'Gli orti fatti coi bancali e le cassette, il bidone blu per l\'acqua. Ognuno a modo suo.' }] }, }, { id: 'carza', name: 'la Carza', box: [450, 210, 190, 150], at: [270, 330], face: 'right', actions: { look: [{ say: 'Qui la Carza ha un po\' d\'acqua chiara fra i sassi bianchi.' }] }, }, { id: 'al_ponte', name: 'avanti, al ponte delle poste', box: [212, 168, 46, 36], at: [234, 204], exit: { scene: 'ponte_stazione', at: [300, 352], face: 'up' }, }, { id: 'indietro', name: 'indietro, dietro le poste', box: [150, 336, 150, 24], at: [225, 352], exit: { scene: 'passeggiata_poste', at: [310, 226], face: 'down' }, }, ], }, // In fondo alla passeggiata sulla Carza, sotto il ponte ad archi che collega le poste alla stazione (foto di Andrea, // 29 ottobre): il viottolo a sinistra sale sul ponte. [DA ANDREA: le battute] ponte_stazione: { name: 'Sotto il ponte delle poste', map: [12, 75], background: 'assets/scenes/ponte-carza-stazione.png', walk: [[0, 360], [0, 320], [60, 290], [120, 240], [150, 190], [168, 190], [200, 240], [300, 232], [420, 236], [520, 280], [640, 300], [640, 360]], depth: [[190, 0.4], [360, 1.35]], entry: [300, 352], hotspots: [ { id: 'ponte', name: 'il ponte ad archi', box: [190, 124, 200, 90], at: [300, 240], face: 'up', actions: { look: [{ say: 'Il ponte delle poste, coi suoi tre archi di mattoni: da sotto pare più vecchio del paese.' }] }, }, { id: 'orti', name: 'orti', box: [0, 180, 120, 90], at: [80, 300], face: 'left', actions: { look: [{ say: 'Altri orti, coi cavoli grossi come palloni.' }] }, }, { id: 'carza', name: 'la Carza', box: [440, 210, 200, 90], at: [460, 262], face: 'right', actions: { look: [{ say: 'La Carza passa sotto gli archi e se ne va verso la Sieve.' }] }, }, { // Il viottolo passa sotto l'arco e va avanti lungo la Carza; alla stazione si sale dalla parte destra del ponte // (Andrea, 29 ottobre). id: 'avanti_carza', name: 'avanti per il viottolo, sotto il ponte', box: [136, 158, 46, 34], at: [158, 192], exit: { scene: 'orti_zio_mario', at: [400, 352], face: 'up' }, }, { id: 'su_ponte', name: 'su sul ponte, alla stazione', box: [410, 86, 100, 60], at: [440, 252], exit: { scene: 'stazione', at: [620, 320], face: 'left' }, }, { id: 'indietro', name: 'indietro lungo la Carza', box: [0, 336, 640, 24], at: [300, 352], exit: { scene: 'passeggiata_ponte', at: [234, 204], face: 'down' }, }, ], }, // Oltre il ponte delle poste, lungo la Carza (foto di Andrea, 29 ottobre): la casa gialla al sole è quella dello zio // Mario, e sotto ci sono i suoi orti. In fondo la passerella. [DA ANDREA: le battute] orti_zio_mario: { name: 'Gli orti dello zio Mario', map: [8, 82], background: 'assets/scenes/orti-zio-mario.png', walk: [[150, 360], [300, 250], [280, 236], [340, 236], [420, 248], [640, 330], [640, 360]], depth: [[236, 0.45], [360, 1.35]], entry: [400, 352], hotspots: [ { id: 'casa_zio', name: 'casa dello zio Mario', box: [80, 90, 200, 90], at: [260, 290], face: 'left', actions: { look: [{ say: 'La casa dello zio Mario, quella gialla al sole.' }] }, }, { id: 'orti', name: 'gli orti dello zio Mario', box: [0, 180, 250, 170], at: [205, 330], face: 'left', actions: { look: [{ say: 'Gli orti dello zio Mario: pomodori sulle canne, insalata, cavoli. Tutto in fila come soldati.' }], take: [{ say: 'Un pomodoro dell\'orto dello zio? Se se ne accorge, e se ne accorge, son dolori.' }], }, }, { id: 'passerella', name: 'la passerella sulla Carza', box: [384, 186, 70, 30], at: [410, 252], face: 'up', actions: { look: [{ say: 'Laggiù la passerella coperta sulla Carza.' }], walk: [{ say: 'Di là ci passo un\'altra volta: prima il palio.' }] }, }, { id: 'indietro', name: 'indietro, verso il ponte delle poste', box: [150, 336, 490, 24], at: [400, 352], exit: { scene: 'ponte_stazione', at: [158, 192], face: 'down' }, }, ], }, // La strada fra il bivio della Provinciale (alle spalle) e la stazione (in fondo); a destra si va al campone delle // poste (foto di Andrea, 29 ottobre). [DA ANDREA: le battute] viale_stazione: { name: 'Verso la stazione', map: [20, 52], background: 'assets/scenes/viale-stazione.png', walk: [[30, 360], [230, 280], [320, 240], [330, 228], [360, 228], [400, 250], [440, 262], [600, 268], [640, 290], [640, 360]], depth: [[228, 0.35], [360, 1.4]], entry: [300, 352], hotspots: [ { id: 'case', name: 'case coi balconi fioriti', box: [0, 0, 230, 270], at: [200, 320], face: 'left', actions: { look: [{ say: 'Le case coi balconi pieni di vasi: qui ogni finestra è un giardino.' }] }, }, { id: 'palazzo', name: 'palazzo di mattoni', box: [450, 20, 190, 220], at: [520, 280], face: 'right', actions: { look: [{ say: 'Il palazzo di mattoni e intonaco, coi balconi in fila.' }] }, }, { id: 'alla_stazione', name: 'avanti, la stazione', box: [320, 196, 50, 36], at: [340, 236], exit: { scene: 'stazione', at: [320, 350], face: 'up' }, }, { id: 'al_campone', name: 'a destra, il campone delle poste', box: [590, 240, 50, 60], at: [620, 280], exit: { scene: 'giardini_poste', at: [300, 352], face: 'up' }, }, { id: 'al_bivio', name: 'indietro, al bivio della Provinciale', box: [30, 336, 610, 24], at: [300, 352], exit: { scene: 'bivio_provinciale', at: [580, 345], face: 'left' }, }, ], }, // Il Barrettino il 10 luglio 1997 alle 18:30 (Andrea, 29 ottobre; l'interno è una proposta di Codex, [DA ANDREA]): // Vannino e Pierino Parigi con la tavola apparecchiata da poker. Si torna nel 2007 dalla porta. barrettino_1997: { name: 'Il Barrettino, 10 luglio 1997', // Ci si arriva solo con la macchina del tempo: niente mappa, niente strade (la porta riporta nel 2007). viaggio: true, // Il pulsante «Torna al 2007», sempre lì in alto: per uscire da quel tempo senza cercare la porta (Andrea, 29 ottobre). back: { label: 'Torna al 2007', actions: RITORNO_2007 }, background: 'assets/scenes/barrettino-1997.png', indoor: true, walk: [[0, 360], [0, 300], [110, 282], [540, 282], [640, 300], [640, 360]], depth: [[282, 2.1], [360, 2.6]], entry: [320, 330], enter: [{ if: '!visto_1997', then: [{ set: 'visto_1997' }, { say: 'Il Barrettino. Nel 1997. Si sente ancora l\'odore del caffè e delle sigarette.' }] }], speakers: { vannino: [160, 120], pierino_parigi: [470, 120], arcu: [580, 130] }, people: [ { who: 'vannino', at: [160, 300], facing: 1, size: 1, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.1 }, { who: 'pierino_parigi', at: [470, 300], facing: -1, size: 1, idle: 'cards', talk: ['talk', 'explain'], blink: 'blink', every: 3.6 }, // L'Arcu è venuto con me, a guardare la partita (Andrea, 29 ottobre). [DA ANDREA: le battute] { who: 'arcu', at: [585, 318], facing: -1, size: 1.05, idle: 'stand', talk: ['talk', 'explain'], blink: 'blink', every: 4.2 }, ], hotspots: [ { id: 'tavola', name: 'la tavola da poker', box: [236, 186, 150, 70], at: [320, 300], face: 'up', default: 'talk', actions: { look: [{ say: 'Il panno verde, le fiches in pila, il mazzo e il posacenere pieno. Una sedia è vuota: è per me.' }], talk: [{ dialogue: 'pokerino' }], use: [{ dialogue: 'pokerino' }], }, }, { id: 'vannino', name: 'Vannino', box: [130, 160, 60, 140], at: [220, 320], face: 'left', default: 'talk', actions: { look: [{ say: 'Vannino, alto e secco, col canovaccio sulla spalla. E quella fossetta nel mento.' }], talk: [{ dialogue: 'pokerino' }] }, }, { id: 'pierino', name: 'Pierino', box: [440, 160, 60, 140], at: [410, 320], face: 'right', default: 'talk', actions: { look: [{ say: 'Pierino Parigi, con gli occhiali sul naso, che guarda le carte come se lo tradissero.' }], talk: [{ dialogue: 'pokerino' }] }, }, { id: 'arcu', name: 'l\'Arcu', box: [566, 170, 40, 150], at: [540, 320], face: 'right', default: 'talk', actions: { look: [{ say: 'L\'Arcu, venuto con me nel 1997. Guarda le carte di tutti e non dice nulla. Per ora.' }], talk: [ { say: 'Arcu, tu non giochi?' }, { say: 'Io guardo. Chi guarda un perde mai.', who: 'arcu', pose: 'explain' }, { say: 'E quando vuoi si torna: la macchina è fuori, basta dirlo.', who: 'arcu', pose: 'talk' }, ], }, }, { id: 'televisore', name: 'televisore', box: [440, 20, 60, 50], at: [480, 300], face: 'up', actions: { look: [{ say: 'Il televisore a tubo. È il 1997: niente smartphone, solo il televideo.' }] }, }, { id: 'porta', name: 'la porta: si torna nel 2007', box: [70, 30, 70, 230], at: [120, 300], face: 'left', default: 'walk', actions: { look: [{ say: 'Fuori c\'è la sera del 1997. E parcheggiata lì, la macchina del tempo.' }], walk: RITORNO_2007, open: RITORNO_2007, }, }, ], }, // L'ingresso della scuola, giù per la strada dalla salita di Villa Adami: dal cancello alle porte a vetri. scuola: { name: 'La scuola', map: [14, 19], background: 'assets/scenes/scuola.png', // Il tricolore che sventola in cima all'asta. effects: [{ type: 'birds', phase: ['pomeriggio', 'tramonto'], area: [150, 30, 400, 70] }, { type: 'clouds', area: [130, 10, 380, 100], count: 3 }, { type: 'flag', at: [122, 117], w: 13, h: 9, colors: ['#2f9a4a', '#f4f1e8', '#d2393a'] }], walk: [[110, 360], [118, 226], [140, 222], [268, 220], [290, 232], [470, 330], [620, 300], [640, 300], [640, 360]], depth: [[220, 0.42], [360, 1.32]], entry: [300, 350], hotspots: [ { id: 'pino', name: 'pino', box: [222, 40, 120, 70], at: [250, 232], face: 'up', actions: { look: [{ say: 'Un pino a ombrello enorme. Alla ricreazione, tutti all\'ombra lì sotto. Sembra ieri.' }], }, }, { id: 'bandiere', name: 'bandiere', box: [110, 110, 170, 52], at: [200, 230], face: 'up', actions: { look: [{ say: 'Il tricolore e la bandiera europea. Almeno loro a scuola ci stanno volentieri.' }], take: [{ say: 'Rubare una bandiera davanti alla scuola? Ci manca solo che mi richiamino in presidenza, a ventisette anni.' }], }, }, { id: 'porte', name: 'porte della scuola', box: [130, 164, 136, 56], at: [200, 230], face: 'up', actions: { look: [{ say: 'Le porte a vetri della scuola. Di là ci sono i banchi, la lavagna e la campanella.' }, { say: 'E fino a ieri c\'era anche il palio: lo tenevano qui. Stamani la Gianna ha trovato il posto vuoto.' }], open: [{ say: 'Chiuse. E la Gianna stamani ha già guardato in ogni aula e in ogni armadio: qui il palio non c\'è più.' }, { say: 'Chi l\'ha preso è passato dal paese. In piazza qualcuno avrà visto qualcosa.' }], walk: [{ say: 'Chiuse. E la Gianna stamani ha già guardato in ogni aula e in ogni armadio: qui il palio non c\'è più.' }, { say: 'Chi l\'ha preso è passato dal paese. In piazza qualcuno avrà visto qualcosa.' }], }, }, { id: 'palazzine', name: 'palazzine gialle', box: [340, 30, 300, 196], at: [330, 262], face: 'right', actions: { look: [{ say: 'Le palazzine gialle accanto alla scuola, con la scala arancione.' }, { say: 'Da lassù la ricreazione si vede tutta.' }], }, }, { id: 'al_bivio', name: 'a destra, verso la Provinciale', box: [584, 220, 56, 120], at: [600, 320], exit: { scene: 'bivio_provinciale', at: [208, 226], face: 'right' }, }, { id: 'alla_salita', name: 'a sinistra, dal cancello verso Via Cafaggio', box: [0, 240, 130, 120], at: [128, 340], exit: { scene: 'via_cafaggio', at: [410, 246], face: 'down' }, }, ], }, // Il viale dei cipressi, la strada bianca tra la Fortezza e il Trebbio: in fondo c'è il castello. viale_cipressi: { name: 'Viale dei cipressi', map: [60, 6], background: 'assets/scenes/viale-cipressi.png', effects: [{ type: 'clouds', area: [230, 10, 140, 120], count: 2 }, { type: 'sway', rects: [[322, 58, 30, 150], [346, 8, 32, 190], [312, 108, 18, 110], [244, 118, 26, 100]] }], walk: [[30, 360], [200, 300], [288, 252], [312, 250], [420, 300], [600, 360]], depth: [[250, 0.16], [360, 1.2]], entry: [300, 350], hotspots: [ { id: 'cipressi', name: 'cipressi', box: [440, 0, 200, 270], at: [400, 300], face: 'right', actions: { look: [{ say: 'I cipressi in fila, dritti come soldatini. Da piccolo li contavo. Non sono mai arrivato in fondo.' }], take: [{ say: 'Un cipresso in tasca? Neanche nei sogni.' }], }, }, { id: 'al_trebbio', name: 'in fondo, verso il Trebbio', box: [262, 214, 76, 50], at: [300, 256], exit: { scene: 'trebbio', at: [110, 345], face: 'right' }, }, { id: 'alla_fortezza', name: 'indietro, verso la casa del maestro Bacci', box: [0, 330, 640, 30], at: [300, 352], exit: { scene: 'salita_cipressi', at: [316, 196], face: 'down' }, }, ], }, trebbio: { name: 'Castello del Trebbio', map: [84, 6], background: 'assets/scenes/trebbio.png', effects: [{ type: 'clouds', area: [180, 0, 460, 110], count: 3, big: true }, { type: 'sway', rects: [[237, 140, 20, 60], [165, 160, 20, 48], [305, 132, 14, 30], [560, 120, 22, 80], [600, 120, 20, 80], [620, 100, 20, 100], [530, 160, 20, 40]] }, { type: 'fireflies', phase: 'sera', area: [80, 290, 440, 60], count: 10 }, { type: 'birds', phase: ['pomeriggio', 'tramonto'], area: [200, 30, 400, 80] }], music: 'assets/audio/ricordi.mp3', walk: [[86, 308], [300, 306], [356, 308], [470, 312], [500, 324], [486, 360], [88, 360], [80, 330]], depth: [[306, 0.75], [360, 1.05]], entry: [110, 345], // Lo spirito del castello, lo scrivano dei Medici (disegnato da Codex, scelto da Andrea il 24 ottobre): compare quando parla. speakers: { castello: [446, 178] }, apparitions: [{ who: 'castello', src: 'assets/characters/spirito-trebbio-scriba.png', at: [446, 304], height: 120 }], enter: [{ if: '!trebbio_visto', then: [{ set: 'trebbio_visto' }, { say: 'Il Trebbio. Quassù anche i pensieri vanno più piano.' }] }], 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' }], open: [{ say: 'È un castello, mica una scatola di biscotti.' }], }, }, { id: 'pergolato', name: 'pergolato', box: [278, 222, 122, 52], at: [328, 312], face: 'up', actions: { look: [{ say: 'Il pergolato, coi suoi pilastri. Un giorno li conto tutti.' }], take: [{ say: 'Una vite? Ci vuole la vendemmia, non uno con le mani in tasca.' }], }, }, { id: 'scalinata', name: 'scalinata', box: [304, 276, 50, 32], at: [328, 312], face: 'up', actions: { look: [{ say: 'La scala che sale al pergolato.' }], use: [{ say: 'Più tardi salgo. Per ora mi godo il silenzio.' }], }, }, { id: 'verso_fortezza', name: 'viale dei cipressi, verso la Fortezza', box: [0, 250, 110, 110], at: [92, 345], exit: { scene: 'viale_cipressi', at: [300, 256], face: 'down' }, }, ], }, }, dialogues: { // Andrea parla alla Ghiacciomobile (battute di Andrea, 26 ottobre): la macchina resta zitta, e va bene così. ghiacciomobile: { nodes: { start: { options: [ // La scelta la dice già Andrea (game.choose): dopo, solo il silenzio della macchina. { text: 'Mi ricordi come avete fatto quella volta a tornare illesi dopo aver lasciato una fiancata a Campolungo?', then: [{ say: '...' }] }, { text: 'Ho sentito dire dal Trappola che pensavi di poter attraversare i muri.', say: 'Ho sentito dire dal Trappola che pensavi di poter attraversare i muri. Ti stimo tanto.', then: [{ say: '...' }] }, { text: 'Riposa, Ghiacciomobile.', next: 'end' }, ] }, }, }, giocatore_carte: { nodes: { start: { options: [ { text: 'Una briscola?', when: '!briscola_giocata', next: 'mazzo', then: [{ say: 'Gnamo. In due, senza soci e senza scuse.', who: 'giocatore_carte', pose: 'shuffle' }] }, { text: 'Rivincita a briscola?', when: 'briscola_giocata', next: 'mazzo', then: [{ say: 'Il tavolo è qui. Il coraggio ce lo metti te.', who: 'giocatore_carte', pose: 'laugh' }] }, { text: 'Una scopa?', next: 'mazzo_scopa', then: [{ say: 'Ai undici. E occhio al settebello: quello è sempre mio.', who: 'giocatore_carte', pose: 'shuffle' }] }, { text: 'Un tressette ai 21?', next: 'mazzo_tressette', then: [{ say: 'Ci vuole quattro: chiamo quei due che giocano qui dietro. Uno ti fa da socio.', who: 'giocatore_carte', pose: 'talk' }] }, { text: 'Ora cerco il palio. A dopo.', next: 'end' }, ] }, // Il mazzo (idea di Andrea): le toscane di casa, o le napoletane. Stesse regole, cambiano i disegni. mazzo: { options: [ { text: 'Con le toscane.', next: 'livello', then: [{ unset: 'carte_napoletane' }, { say: 'Brao. Gobbo, donna e regio, come Dio comanda. Come la vuoi?', who: 'giocatore_carte' }] }, { text: 'Con le napoletane.', next: 'livello', then: [{ set: 'carte_napoletane' }, { say: 'Le napoletane? Le tengo per i villeggianti. Come la vuoi?', who: 'giocatore_carte', pose: 'shuffle' }] }, { text: 'Ci ripenso.', next: 'end' }, ] }, livello: { options: [ { text: 'Alla bona.', next: 'end', then: [{ say: 'Alla bona. I carichi li regalo, oggi.', who: 'giocatore_carte' }, { closeup: 'briscola', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ say: 'Allora posa il gomito e guarda le carte.', who: 'giocatore_carte' }, { closeup: 'briscola', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'Io le conto tutte. Anche quelle che butti via per sbaglio.', who: 'giocatore_carte', pose: 'shuffle' }, { closeup: 'briscola', level: 'male' }] }, { text: 'Ci ripenso.', next: 'end' }, ] }, // La scopa: stesse scelte (e stesse battute) della briscola. mazzo_scopa: { options: [ { text: 'Con le toscane.', next: 'livello_scopa', then: [{ unset: 'carte_napoletane' }, { say: 'Brao. Gobbo, donna e regio, come Dio comanda. Come la vuoi?', who: 'giocatore_carte' }] }, { text: 'Con le napoletane.', next: 'livello_scopa', then: [{ set: 'carte_napoletane' }, { say: 'Le napoletane? Le tengo per i villeggianti. Come la vuoi?', who: 'giocatore_carte', pose: 'shuffle' }] }, { text: 'Ci ripenso.', next: 'end' }, ] }, livello_scopa: { options: [ { text: 'Alla bona.', next: 'end', then: [{ say: 'Alla bona. I carichi li regalo, oggi.', who: 'giocatore_carte' }, { closeup: 'scopa', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ say: 'Allora posa il gomito e guarda le carte.', who: 'giocatore_carte' }, { closeup: 'scopa', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'Io le conto tutte. Anche quelle che butti via per sbaglio.', who: 'giocatore_carte', pose: 'shuffle' }, { closeup: 'scopa', level: 'male' }] }, { text: 'Ci ripenso.', next: 'end' }, ] }, // Il tressette: stesse scelte (e stesse battute) della briscola, poi il tavolo in quattro. mazzo_tressette: { options: [ { text: 'Con le toscane.', next: 'livello_tressette', then: [{ unset: 'carte_napoletane' }, { say: 'Brao. Gobbo, donna e regio, come Dio comanda. Come la vuoi?', who: 'giocatore_carte' }] }, { text: 'Con le napoletane.', next: 'livello_tressette', then: [{ set: 'carte_napoletane' }, { say: 'Le napoletane? Le tengo per i villeggianti. Come la vuoi?', who: 'giocatore_carte', pose: 'shuffle' }] }, { text: 'Ci ripenso.', next: 'end' }, ] }, livello_tressette: { options: [ { text: 'Alla bona.', next: 'end', then: [{ say: 'Alla bona. I carichi li regalo, oggi.', who: 'giocatore_carte' }, { closeup: 'tressette', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ say: 'Allora posa il gomito e guarda le carte.', who: 'giocatore_carte' }, { closeup: 'tressette', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'Io le conto tutte. Anche quelle che butti via per sbaglio.', who: 'giocatore_carte', pose: 'shuffle' }, { closeup: 'tressette', level: 'male' }] }, { text: 'Ci ripenso.', next: 'end' }, ] }, }, }, // Il chiosco della Tosca: le bibite si bevono subito; ghiacciolo e cedrata si portano via (una volta per tipo). tosca: { nodes: { start: { options: [ { text: 'Una Fanta.', when: '!has:fanta', then: [{ say: 'Eccola, ghiacciata.', who: 'tosca' }, { give: 'fanta' }] }, { text: 'Una Coca.', when: '!has:coca', then: [{ say: 'Tieni, col vetro appannato.', who: 'tosca' }, { give: 'coca' }] }, { 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' }] }, ], }, }, }, // L'indovinello di San Pietro sul fonte battesimale robbiano della Pieve: la risposta è sul cartellino del fonte. indovinello: { nodes: { start: { options: [ { text: 'Luca della Robbia.', then: [{ say: 'Così si è detto per secoli. E per secoli si è sbagliato. Entra e leggi bene.', who: 'san_pietro' }] }, { text: 'Andrea della Robbia.', then: [{ say: 'Il babbo? Ci sei quasi. Ma la bottega, nel 1518, la mandava avanti un altro.', who: 'san_pietro' }] }, { text: 'Giovanni della Robbia.', next: 'end', then: [ { say: 'Bravo! Giovanni della Robbia, nel 1518. Hai letto il cartellino, eh?', who: 'san_pietro' }, { say: 'Eccoti la chiave dell\'oratorio. Trattala bene: è più vecchia di tuo nonno.', who: 'san_pietro' }, { give: 'chiave_oratorio' }, { set: 'chiave_data' }, { say: 'Grazie, San Pietro!' }, ], }, { text: 'Michelangelo.', then: [{ say: 'Michelangelo? Quello aveva altro da fare. Prova con qualcuno che lavorava la terracotta.', who: 'san_pietro' }] }, { text: 'Ci penso e torno.', next: 'end', then: [{ say: 'Le chiavi non scappano. E io nemmeno. Il fonte è lì dentro, se vuoi dare un\'occhiata.', who: 'san_pietro' }] }, ], }, }, }, vecchietti: { nodes: { start: { options: [ { text: 'Avete visto chi ha preso il palio?', then: [ { say: 'È stato il Regolo! Quello che cadde dal cielo quando scavavano le fondamenta.', who: 'vecchietta' }, { say: 'Macché cielo! Mangiava le bestie, e lo presero i soldati di Napoleone.', who: 'vecchietto', pose: 'point' }, { say: 'Napoleone? A San Piero? Ma se un c\'è mai venuto!', who: 'vecchietta', pose: 'point' }, { say: 'E il Regolo sì?', who: 'vecchietto', pose: 'shrug' }, ], }, { id: 'stanotte', once: true, text: 'Avete notato niente di strano stanotte?', then: [ { say: 'Io dormivo. Alla mia età si dorme anche in piedi.', who: 'vecchietto', pose: 'doze' }, { say: 'Io stamani ho visto luccicare qualcosa sotto la panchina.', who: 'vecchietta' }, { say: 'Ma con la mia schiena, chi ci si china?', who: 'vecchietta', pose: 'look_down' }, { set: 'luccichio' }, ], }, { text: 'Come vi sembra il Palio di quest\'anno?', then: [ { say: 'Senza il palio? Una festa così non s\'è mai vista.', who: 'vecchietto', pose: 'shrug' }, { 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' }] }, ], }, }, }, // L'Arcu davanti al circolino (battute di Andrea, 25 ottobre). Lavora alla Casa dell'Armadio: «Armando» è apposta. arcu: { nodes: { start: { 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: 'S\'ha andà a fallo!?!?', then: [{ say: 'Gnamo! Ma prima mi fo una segarettina di quelle mi fo io!', who: 'arcu', pose: 'laugh' }] }, { text: 'Ci si becca da i\' Trappola, ai\' Barrettino!', next: 'end' }, ], }, }, }, // Mariano al pallaio: una mano a bocce, solo per gloria; se Andrea vince, la promessa di Brento Sanico. // I ragazzi delle canne: «S'ha andà a fallo?!?» (Andrea, 28 ottobre) e si va a pescare. pescatori: { nodes: { start: { options: [ { text: 'S\'ha andà a fallo?!?', next: 'livello', then: [ { say: 'Gnamo! La canna ti si dà noi.', who: 'pescatori', pose: 'laugh' }, { say: 'Come peschi?', who: 'pescatori', pose: 'talk' }, ] }, { text: 'Quanti ne prendete, di solito?', then: [{ say: 'Dipende da chi racconta. Il Nanni dice dieci, il cestino dice due.', who: 'pescatori', pose: 'laugh' }] }, { text: 'Buona pesca, ragazzi.', next: 'end', then: [{ say: 'Se vedi il palio, salutacelo!', who: 'pescatori', pose: 'talk' }] }, ], }, livello: { options: [ { text: 'Alla bona, tanto per bagnare la lenza.', next: 'end', then: [{ say: 'Alla bona. Due pesci e si va a casa contenti.', who: 'pescatori' }, { closeup: 'pesca', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ say: 'Seria: tre pesci, e lo stivale non conta.', who: 'pescatori', pose: 'proud' }, { closeup: 'pesca', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'A fassi male? Quattro pesci, e le carpe tirano come trattori.', who: 'pescatori', pose: 'laugh' }, { closeup: 'pesca', level: 'male' }] }, ], }, }, }, // L'Arcu dal Trappola (Andrea, 28 ottobre): lo scherzo sulla velocità del Betino, poi la sfida: «il giro della Fortezza» (Andrea), cioè il GP di Fortezza; // prima del via prende la rincorsa per accenderlo in discesa. [DA ANDREA: le battute sono provvisorie] arcu_trappola: { nodes: { start: { options: [ { text: 'Ma ti ho visto du\' minuti fa a Campomigliaio!', then: [ { say: 'E allora? Col Betino ci metto un attimo.', who: 'arcu', pose: 'explain' }, { say: 'In discesa.', who: 'arcu', pose: 'laugh' }, { say: 'E in salita?' }, { say: 'In salita si spinge.', who: 'arcu', pose: 'shrug' }, ] }, { text: 'Si fa una gara coi motorini? Il giro della Fortezza!', next: 'gara', then: [ { say: 'Col Betino? Io un perdo mai: un vo mai forte abbastanza da cadere.', who: 'arcu', pose: 'explain' }, { say: 'Come la si fa?', who: 'arcu', pose: 'talk' }, ] }, // I pokerini da Vannino: l'Arcu fa comparire la macchina del tempo (Andrea, 29 ottobre). [DA ANDREA: le battute dell'Arcu] { text: 'Bei tempi quando qui si faceva i pokerini...', next: 'end', then: [ { if: 'macchina_trappola', then: [{ say: 'La macchina è sempre lì. La data è già impostata.', who: 'arcu', pose: 'explain' }], else: [ { say: 'I pokerini da Vannino, col Pierino che bluffava anche a briscola.', who: 'arcu', pose: 'laugh' }, { say: 'Ci vuoi tornare? Aspetta.', who: 'arcu', pose: 'explain' }, { set: 'macchina_trappola' }, { say: 'Ma quella è... la macchina del tempo!' }, // Andrea, 29 ottobre. { say: 'Il plutonio l\'ho trovato da Alvarino. Per un pelo stavano arrivando i Libici a prenderglielo tutto.', who: 'arcu', pose: 'talk' }, { say: 'Basta salire e mettere la data.', who: 'arcu', pose: 'explain' }, ] }, ] }, { text: 'Ci si vede dopo, Arcu.', next: 'end' }, ], }, gara: { options: [ { text: 'Alla bona, un giro di paese.', next: 'end', then: [{ say: 'Alla bona. Chi arriva ultimo paga le paste.', who: 'arcu', pose: 'laugh' }, ...rincorsa('bona')] }, { text: 'Seria.', next: 'end', then: [{ say: 'Seria. Tre giri, e la paglia in curva è vera.', who: 'arcu', pose: 'explain' }, ...rincorsa('seria')] }, { text: 'Ginocchio in terra.', next: 'end', then: [{ say: 'Ginocchio in terra? Puntella un vede l\'ora.', who: 'arcu', pose: 'shrug' }, ...rincorsa('male')] }, { text: 'No, lascia perdere.', next: 'start' }, ], }, }, }, // Da solo al campo del Circolo: Andrea decide quanto farsi male. basket: { nodes: { start: { options: [ { text: 'Due tiri alla bona, tanto per scaldarmi.', next: 'end', then: [{ say: 'Tre su dieci e sono contento.' }, { closeup: 'basket', level: 'bona' }] }, { text: 'Due tiri seri.', next: 'end', then: [{ say: 'Cinque su dieci. Come ai tempi del Circolino.' }, { closeup: 'basket', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'Sette su dieci, senza guardare la parabola. Vediamo chi sono.' }, { closeup: 'basket', level: 'male' }] }, { text: 'Lascia stare, ho il palio da trovare.', next: 'end' }, ], }, }, }, mariano: { nodes: { start: { options: [ { text: 'Mariano! Facciamo una partita a bocce?', when: '!bocce_vinte', next: 'livello', then: [ { say: 'Con me? Al pallaio sono il campione.', who: 'mariano', pose: 'explain' }, { say: 'Facciamo così: se mi batti, ti porto a Brento Sanico.', who: 'mariano' }, { say: 'Come la vuoi?', who: 'mariano' }, ], }, { text: 'La rivincita?', when: 'bocce_vinte', next: 'livello', then: [{ say: 'Il campione non scappa. Come la vuoi?', who: 'mariano', pose: 'throw' }] }, { text: 'Allora, Brento Sanico?', when: 'bocce_vinte', then: [{ say: 'Promesso: ti ci porto. Ma prima ritrova il palio, che senza festa non si parte.', who: 'mariano', pose: 'explain' }] }, { text: 'Ciao Mariano.', next: 'end' }, ], }, // La difficoltà (Andrea, 25 ottobre): quanto si impegna Mariano. livello: { options: [ { text: 'Alla bona.', next: 'end', then: [{ say: 'Alla bona: tiro con gli occhi chiusi.', who: 'mariano', pose: 'laugh' }, { closeup: 'bocce', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ say: 'Seria. Così mi piace.', who: 'mariano' }, { closeup: 'bocce', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'A fassi male? Poi non piangere, eh.', who: 'mariano', pose: 'cheer' }, { closeup: 'bocce', level: 'male' }] }, ], }, }, }, // Da Pierin di Frilli: la cerbottana e lo stucco verde, poi il muro della piazza (Andrea, 29 ottobre). pierin: { nodes: { start: { options: [ { text: 'Una cerbottana e un po\' di stucco, Pierino!', next: 'livello', then: [ { say: 'Lo stucco verde di Pierino: quell\'odore non te lo levi più dalle dita.' }, { say: 'Ora un muro. Quello della piazza va benissimo.' }, ] }, { text: 'Niente, grazie: guardavo.', next: 'end' }, ], }, livello: { options: [ { text: 'Alla bona.', next: 'end', then: [{ closeup: 'cerbottana', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ closeup: 'cerbottana', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ closeup: 'cerbottana', level: 'male' }] }, { text: 'No, dopo.', next: 'end' }, ], }, }, }, // Al Barrettino del 1997: il pokerino con Vannino e Pierino. [DA ANDREA: le battute] pokerino: { nodes: { start: { options: [ { text: 'C\'è posto per uno?', next: 'livello', then: [ { say: 'La sedia è lì. Invito due, punto cinque. Come la vuoi?', who: 'vannino', pose: 'explain' }, ] }, { text: 'Vannino, un caffè?', then: [{ say: 'Subito. Ma prima una mano, sennò che ci fai qui?', who: 'vannino', pose: 'talk' }] }, { text: 'Pierino, come va la mano?', then: [{ say: 'Bene. O male. Con me un si sa mai, ed è questo il bello.', who: 'pierino_parigi', pose: 'laugh' }] }, { text: 'Dopo.', next: 'end' }, ], }, livello: { options: [ { text: 'Alla bona.', next: 'end', then: [{ say: 'Alla bona: si gioca per il caffè.', who: 'pierino_parigi', pose: 'talk' }, { closeup: 'poker', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ say: 'Seria. Carte, Vannino.', who: 'pierino_parigi', pose: 'cards' }, { closeup: 'poker', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'A fassi male? Allora io bluffo.', who: 'pierino_parigi', pose: 'laugh' }, { closeup: 'poker', level: 'male' }] }, { text: 'No, aspetta.', next: 'start' }, ], }, }, }, // Il Chiaru al parcheggio di Cardetole, accanto alla pista col gesso (Andrea, 29 ottobre). [DA ANDREA: battute provvisorie] chiaru: { nodes: { start: { options: [ { text: 'Si fa una gara alle macchinine?!?!', next: 'livello', then: [{ say: 'Un giro, una spinta a testa, prima te. Tutta fuori dal gesso, si torna indietro. Come la vuoi?', who: 'chiaru', pose: 'explain' }] }, { text: 'Che pista hai disegnato?', then: [ { say: 'Rettilineo, curvone, rettilineo, e in fondo la esse. Nella esse chi ha fretta esce.', who: 'chiaru', pose: 'explain' }, { say: 'Il tombino l\'ho lasciato in pista: porta fortuna.', who: 'chiaru', pose: 'talk' }, ] }, // I nomi alla francese delle penalità (Andrea, 29 ottobre): per tutte si torna indietro. { text: 'Le regole sono quelle solite?', then: [ { say: 'Le solite. Chi accompagna la macchinina col dito: accompagnè.', who: 'chiaru', pose: 'explain' }, { say: 'Chi taglia la strada: tagliè. Chi si ribalta: cappottè. E chi esce tutto dal gesso, fuori.', who: 'chiaru', pose: 'talk' }, { say: 'In tutti i casi, si torna dov\'eri prima.', who: 'chiaru', pose: 'shrug' }, ] }, // Il saluto (Andrea, 29 ottobre). { text: 'Vado a fare un girino alle case rosse.', next: 'end', then: [{ say: 'Vorrai dire un giochino!', who: 'chiaru', pose: 'laugh' }, { say: 'Ciao Mattè.' }] }, ], }, livello: { options: [ { text: 'Alla bona.', next: 'end', then: [{ say: 'Alla bona: ti faccio vedere dove si ferma. E io vado piano.', who: 'chiaru', pose: 'talk' }, { closeup: 'micro', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ say: 'Seria. Così mi piace.', who: 'chiaru', pose: 'explain' }, { closeup: 'micro', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'A fassi male. Poi non piangere.', who: 'chiaru', pose: 'laugh' }, { closeup: 'micro', level: 'male' }] }, { text: 'No, aspetta.', next: 'start', then: [{ say: 'Io intanto ripasso il gesso.', who: 'chiaru', pose: 'stand' }] }, ], }, }, }, // Trappizzio Berti al tavolo di mezzo: le biglie nascoste e «Oh tirami questo rinquarto!?» (Andrea, 28 ottobre). // [DA ANDREA: le battute sono provvisorie, tranne la sua sfida] // Andrea, parlandogli, lo chiama Fabri (29 ottobre). bertovo: { nodes: { start: { options: [ { text: 'Fabri! Che fai, giochi da solo?', then: [ { say: 'Da solo? Io gioco contro le sponde. E vinco quasi sempre.', who: 'bertovo', pose: 'explain' }, ] }, { text: 'Come fai a prendere le biglie dove nessuno ci arriva?', then: [ { say: 'Geometria. La biglia va dove le dici, basta chiederglielo per bene.', who: 'bertovo', pose: 'chalk' }, { say: 'E con un po\' di gesso.', who: 'bertovo', pose: 'laugh' }, ] }, // L'allenamento: lui tira per primo e fa vedere, poi lo rifai te, senza punti. { text: 'Dai, fammi vedere un rinquarto.', next: 'end', then: [ { say: 'Guarda bene: prima lo tiro io, poi lo rifai te. Tre posizioni, una sponda.', who: 'bertovo', pose: 'chalk' }, { closeup: 'rinquarto', level: 'allenamento' }, ] }, { text: 'Si fa una sfida a rinquarti?', next: 'sfida', then: [ { say: 'Le biglie le metto io, nascoste per bene. Tiri te, poi tiro io. Oh tirami questo rinquarto!?', who: 'bertovo', pose: 'explain' }, ] }, { text: 'Ci si vede, Fabri.', next: 'end', then: [{ say: 'Occhio alle sponde, fuori.', who: 'bertovo', pose: 'shrug' }] }, ], }, sfida: { options: [ { text: 'Alla bona, una sponda e basta.', next: 'end', then: [{ say: 'Una sponda. Roba da principianti, ma va bene.', who: 'bertovo', pose: 'shrug' }, { closeup: 'rinquarto', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ say: 'Due sponde. Così mi piace.', who: 'bertovo', pose: 'talk' }, { closeup: 'rinquarto', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'Tre sponde e niente aiuti. Qui nascono le geometrie celestiali.', who: 'bertovo', pose: 'cheer' }, { closeup: 'rinquarto', level: 'male' }] }, { text: 'No, mi tremano le mani.', next: 'start', then: [{ say: 'Il tavolo è qui. Le sponde non scappano.', who: 'bertovo', pose: 'laugh' }] }, ], }, }, }, ing_tozzi: { nodes: { start: { options: [ { text: 'Ingegnere, una partita ai birilli?', when: '!biliardo_vinto', next: 'livello', then: [{ say: 'Una partita ai birilli? Si va a venti. Come la vuoi?', who: 'ing_tozzi', pose: 'chalk' }], }, { text: 'La rivincita?', when: 'biliardo_vinto', next: 'livello', then: [{ say: 'Ci mancherebbe. Stavolta guardo bene. Come la vuoi?', who: 'ing_tozzi', pose: 'explain' }] }, { text: 'Arrivederci, Ingegnere.', next: 'end' }, ], }, // La difficoltà: quanti colpi prova a vuoto l'Ingegnere, e quanto gli trema la mano. livello: { options: [ { text: 'Alla bona.', next: 'end', then: [{ say: 'Alla bona: tiro senza occhiali.', who: 'ing_tozzi', pose: 'laugh' }, { say: 'Gnamo.' }, { closeup: 'biliardo', level: 'bona' }] }, { text: 'Seria.', next: 'end', then: [{ say: 'Seria. Dammi il gesso.', who: 'ing_tozzi', pose: 'chalk' }, { say: 'Gnamo.' }, { closeup: 'biliardo', level: 'seria' }] }, { text: 'A fassi male.', next: 'end', then: [{ say: 'A fassi male? Allora mi tolgo la giacca. Ah no, non ce l\'ho.', who: 'ing_tozzi', pose: 'explain' }, { say: 'Gnamo.' }, { closeup: 'biliardo', level: 'male' }] }, ], }, }, }, // Lo "psicologo": il castello ascolta e risponde con un indizio su quello che manca. castello: { nodes: { start: { options: [ { text: 'Sono bloccato. Mi dai un consiglio?', then: [ { say: 'Siediti. Guarda il Mugello. Respira.', who: 'castello' }, { if: '!luccichio', then: [{ say: 'Chi sa tutto del paese di solito sta seduto. Prova a chiedere a chi passa le giornate in piazza.', who: 'castello' }], else: [{ if: ['!has:squama', '!squama_presa'], then: [{ say: 'Le cose che luccicano non stanno mai in alto. Guarda in basso, vicino a chi te ne ha parlato.', who: 'castello' }], else: [{ if: '!indizio_regolo', then: [{ say: 'Una squama da sola non dice niente. Ma vicino alle sue impronte, sotto la Fortezza, magari sì.', who: 'castello' }], else: [{ if: 'has:torcia', then: [{ say: 'Hai la luce, e sotto la Fortezza c\'è il buio. Mettili insieme.', who: 'castello' }], else: torchHints }], }], }], }, ], }, { text: 'Ma tu ce l\'hai mai visto, il Regolo?', then: [{ say: 'Io ho visto passare i Medici, la peste e Vespucci. Un serpente in più non mi spaventa.', who: 'castello' }], }, // Andrea al Trebbio ci sale sempre a piedi: quattro chilometri da casa, due di salita (ricordo suo). { text: 'Lo sai che quassù ci vengo sempre a piedi?', then: [ { say: 'Lo so. Ti sento arrivare dal fiatone, un chilometro prima.', who: 'castello' }, { say: 'Da casa sono quattro chilometri. E due sono di salita, di quella bella.' }, { say: 'Eppure torni sempre. Qualcosa, quassù, l\'hai trovato.', who: 'castello' }, { say: 'Ho trovato la mia strada!' }, { say: '...Io, che ancora non so cosa fare da grande.' }, ], }, { text: 'E te, da grande, cosa volevi fare?', then: [ { say: 'Il castello.', who: 'castello' }, { say: 'Mi è venuto bene. Non avere fretta: a me ci son voluti seicento anni.', who: 'castello' }, ], }, { text: 'Niente, volevo solo un po\' di pace.', next: 'end', then: [{ say: 'Quella qui non manca mai. Torna quando vuoi.', who: 'castello' }] }, ], }, }, }, }, }; // Solo decorazione: nessun hotspot, flag o modifica ai salvataggi. for (const [id, effects] of Object.entries(ambience)) story.scenes[id].effects = [...(story.scenes[id].effects ?? []), ...effects];