APPENDIX D - La Soria di "CAPITAN DESTINO" ========================================== Capitan Destino è il nostro terzo ed ultimo gioco ed è un poco più lungo e complesso dei suoi predecessori. Vedi "Capitan Destino: passo 1" nel capitolo 10, "Capitan Destino: passo 2" nel capitolo 11, "Capitan Destino: passo 3" nel capitolo 12 e "Capitan Destino: l'ultima passo" nel capitolo 13. Transcrizione di una partita **************************** Impersonando il tranquillo John Covarth, assistente garzone in una insignificante drogheria, ti FERMI di colpo quando il tuo udito finissimo decifra una chiamata radio della POLIZIA. Un FOLLE stà attaccando la popolazione al Parco Granaio! Devi indossare velocemente il tuo costume da Capitan DESTINO...! Dressed To Save Semplice esempio in Inform di Roger Firth and Sonja Kesserich. Versione 1 / Numero di Serie 020428 / Inform v6.21 Libreria 6/10 Infit Versione 2.1 / Numero di serie 030106 / (c) 2003 by Giovanni Riccardi SD In strada Da una parte, che grazie al tuo SOVRUMANO senso della direzione sai essere il NORD, c'è un bar in cui si può anche pranzare a quest'ora. Verso sud, vedi una cabina del telefono. >ESAMINA ME Negli abiti della tua identità segreta, riesci in maniera estremamente efficace a sembrare un perdente, un perfetto imbranato. >INVENTARIO Stai portando: i tuoi vestiti (indossati) il tuo costume >X COSTUME Manifattura allo STATO DELL'ARTE, 100% COTONELASTICO(tm) rinforzato chimicamente. >TOGLI I VESTITI In mezzo di strada? Questo sarebbe uno SCANDALO, e inoltre rivelerebbe la tua identità segreta. >X CABINA Il vecchio pittoresco modello giallo, con spazio per una sola persona. >ENTRACI Non hai bisogno di questo verbo per risolvere con SUCCESSO la situazione. >ENTRA NELLA CABINA Con velocità implausibile, ti fiondi all'interno della cabina. >TOGLI I VESTITI Non avendo la super-velocità di Superman, realizzi che sarebbe sconveniente cambiarti sotto gli occhi delle persone che passano. >ESCI Sei uscito dalla cabina del telefono. In strada Da una parte, che grazie al tuo SOVRUMANO senso della direzione sai essere il NORD, c'è un bar in cui si può anche pranzare a quest'ora. Verso sud, vedi una cabina del telefono. >X BAR Il miglior bar della città per uno spuntino veloce. Il bar di Benny ha un look da nave spaziale anni 50' >ENTRA NEL BAR Con un impressionante commistione di fretta e nonchalance entri all'interno del bar. Il bar di Benny Benny offre la MIGLIORE selezione di pezzi dolci e sandwich. I clienti riempiono il banco dove Benny in persona riesce a servire, cucinare e riscuotere senza la minima esistazione. Sulla parete nord del bar vedi una porta rossa che conduce alla toilet. >APRI PORTA Sembra essere chiusa a chiave. >ESAMINALA Una porta rossa con le inequivocabili silhouette di un uomo e di una donna che segnano l'ingresso ai locali igienici. C'è una nota scarabocchiata attaccata alla superficie della porta. >LEGGI LA NOTA Rivolgi la tua visione a ULTRAFREQUENZA AVANZATA verso la nota e socchiudi gli occhi concentrandoti, arrendendoti solo quando i bordi della nota iniziano ad annerirsi sotto l'incredibile intensità del tuo sguardo infuocato. Rifletti ancora una volta su quanto sarebbe stato utile se tu avessi mai imparato a leggere. Una vecchia signora premurosa si avvicina e ti spiega: "Devi chiedere la chiave a Benny, al bancone." Ti volti verso di lei e inizi a dire: "Oh, la SAPEVO, ma..." "Di nulla, figliolo," dice la signora mentre esce dal bar. >X BENNY Un uomo ingannevolmente GRASSO dotato di incredibile agilità, Benny intrattiene i clienti schiacciandosi noci di cocco sulla fronte quando è dell'umore giusto. >CHIEDI A BENNY LA CHIAVE "Il bagno è solo per i clienti." mormora, indicando con il dito il menu alle sue spalle. >X MENU Il menu appeso al muro elenca tutti i cibi e bevande che Benny può servire. Peccato che tu non abbia mai imparato a leggere, ma fortunatamente c'è il disegno di una grossa tazza di caffè fra tutte le altre scritte incomprensibili. >CHIEDI A BENNY UN CAFFE In sole due mosse aggraziate, Benny posa di fronte a te il suo famosissimo Caffè macchiato. >CHIEDI A BENNY LA CHIAVE Benny getta la chiave delle toilettes sul bancone, da cui tu la prendi con un destro e preciso movimento della tua mano SUPER-AGILE. >APRI LA PORTA CON LA CHIAVE Apri la porta che conduce al bagno. >N Un bagno unisex Una stanza quadrata, incredibilmente PULITA, dalle pareti ricoperte di mattonelle di ceramica, che non contiene molto di più di un gabinetto e un interruttore. L'unica uscita è a sud, attraverso la porta che riconduce al bar. [Il tuo punteggio è appena aumentato di un punto.] >CHIUDI LA PORTA Ora hai chiuso la porta che conduce al bar. È completamente buio qui! >PREMI L'INTERRUTTORE Accendi la luce del bagno. Un bagno unisex Una stanza quadrata, incredibilmente PULITA, dalle pareti ricoperte di mattonelle di ceramica, che non contiene molto di più di un gabinetto e un interruttore. L'unica uscita è a sud, attraverso la porta che riconduce al bar. >CHIUDI LA PORTA CON LA CHIAVE Ora hai chiuso a chiave la porta che conduce al bar. >X LAVANDINO Non vedi nulla del genere. >X GABINETTO L'ultima persona ha CIVILMENTE tirato l'acqua dopo aver usato il gabinetto, ma ha dimenticato di raccogliere la PREZIOSA moneta che è caduta dai suoi pantaloni. >PRENDI LA MONETA Ti accosci nella posizione del DRAGO DORMIENTE e senza indugio raccogli e intaschi la moneta con la PRESA PANORAMICA. [Il tuo punteggio è appena aumentato di un punto.] >TOGLI I VESTITI Ti togli rapidamente i vestiti e li raccogni in un pacco ULTRA-MINUSCOLO facilmente trasportabile. Poi spiehi il tuo costume in COTONE INVULNERABILE e ti trasformi in Capitan DESTINO, difensore della libertà e avversario della tirannia! >APRI LA PORTA CON LA CHIAVE Apri la porta che conduce al bar. >S Il bar di Benny Benny offre la MIGLIORE selezione di pezzi dolci e sandwich. I clienti riempiono il banco dove Benny in persona riesce a servire, cucinare e riscuotere senza la minima esistazione. Sulla parete nord del bar vedi una porta rossa che conduce alla toilet. Il clienti osservano il tuo costume con evidente curiostità. Sopra il bancone vedi una tazza di caffè. "Non sapevo ci fosse il circo in città," dice un clienti ad un altro. "Sembra che i pagliacci abbiano il giorno libero." >BEVI IL CAFFE Prendi la tazzina e ne bevi un sorso. La REPUTAZIONE MONDIALE di Benny è ben meritata. Appena finisci, Benny porta via la tazzina. "Il caffè viene un'euro, signore." >DAI LA MONETA A BENNY Con meravigliose movenze da ILLUSIONISTA, fai apparire una moneta dal tuo costume come se fosse uscita fuori dall'orecchio di Benny! Le persone attorno a te applaudono educatamente. Benny prende la moneta, e la morde SOSPETTOSO. "Grazie, signore. Torni quando vuole," dice. "Questi stilisti non sanno più che fare per farsi conoscere," sbuffa un signore corpulento guardando nella tua direzione. Quelli che hanno sentito cercano di nascondere il sogghigno. >DAI LA CHIAVE A BENNY Benny annuisce mentre tu MIRABILMENTE gli rendi la chiave. "Deve essere di nuovo carnevale," dice un uomo a sua moglie, che sogghigna dandoti un'occhiata di sfuggita. "Come vola il tempo..." >S Esci in strada, dove le persone di passaggio riconoscono la STRAVAGANZA arcobaleno del costume di Capitan DESTINO e gridano il tuo nome con stupore mentre tu SALTI con forza sensazionale nel cielo BLU del mattino! *** Voli via, diretto a RISOLVERE la SITUAZIONE! *** In questa partita hai totalizzato 2 punti su 2 possibili, in 33 turni. Vuoi RICOMINCIARE, CARICARE una partita salvata o USCIRE ? > USCIRE Il codice sorgente del gioco **************************** !============================================================================ Constant Story "Dressed To Save"; Constant Headline "^Semplice esempio in Inform ^di Roger Firth and Sonja Kesserich.^"; ! Traduzione di Paolo Lucchesi Release 1; Serial "020428"; ! per tener conto delle release pubbliche Constant MANUAL_PRONOUNS; Constant MAX_SCORE 2; Constant OBJECT_SCORE 1; Constant ROOM_SCORE 1; Replace MakeMatch; ! richiesto da pname.h Replace Identical; Replace NounDomain; Replace TryGivenObject; Include "Parser"; Include "pname"; ! pname.h la trovate nell'Archivio Object LibraryMessages ! devono essere definiti tra Parser e VerbLib with before [; Buy: "Il piccolo commercio ti ha raramente interessato."; Dig: "I tuoi super-sensi non percepiscono NIENTE sotto terra che possa interessarti in questo momento."; Pray: "Non hai bisogno di disturbare DIVINITA' onnipotenti per risolvere la situazione."; Sing: "Ahimè! Questo non è uno dei tuoi superpoteri."; Sleep: "Un eroe è SEMPRE all'erta."; Sorry: "Capitan FATO non ha tempo per le scuse, ma solo per l'AZIONE."; Strong: "Un vocabolario non adatto ad un EROE come te."; Swim: "Rivolgi la tuta ATTENZIONE alla ricerca di un posto adatto per ESERCITARE il tuo superiore stile di nuoto ma, aihmè, non trovi niente di simile."; Miscellany: if (lm_n == 19) if (vestiti has worn) "Negli abiti della tua identità segreta, riesci in maniera estremamente efficace a sembrare un perdente, un perfetto imbranato."; else "Ora che indossi il tuo costume, proietti l'immagine di PURA potenza , di MUSCOLI gonfi e multicolorati, e di uno stile ARDITO e SOBRIO allo stesso tempo."; if (lm_n == 38) "Non hai bisogno di questo verbo per risolvere con SUCCESSO la situazione."; if (lm_n == 39) "Non è qualcosa di cui tu abbia bisogno per RISOLVERE la situazione."; ]; Include "VerbLib"; Include "Replace"; !============================================================================ ! Classi Class Room has light; Class Appliance with before [; Take,Pull,Push,PushDir: "Anche se i tuoi muscoli SCOLPITI e adamantini ne sarebbero. in grado, tu sei contrario ai danni alla altrui proprietà."; ], has scenery; !============================================================================ ! Oggetti Room strada "In strada" with description [; if (player in cabina) "Da questo punto STRATEGICO ottieni una visuale completa di tutto il marciapiede e dell'ingresso al bar di Benny."; else "Da una parte, che grazie al tuo SOVRUMANO senso della direzione sai essere il NORD, c'è un bar in cui si può anche pranzare a quest'ora. Verso sud, vedi una cabina del telefono."; ], before [; Go: if (player in cabina && noun == n_obj) <>; ], n_to [; <>; ], s_to [; <>; ], in_to "Va bene, ma da che parte?", cant_go "Non c'è tempo per esplorare. Ti muoverai molto più velocemente nel tuo costume da Capitan FATO."; Object "pedoni" strada with name 'gente' 'persone' 'pedoni', description "Soltanto GENTE che bada ai propri ONESTI affari.", before [; Examine: return false; default: "La gente non sembra considerarti minimamente."; ], has animate pluralname scenery; Appliance cabina "cabina del telefono" strada with name 'vecchia' 'gialla' 'pittoresca' 'cabina' 'del' 'telefono', description "Il vecchio pittoresco modello giallo, con spazio per una sola persona.", before [; Open: "La cabina è già aperta."; Close: "Non c'è modo di chiudere la cabina."; ], after [; Enter: "Con velocità implausibile, ti fiondi all'interno della cabina."; ], has enterable container open female; Appliance "marciapiede" strada with name 'marciapiede' 'selciato' 'strada', article "il", description "Esegui un veloce controllo del marciapiede e scopri, con tua immensa sorpresa, che è in TUTTO simile ad ogni altro marciapiede della CITTA'!"; Appliance fuori_dal_bar "Il bar di Benny" strada with name 'bar' 'di' 'benny' 'locale' 'entrata', description "Il miglior bar della città per uno spuntino veloce. Il bar di Benny ha un look da nave spaziale anni 50'", before [; Enter: print "Con un impressionante commistione di fretta e nonchalance entri all'interno del bar.^"; PlayerTo(bar); return true; ], has enterable proper; !---------------------------------------------------------------------------- Room bar "Il bar di Benny" with description [; print "Benny offre la MIGLIORE selezione di pezzi dolci e sandwich. I clienti riempiono il banco dove Benny in persona riesce a servire, cucinare e riscuotere senza la minima esistazione. Sulla parete nord del bar vedi una porta rossa che conduce alla toilet."; if (costume has worn && self.appenauscito == false) { self.appenauscito = true; StartDaemon(clienti); print "^^Il clienti osservano il tuo costume con evidente curiostità."; } new_line; ], appenauscito false, ! Prima apparizione di Capitan Fato? before [; Go: if (noun ~= s_obj) return false; if (benny.caffe_non_pagato == true || benny.chiave_non_resa == true) { print "Come accenni ad uscire per strada, la grossa mano di Benny si appoggia sulla tua spalla."; if (benny.caffe_non_pagato == true && benny.chiave_non_resa == true) "^^~Hey! Hai ancora la mia chiave e non hai pagato il caffè. Ti sembro forse uno stupido?~ Ti scusi come soltanto un EROE sa fare e torni all'interno."; if (benny.caffe_non_pagato == true) "^^~Aspetta un minuto, Amico,~ dice. ~Stiamo cercando di sgattaiolare via senza pagare, vero?~ Mormodi velocemente una scusa e torni all'interno del bar. Benny torna ai suoi compiti continuando a guardarti sospettoso."; if (benny.chiave_non_resa == true) "^^~Dove credi di andare con la chiave del bagno?~ dice. ~Sei forse un ladro?~ Mentre Benny ti spinge di nuovo all'interno del locale, velocemente lo rassicuri spiegando che si è trattato solo di uno STUPEFACENTE errore."; } if (costume has worn) { deadflag = 5; ! hai vinto! "Esci in strada, dove le persone di passaggio riconoscono la STRAVAGANZA arcobaleno del costume di Capitan FATO e gridano il tuo nome con stupore mentre tu SALTI con forza sensazionale nel cielo BLU del mattino!"; } ], s_to strada, n_to porta_del_bagno; Appliance bancone "bancone" bar with name 'bancone' 'banco', article "il", description "Il bancone è fatto con una strabiliante LEGA di metalli, a PROVA di briciole e liquidi VERSATI e FACILE da pulire. I clienti si godono i loro spuntini con ESTREMA tranquillità, sicuri sapendo che il bancone può resistere a tutto.", has supporter; Object cibo "Gli spuntini di Benny" bar with name 'pezzi' 'dolci' 'cibo' 'sandwich' 'pezzo' 'dolce' 'pasta' 'paste' 'spuntino' 'spuntini', before [; "Adesso non è il momento di pensare al CIBO."; ], has scenery proper; Object menu "menu" bar with name 'menu' 'lista' 'listino', description "Il menu appeso al muro elenca tutti i cibi e bevande che Benny può servire. Peccato che tu non abbia mai imparato a leggere, ma fortunatamente c'è il disegno di una grossa tazza di caffè fra tutte le altre scritte incomprensibili.", before [; Take: "Il menu è affisso al muro alle spalle di Benny. Inoltre è inutile SCRITTURA."; ] has scenery; Object clienti "clienti" bar with name 'clienti' 'persone' 'cliene' 'gente' 'uomini' 'donne', description [; if (costume has worn) "La maggior parte sembra concentrarsi sul proprio cibo, ma alcuni ti osservano blaterando. Deve essere colpa dei colori IPNOTIZZANTI-INSTUPIDENTI del tuo costume."; else "Un groppo di INERMI e IGNARI mortali, gli stessi che Capitan FATO ha giurato di DIFENDERE il giorno in cui i suoi genitori si sono soffocati con una MALIGNA fetta di TORTA DI MIRTILLI."; ], life [; Ask,Tell,Answer: if (costume has worn) "La gente sembra NON FIDARSI dell'asspetto del tuo FAVOLOSO costume."; else "Come John Covarth, sei MENO interessante del cibo di Benny."; Kiss: "Non saprei dirti quali tipi di batteri MUTANTI questi STRANIERI stanno portando."; Attack: "L'insensato massacro di civili è una caratteristica dei CATTIVI. Si SUPPONE che tu protegga le persone come queste."; ], orders [; "Queste persone non sembrano essere cooperative."; ], numero_di_commenti 0, ! for counting the customer comments daemon [; if (location == bar && random(2) == 1) { self.numero_di_commenti = self.numero_di_commenti + 1; switch (self.numero_di_commenti) { 1: "^~Non sapevo ci fosse il circo in città,~ dice un clienti ad un altro. ~Sembra che i pagliacci abbiano il giorno libero.~"; 2: "^~Questi stilisti non sanno più che fare per farsi conoscere,~ sbuffa un signore corpulento guardando nella tua direzione. Quelli che hanno sentito cercano di nascondere il sogghigno."; 3: "^~Deve essere di nuovo carnevale,~ dice un uomo a sua moglie, che sogghigna dandoti un'occhiata di sfuggita. ~Come vola il tempo...~"; 4: "^~La cosa peggiore delle grandi città~, commenta qualcuno parlando con il suo compagno di tavolo, ~è che vedi gli insetti più schifosi uscire dai cessi.~"; 5: "^~VORREI davvero poter andare al lavoro in pigiama,~ dice una ragazza in tailleur ai suoi colleghi. ~E' COSI' comodo.~"; default: StopDaemon(self); } } ], has scenery animate pluralname; Object benny "Benny" bar with name 'benny', description "Un uomo ingannevolmente GRASSO dotato di incredibile agilità, Benny intrattiene i clienti schiacciandosi noci di cocco sulla fronte quando è dell'umore giusto.", chiesto_caffe false, ! il giocare ha chiesto un caffè? caffe_non_pagato false, ! Benny aspetta di essere pagato? chiave_non_resa false, ! Benny aspetta la chiave indietro? life [; Give: switch (noun) { vestiti: "Hai BISOGNO degli anonimi vestiti di John Covarth."; costume: "Hai BISOGNO della tua stupenda tuta ANTI-ACIDO."; chiave_del_bagno: self.chiave_non_resa = false; move chiave_del_bagno to benny; "Benny annuisce mentre tu MIRABILMENTE gli rendi la chiave."; moneta: remove moneta; self.caffe_non_pagato = false; "Con meravigliose movenze da ILLUSIONISTA, fai apparire una moneta dal tuo costume come se fosse uscita fuori dall'orecchio di Benny! Le persone attorno a te applaudono educatamente. Benny prende la moneta, e la morde SOSPETTOSO. ~Grazie, signore. Torni quando vuole,~ dice."; } Attack: if (costume has worn) { deadflag = 4; print "Davanti agli occhi pieni di orrore della gente circostante, salti MAGNIFICIENTEMENTE OLTRE il bancone e attacchi Benny con RIMARCHEVOLE, anche se NON sufficiente velocità. Benny ti riceve con uno sleale uppercut che spedisce la tua MASCELLA DI GRANITO attraverso tutto il locale.^^ ~Questi uomini in pigiama pensano di potersela prendere con gente innocente,~ sbuffa Benny, mentre la SPETTRALE mano dell'OSCURITA' cala sulla tua vista e tu perdi conoscenza."; } else "Questo non è un atto che potrebbe compiere il MITE John Covarth."; Kiss: "Non c'è tempo per INSENSATE infatuazioni."; Ask,Tell,Answer: "Benny è troppo occupato per mettersi a chiaccherare."; ], orders [; ! handles ASK BENNY FOR X and BENNY, GIVE ME XXX Give: switch (noun) { chiave_del_bagno: if (chiave_del_bagno in player) "Ma tu HAI già la chiave."; if (self.chiesto_caffe == true) { move chiave_del_bagno to player; self.chiave_non_resa = true; "Benny getta la chiave delle toilettes sul bancone, da cui tu la prendi con un destro e preciso movimento della tua mano SUPER-AGILE."; } else "~Il bagno è solo per i clienti.~ mormora, indicando con il dito il menu alle sue spalle."; caffe: if (self.chiesto_caffe == true) "Un caffè mi sembra abbastamza."; move caffe to bancone; self.chiesto_caffe = true; self.caffe_non_pagato = true; "In sole due mosse aggraziate, Benny posa di fronte a te il suo famosissimo Caffè macchiato."; cibo: "Mangiare ti prenderebbe troppo tempo, devi cambiarti ORA."; menu: "Con solo un piccolissimo singhiozzo, Benny fa un cenno verso il menu affisso al muro alle sue spalle."; default: "~Non credo sia sul menù, signore.~"; } ], has scenery animate male proper transparent; Object caffe "tazza di caffè" benny with name 'tazza' 'di' 'caffe' 'caffè' 'macchiato' 'cappuccino', initial "Sul bancone, il caffè fumante ti stà aspettando.", description [; if (self in benny) "Il disegno sul menù ha SICURAMENTE un bell'aspetto."; else "Aroma delizioso."; ], before [; Take,Drink,Taste: if (self in benny) "Forse dovresti ordinarne uno a Benny."; else { move self to benny; "Prendi la tazzina e ne bevi un sorso. La REPUTAZIONE MONDIALE di Benny è ben meritata. Appena finisci, Benny porta via la tazzina. ~Il caffè viene un'euro, signore.~"; } Buy: if (moneta in player) <>; else "Non hai soldi."; Smell: "Se la tua IPERATTIVA ghiandola pituitaria è affidabile, è una miscela colombiana."; ] has female; Object fuori_dal_bagno "bagno" bar with name 'bagno' 'cesso' 'toilette' 'toilet' 'ritirata' 'gabinetto', before [; Enter: if (porta_del_bagno has open) { PlayerTo(bagno); return true; } else "La tua SUPERBA mente deduttiva comprende che la PORTA è chiusa."; Examine: if (porta_del_bagno has open) "Un pensiero brillante illumina il tuo cervello SUPERLATIVO: una dettagliata esplorazione del bagno sarebbe ESTREMAMENTE facilitata se tu entrassi all'interno."; else "Con un TREMENDO sforzo di volontà, evochi la tua imperscrutabile VISIONE ASTRALE e la proietti in AVANTI attraverso la porta chiuse... fino a che non ti ricordi che è il Dottor Mystere ad avere i poteri mistici."; Open: <>; Close: <>; Take,Push,Pull: "Sarebbe PARTE dell'edificio."; ], has scenery openable enterable; Object porta_del_bagno with pname 'porta' '.x' 'rossa' '.x' 'del' '.x' 'bagno', short_name [; if (location == bar) print "porta che conduce al bagno"; else print "porta che conduce al bar"; return true; ], description [; if (location == bar) "Una porta rossa con le inequivocabili silhouette di un uomo e di una donna che segnano l'ingresso ai locali igienici. C'è una nota scarabocchiata attaccata alla superficie della porta."; else "Una porta rossa senza alcuna caratteristica NOTEVOLE."; ], found_in bar bagno, before [ ks; Open: if (self hasnt locked || chiave_del_bagno notin player) return false; ks = keep_silent; keep_silent = true; ; keep_silent = ks; return true; Lock: if (self hasnt open) return false; print "(prima chiudi ", (the) self, ")^"; ks = keep_silent; keep_silent = true; ; keep_silent = ks; return false; ], after [ ks; Unlock: if (self has locked) return false; print "Apri ", (the) self, ".^"; ks = keep_silent; keep_silent = true; ; keep_silent = ks; return true; Open: give bagno light; Close: give bagno ~light; ], door_dir [; if (location == bar) return n_to; else return s_to; ], door_to [; if (location == bar) return bagno; else return bar; ], with_key chiave_del_bagno, has scenery door openable lockable locked female; Object chiave_del_bagno "chiave del bagno" benny with pname 'chiave' '.x' 'del' '.x' 'bagno', article "la", invent [; if (vestiti has worn) print "la chiave CRUCIALE"; else print "la chiave ormai usata e IRRILEVANTE"; return true; ], description "I tuoi sensi ULTRA-PERCETTIVI non individuano niente di particolare sulla chiave del bagno.", before [; if (self in benny) "SCANDAGLI i l'ambiente con la tua CONSAPEVOLEZZA POTENZIATA, ma non riesci ad individuare alcuna chiave."; ] has female; Object "nota" bar with name 'nota' 'scarabocchiata', description [; if (self.letta == false) { self.letta = true; "Rivolgi la tua visione a ULTRAFREQUENZA AVANZATA verso la nota e socchiudi gli occhi concentrandoti, arrendendoti solo quando i bordi della nota iniziano ad annerirsi sotto l'incredibile intensità del tuo sguardo infuocato. Rifletti ancora una volta su quanto sarebbe stato utile se tu avessi mai imparato a leggere. ^^Una vecchia signora premurosa si avvicina e ti spiega: ~Devi chiedere la chiave a Benny, al bancone.~^^ Ti volti verso di lei e inizi a dire: ~Oh, la SAPEVO, ma...~^^ ~Di nulla, figliolo,~ dice la signora mentre esce dal bar."; } else "La nota indecifrabile e annerita non ha più SEGRETI per te ADESSO. Ha!"; ], letta false, ! il giocatore ha già letto la nota? before [; Take: "Non hai motivo di raccogliere note INDECIFRABILI."; ], has scenery female; !---------------------------------------------------------------------------- Room bagno "Un bagno unisex" with description "Una stanza quadrata, incredibilmente PULITA, dalle pareti ricoperte di mattonelle di ceramica, che non contiene molto di più di un gabinetto e un interruttore. L'unica uscita è a sud, attraverso la porta che riconduce al bar.", s_to porta_del_bagno, has ~light scored; Appliance interruttore "interruttore" bagno with name 'interruttore', description "Un notevole PRODIGIO di tecnologia e SCIENZA, elegante e FACILE da usare.", before [; Push: if (self has on) <>; else <>; ], after [; SwitchOn: give self light; "Accendi la luce del bagno."; SwitchOff: give self ~light; "Spegni la luce del bagno."; ], has switchable ~on; Appliance gabinetto "gabinetto" bagno with name 'gabinetto' 'wc' 'cesso' 'water' 'water-closed' 'tazza', before [; Examine: if (moneta in self) { move moneta to parent(self); "L'ultima persona ha CIVILMENTE tirato l'acqua dopo aver usato il gabinetto, ma ha dimenticato di raccogliere la PREZIOSA moneta che è caduta dai suoi pantaloni."; } ]; Object moneta "moneta" gabinetto with name 'moneta' 'euro' 'soldi', description "E' una moneta da un EURO.", before [; Drop: "Lasciare una moneta tanto preziosa? Ha, ha! Questa deve essere una dimostrazione del tuo ULTRA-FRIVOLO senso dell'umorismo!"; ], after [; Take: "Ti accosci nella posizione del DRAGO DORMIENTE e senza indugio raccogli e intaschi la moneta con la PRESA PANORAMICA."; ], has scored female; !============================================================================ ! The player's possessions Object vestiti "i tuoi vestiti" with name 'vestiti' 'vestito' 'ordinari', description "Vestiti perfettamente ORDINARI per un NESSUNO come John Covarth.", before [; Disrobe,Change: switch (location) { strada: if (player in cabina) "Non avendo la super-velocità di Superman, realizzi che sarebbe sconveniente cambiarti sotto gli occhi delle persone che passano."; else "In mezzo di strada? Questo sarebbe uno SCANDALO, e inoltre rivelerebbe la tua identità segreta."; bar: "Benny non sopporta le buffonate nel suo locale."; bagno: if (porta_del_bagno has open) "La porta rimane aperta, e ci sono decine di occhi curiosi. Dovresti arrestarti da solo per condotta IMMORALE."; print "Ti togli rapidamente i vestiti e li raccogni in un pacco ULTRA-MINUSCOLO facilmente trasportabile. "; if (porta_del_bagno has locked) { give vestiti ~worn; give costume worn; "Poi spiehi il tuo costume in COTONE INVULNERABILE e ti trasformi in Capitan FATO, difensore della libertà e avversario della tirannia!"; } else { deadflag = 3; "Stai per infilarti il costume di Capitan FATO, quando la porta si apre e una giovane donna entra. LEi ti guarda e inizia ad urlare, ~UNO STUPRATORE. UNO STUPRATORE NUDO NEL BAGNO!!!~^^ Tutti coloro che erano nel bar giungono in soccorso, solo per vederti saltare in modo ridicolo su una gamba sola mentre cerchi di vestirti. Le loro risate segnano la RAPIDA FINE della tua carriera di combattente del crimine!"; } } ], has clothing proper pluralname; Object costume "il tuo costume" with name 'capitan' 'fato' 'costume' 'tuta', description "Manifattura allo STATO DELL'ARTE, 100% COTONELASTICO(tm) rinforzato chimicamente.", before [; Wear: if (vestiti has worn) "Prima dovresti toglierti gli ordinari e ANONIMI vestiti di John Covarth."; Disrobe,Change: if (vestiti has worn) "Non lo stai indossando!"; else "Hai BISOGNO del tuo costume per combattere il crimine!"; Drop: "Il tuo UNICO costume multicolore da Capitan FATO? Il più desiderato capo d'abbigliamento in tutta la città? Certamente NO!"; ], has clothing proper; !============================================================================ ! Entry point routines [ Initialise; #Ifdef DEBUG; pname_verify(); #Endif; ! suggested by pname.h location = strada; move costume to player; move vestiti to player; give vestiti worn; lookmode = 2; "^^Impersonando il tranquillo John Covarth, assistente garzone in una insignificante drogheria, ti FERMI di colpo quando il tuo udito finissimo decifra una chiamata radio della POLIZIA. Un FOLLE stà attaccando la popolazione al Parco Granaio! Devi indossare velocemente il tuo costume da Capitan FATO...!^^"; ]; [ DeathMessage; if (deadflag == 3) print "La tua identità segreta è stata rivelata."; if (deadflag == 4) print "Sei stato VERGOGNOSAMENTE sconfitto."; if (deadflag == 5) print "Voli via, diretto a RISOLVERE la SITUAZIONE!"; ]; [ InScope person item; if (person == player && location == thedark && real_location == bagno) { PlaceInScope(interruttore); PlaceInScope(porta_del_bagno); } if (person == player && location == thedark) objectloop (item in parent(player)) if (item has moved) PlaceInScope(item); return false; ]; !============================================================================ ! Standard and extended grammar Include "ItalianG"; [ ChangeSub; if (location == thedark) "L'ultima volta che ti sei cambiato al buio, ti sei messo la tuta al contrario!"; if (noun has pluralname) print "Non sono"; else print "Non è"; " qualcosa che devi cambiare per risolvere la situazione."; ]; Verb 'cambiati' * noun -> Change; ! Extend 'ask' ! * creature 'for' topic -> AskFor; !============================================================================ Compile-as-you-go ***************** "Capitan Destino" presenta le stesse difficoltà di "Guglielmo Tell": se digiti il codice così come lo trovi mentre leggi la guida, l'avventura non potrà essere compilata fin quando non si raggiunge la fine del tredicesimo capitolo. Per compilare il gioco mentre si procede alla lettura dei capitoli precedenti è necessario aggiungere questi stubs alla fine del codice presentato al termine del capitolo 10. ! ================================================================ ! DEFINIZIONI TEMPORANEE NECESSARIE ALLA COMPILAZIONE ALLA FINE DEL CAPITOLO 10 Room bar; Object vestiti; Sostituisci questi stubs con questi altri alla fine del capitolo 11: ! ================================================================ ! DEFINIZIONI TEMPORANEE NECESSARIE ALLA COMPILAZIONE ALLA FINE DEL CAPITOLO 11 Room bagno; Object vestiti; Object costume; e con questi alla fine del capitolo 12: ! ================================================================ ! DEFINIZIONI TEMPORANEE NECESSARIE ALLA COMPILAZIONE ALLA FINE DEL CAPITOLO 12 Room bagno; Object vestiti; Object costume; Object moneta; Object caffe; Object cibo; Object menu; Alla fine del capitolo 13 il gioco sarà completo, pertanto potrai eliminare gli stubs temporanei.