! ---------------------------------------------------------------------------- ! Avventura 040324 ! ! Traduzione Italiana del classico gioco di Will Crowther e Don Woods. ! Basato sull'adattamento per Inform di Graham Nelson (Advent 961209) ! ! (c) 1997 - 2004 by Giovanni Riccardi ! ! Release 3: 040324 (piccole correzioni qua e là) ! Release 2: 021014 (seconda versione riveduta a correnta in molti punti) ! ! ---------------------------------------------------------------------------- Constant TEST_VERSION; !Constant DEBUG; Constant Story "AVVENTURA^"; Constant Headline "^L'avventura originale^ di Will Crowther (1973) e Don Woods (1977)^ Ricostruita in tre fasi da:^ Donald Ekman, David M. Baggett (1993) e Graham Nelson (1994)^ Traduzione e adattamento di Giovanni Riccardi (1997 - 2004)^ [In memoriam Stephen Bishop (1820? - 1857): GN e GR]^^"; Serial "040324"; Release 3; Constant MAX_CARRIED = 7; Constant MAX_SCORE = 350; Constant MAX_TREASURES = 15; Constant AMUSING_PROVIDED; Include "Parser"; Include "VerbLib"; Include "replace"; Attribute nodwarf; Attribute treasure_found; Attribute multitude; Global caves_closed; Global canyon_from; Global treasures_found; Global deaths; Global dark_warning; Global feefie_count; ! ---------------------------------------------------------------------------- ! Regole per i tesori, che sono disseminati all'interno del gioco ! ---------------------------------------------------------------------------- Class Treasure with depositpoints 10, after [; Take: if (location==Inside_Building) score=score-self.depositpoints; score=score+5; if (noun hasnt treasure_found) { give noun treasure_found; treasures_found++; score=score+2; } print "Pres", (genderandnumber) noun, "!";rtrue; Drop: score=score-5; if (location==Inside_Building) { score=score+self.depositpoints; print "Depositat", (genderandnumber) noun, " al sicuro!"; } rtrue; ]; ! ---------------------------------------------------------------------------- ! Il mondo esterno ! ---------------------------------------------------------------------------- Class AboveGround has light nodwarf; AboveGround At_End_Of_Road "Fine Di Una Strada" with description "Ti trovi alla fine di una strada davanti ad una piccola costruzione di mattoni. Attorno a te c'@`e la foresta. Un piccolo ruscello scorre fuori dall'edificio gi@`u in una gola.", before ! 20/12/1999 [; Enter: <>; ! Gestisce il comando "entra dentro all'edificio" ], ! (specifico della versione italiana) w_to At_Hill_In_Road, u_to At_Hill_In_Road, e_to Inside_Building, d_to In_A_Valley, s_to In_A_Valley, n_to In_Forest_1, in_to Inside_Building, name "gola" "strada" "via" "sentiero"; Object "pozzo" with name "pozzo" "mattoni" "costruzione" "piccola" "edificio", description "@`E una piccola costruzione di mattoni. Sembra un pozzo.", found_in At_End_Of_Road At_Hill_In_Road Inside_Building has scenery; Object Stream "ruscello" with name "ruscello" "acqua" "fiume" "lago" "piccolo", found_in At_End_Of_Road In_A_Valley At_Slit_In_Streambed In_Pit In_Cavern_With_Waterfall At_Reservoir Inside_Building, before [; Drink: "Hai bevuto dal ruscello. L'acqua ha un forte sapore di minerali, ma non @`e sgradevole. @`E molto fredda."; Take: if (bottle notin player) "Non hai niente in cui mettere l'acqua."; <>; Insert: if (second == bottle) <>; "Non hai niente in cui mettere l'acqua."; Receive: if (noun == ming_vase) { remove ming_vase; move shards to location; score=score-5; "L'improvviso cambiamento di temperatura ha frantumato il vaso."; } if (noun == bottle) <>; remove noun; if (noun ofclass Treasure) score=score-5; print_ret (The) noun, " ", (isorare) noun, " trasportat", (genderandnumber) noun, " via dal ruscello."; ], has scenery; Object "strada" with name "strada" "sentiero" "via" "sporca", description "La strada @`e sporca (E non @`e nemmeno di mattoni gialli).", found_in At_End_Of_Road At_Hill_In_Road In_Forest_2 has scenery female; Object "foresta" with name "foresta" "albero" "alberi" "quercia" "querce" "acero" "aceri" "boschetto" "pino" "pini" "abete" "abeti" "betulla" "betulle" "frassino" "frassini" "cespugli" "foglie" "bacca" "bacche" "legno", description "La foresta @`e formata soprattutto da grandi querce dal legno duro e da aceri, con qualche pino o abete. Non c'@`e molto sottobosco, soprattuto betulle e frassini pi@`u qualche cespuglio di varia specie. La visibilit@`a in questo periodo dell'anno @`e scarsa (a causa di tutte queste foglie), ma il cammino dovrebbe essere abbastanza facile se giri attorno agli alberi e ai cespugli pieni di bacche.", found_in At_End_Of_Road At_Hill_In_Road In_A_Valley In_Forest_1 In_Forest_2 has scenery female multitude; AboveGround At_Hill_In_Road "Una Collina Sulla Strada" with description "Sei salito sopra una collina, sempre nella foresta. La strada scende dall'altro lato della collina. C'@`e un edificio in lontananza.", e_to At_End_Of_Road, n_to At_End_Of_Road, d_to At_End_Of_Road, s_to In_Forest_1, name "gola" "strada" "via" "sentiero"; Object -> "collina" with description "@`E una tipica collina.", name "collina" "dosso" "altura" has scenery female; Object -> "altro lato della collina" with article "l'", description "Perch@'e non lo esplori da solo?", name "lato" "altro" "della" has scenery; AboveGround Inside_Building "Dentro l'Edificio" with description "Sei dentro un edificio, un pozzo per estrarre l'acqua di una grande sorgente.", cant_go "Il ruscello scorre fuori attraverso un paio di tubi di circa 30 cm di diametro. L'unica uscita @`e a ovest.", before [; Enter: if (noun==Spring or SewerPipes) "Il ruscello scorre fuori attraverso un paio di tubi di circa 30 cm di diametro. Sarebbe meglio utilizzare l'uscita."; Xyzzy: if (In_Debris_Room hasnt visited) rfalse; PlayerTo(In_Debris_Room); rtrue; Plugh: if (At_Y2 hasnt visited) rfalse; PlayerTo(At_Y2); rtrue; ], w_to At_End_Of_Road, out_to At_End_Of_Road, in_to "I tubi sono troppo piccoli."; Object -> Spring "sorgente" with name "sorgente" "grande", description "Il ruscello scorre fuori attraverso un paio di tubi di circa 30 cm di diametro." has scenery female; Object -> SewerPipes "paio di tubi di circa 30 cm di diametro" with name "tubi" "tubo" "30" "cm" "diametro", description "Troppo piccoli. L'unica uscita @`e a ovest." has scenery pluralname; Object -> set_of_keys "mazzo di chiavi" with description "@`E un normale mazzo di chiavi.", initial "Ci sono delle chiavi qui sul pavimento.", before [; Count: "Circa una dozzina di chiavi."; ], name "mazzo" "di" "chiavi" "chiave" has multitude; Object -> tasty_food "cibo gustoso" with description "Sembra squisito!", article "del", initial "C'@`e del cibo gustoso qui.", name "cibo" "razione" "razioni" "squisito" "gustoso" "delizioso" "saporito", after [; Eat: "Delizioso!"; ], has edible; Object -> brass_lantern "lanterna di ottone" with name "lampada" "lanterna" "luce" "di" "ottone" "lucida", when_off "C'@`e una lampada lucida di ottone qui vicino.", when_on "La tua lampada @`e qui vicino che emana la sua luce.", power_remaining 330, replace_batteries [; if (fresh_batteries in player or location) { remove fresh_batteries; give fresh_batteries general; move old_batteries to location; self.power_remaining = 2500; "Mi sono preso la libert@`a di sostituire le batterie."; } ], daemon [ t; if (self hasnt on) { StopDaemon(self); rtrue; } t = --(self.power_remaining); if (t==0) give self ~on ~light; if (self in player || self in location) { if (t==0) { print "La tua lampada ha esaurito le batterie."; if (fresh_batteries notin player && location hasnt light) { deadflag=3; " Non puoi esplorare la caverna senza una lampada."; } else self.replace_batteries(); new_line; rtrue; } if (t==30) { print "La tua lampada emana sempre meno luce."; if (fresh_batteries has general) " Sei anche sprovvisto di batterie di riserva. Faresti meglio ad esaurire quelle che hai."; if (fresh_batteries in VendingMachine && Dead_End_14 has visited) " Faresti meglio ad esaurire quelle che hai, a meno che tu non trovi batterie cariche. Mi sembra di ricordare che c'@`e un distributore automatico nel labirinto . Porta qualche moneta con te."; if (fresh_batteries notin VendingMachine or player or location) " Ti conviene tornare indietro per quelle batterie."; new_line; rtrue; } } ], before [; Examine: print "@`E una lampada lucida di ottone"; if (self hasnt on) ". Adesso non @`e accesa."; if (self.power_remaining < 30) ", che risplende debolmente."; ", che emana una forte luce."; Burn: <>; Rub: "Se vuoi puoi anche strofinare una lampada elettrica. Comunque, non è successo nulla di eccitante."; SwitchOn: if (self.power_remaining <= 0) "Sfortunatamente, le batterie sembrano esaurite."; Receive: if (noun == old_batteries) "Quelle batterie sono esaurite; non produrranno niente di utile."; if (noun == fresh_batteries) { self.replace_batteries(); rtrue; } "L'unica cosa utile che potresti mettere nella lampada @`e un paio di batterie cariche."; ], after [; SwitchOn: give self light; StartDaemon(self); SwitchOff: give self ~light; ], has female switchable; Object -> bottle "piccola bottiglia" with name "bottiglia" "borraccia", initial "C'@`e una bottiglia vuota.", before [; LetGo: if (noun in bottle) "@`E gi@`a nella bottiglia."; Receive: if (noun == stream or Oil) <>; else "Si suppone che la bottiglia possa contenere solo dei liquidi."; Fill: if (child(bottle) ~= nothing) "La bottiglia @`e gi@`a piena."; if (stream in location || Spring in location) { move water_in_the_bottle to bottle; "La bottiglia @`e ora piena d'acqua."; } if (Oil in location) { move oil_in_the_bottle to bottle; "La bottiglia @`e ora piena d'olio."; } "Non c'@`e niente qui con cui riempire la bottiglia."; Empty: if (child(bottle) == nothing) "La bottiglia @`e gi@`a vuota!"; remove child(bottle); "La bottiglia @`e vuota, ma ora il terreno @`e bagnato."; ], has female container open; Object water_in_the_bottle "acqua" with name "bottiglia" "acqua" "h2o", article "dell'", before [; Drink: remove water_in_the_bottle; <>; ], description "A me sembra della normalissima acqua." has female; Object oil_in_the_bottle "olio nella bottiglia" with name "olio" "bottiglia" "lubrificante" "grasso", article "dell'", before [; Drink: <>; ], description "A me sembra dell'olio normalissimo."; AboveGround In_Forest_1 "Nella Foresta" with description "Sei nella foresta, con una profonda valle da un lato.", e_to In_A_Valley, d_to In_A_Valley, n_to In_Forest_1, w_to In_Forest_1, s_to In_Forest_1, initial [; if (random(2)==1) PlayerTo(In_Forest_2,1); ]; AboveGround In_Forest_2 "Nella Foresta" with description "Sei nella foresta vicino ad una valle e ad una strada.", n_to At_End_Of_Road, e_to In_A_Valley, w_to In_A_Valley, d_to In_A_Valley, s_to In_Forest_1; AboveGround In_A_Valley "In Una Valle" with description "Sei in una valle nella foresta vicino ad un ruscello che scorre su di un letto roccioso.", n_to At_End_Of_Road, e_to In_Forest_1, w_to In_Forest_1, u_to In_Forest_1, s_to At_Slit_In_Streambed, d_to At_Slit_In_Streambed, name "valle"; Object -> "letto del ruscello" with name "letto" "roccioso" "piccolo" "asciutto" has scenery; AboveGround At_Slit_In_Streambed "Fessura Nel Letto Del Ruscello" with description "Ai tuoi piedi tutta l'acqua del ruscello scorre dentro un'apertura nella roccia di circa 5 cm. Il resto del letto del ruscello @`e roccia nuda.", n_to In_A_Valley, e_to In_Forest_1, w_to In_Forest_1, s_to Outside_Grate, d_to "Non puoi entrare dentro una fessura di 5 cm!", in_to "Non puoi entrare dentro una fessura di 5 cm!"; Object -> "fessura di 5 cm" with name "fessura" "cinque" "cm" , description "@`E solamente una fessura nella roccia, attraverso la quale scorre il ruscello.", before [; Enter: "Non puoi entrare dentro una fessura di 5 cm!"; ], has scenery female; AboveGround Outside_Grate "Fuori la Grata" with description "Sei in una depressione di circa 6 m ricoperta di terra battuta. A terra c'@`e una grata di ferro montata nel calcestruzzo. Il letto secco di un ruscello conduce nella depressione.", e_to In_Forest_1, w_to In_Forest_1, s_to In_Forest_1, n_to At_Slit_In_Streambed, d_to [; if (Grate hasnt locked && Grate hasnt open) { print "(prima apri la grata)^"; give Grate open; } return Grate; ]; Object -> "depressione di 6 m" with description "Ti ci trovi dentro.", name "depressione" "terra" "sei" "m" , has scenery female; Object -> Grate "grata di ferro" with name "grata" "botola" "cancello" "metallo" "ferro", description "Sembra solamente una grata montata nel calcestruzzo.", with_key set_of_keys, door_dir [; if (location==Below_The_Grate) return u_to; return d_to; ], door_to [; if (location==Below_The_Grate) return Outside_Grate; return Below_The_Grate; ], describe [; if (self has open) "^La grata @`e aperta."; if (self hasnt locked) "^La grata non @`e pi@`u serrata e pu@`o essere aperta."; rtrue; ], found_in Below_The_Grate Outside_Grate has static door openable lockable locked female; ! ---------------------------------------------------------------------------- ! Facilis descensus Averno... ! ---------------------------------------------------------------------------- Object Below_The_Grate "Sotto La Grata" with description "Ti trovi in una camera sotto una grata di ferro che conduce in superficie. Un basso corridoio lastricato di ciottoli conduce all'interno verso ovest.", w_to In_Cobble_Crawl, u_to Grate has light; Object "ciottoli" with description "Sono solamente ciottoli.", name "ciottolo" "ciottoli" "lastricato", found_in In_Cobble_Crawl In_Debris_Room Below_The_Grate has pluralname scenery multitude; Object In_Cobble_Crawl "Nel Corridoio Lastricato" with description "Stai strisciando sopra i ciottoli in un corridoio molto basso. C'@`e una debole luce che proviene dall'uscita est del corridoio.", e_to Below_The_Grate, w_to In_Debris_Room has light; Object -> wicker_cage "gabbia di vimini" with description "@`E una piccola gabbia di vimini.", initial "C'@`e una piccola gabbia di vimini poggiata qui vicino.", name "gabbia" "piccola" "vimini", after [; Open: if (little_bird notin self) rfalse; print "(releasing the little bird)^"; <>; ], has female container open openable transparent; Object In_Debris_Room "Stanza Piena Di Detriti" with description "Ti trovi in una stanza piena di detriti lavati via dalle pareti. Un corridoio basso e largo lastricato di ciottoli diventa pieno di fango e detriti in questa stanza, ma un canyon molto scomodo sale in alto verso ovest.^^ Una scritta sulla parete dice, ~Parola Magica XYZZY.~", e_to In_Cobble_Crawl, u_to In_Awkward_Sloping_E_W_Canyon, w_to In_Awkward_Sloping_E_W_Canyon, before [; Xyzzy: PlayerTo(Inside_Building); rtrue; ], has nodwarf; Object -> "detriti" with description "Yuck.", name "detriti" "sporcizia" "fango" has scenery multitude pluralname; Object -> "scritta" with description "La scritta dice ~Parola Magica XYZZY~.", name "scritta" "nota" has scenery female; Object -> black_rod "bastone nero con una stella arrugginita in punta" with description "@`E un bastone di circa un metro con una stella arrugginita in punta.", initial "Qui vicino c'@`e bastone di circa un metro con una stella arrugginita in punta.", name "bastone" "stella" "nero" "arrugginita" "stella" "circa " "un" "metro" "punta" "in", before [; Wave: if (location==West_Side_Of_Fissure or On_East_Bank_Of_Fissure) { if (caves_closed) "Strano. Non @`e successo niente."; if (CrystalBridge notin nothing) { remove CrystalBridge; give CrystalBridge absent; West_Side_Of_Fissure.e_to = 0; On_East_Bank_Of_Fissure.w_to = 0; "Il ponte di cristallo @`e scomparso!"; } else { move CrystalBridge to location; give CrystalBridge ~absent; West_Side_Of_Fissure.e_to = CrystalBridge; On_East_Bank_Of_Fissure.w_to = CrystalBridge; "Un ponte di cristallo attraversa la cavit@`a."; } } "Non @`e successo niente."; ]; Object In_Awkward_Sloping_E_W_Canyon "Canyon E/O" with description "Ti trovi in un canyon in pendenza. Il canyon va da est a ovest.", d_to In_Debris_Room, e_to In_Debris_Room, u_to In_Bird_Chamber, w_to In_Bird_Chamber has nodwarf; ! ---------------------------------------------------------------------------- ! L'uccellino e il suo ambiente naturale ! ---------------------------------------------------------------------------- Object In_Bird_Chamber "Sala Del Fiume Arancione" with description "Ti trovi in una splendida sala alta circa 10 m. Le pareti sono dei fiumi congelati di pietre arancioni. Ci sono un canyon in pendenza e un buon passaggio ai lati est e ovest della sala.", e_to In_Awkward_Sloping_E_W_Canyon, w_to At_Top_Of_Small_Pit has nodwarf; Object -> little_bird "piccolo uccello" with name "allegro" "contento" "piccolo" "uccello" "uccellino", initial "Un allegro uccellino sta cantando qui vicino.", before [; Examine: if (self in wicker_cage) "L'uccellino non sembra molto felice nella gabbia."; "L'allegro uccellino sta cantando qui vicino."; Insert: if (second==wicker_cage) <>; else "Non mettere il povero uccellino dentro ", (the) second, "!"; Drop, Remove: if (self in wicker_cage) { print "(L'uccellino @`e uscito dalla gabbia.)^^"; <>; } Take, Catch: if (self in wicker_cage) "Hai gi@`a il piccolo uccello. Se apri la gabbia sicuramente voler@`a via."; if (wicker_cage notin player) "Puoi anche catturare l'uccellino, Ma non puoi trasportarlo."; if (black_rod in player) "L'uccellino non era impaurito quando sei entrato,ma come ti sei avvicinato si @`e sentito disturbato. Non riesci a catturarlo."; move self to wicker_cage; give wicker_cage ~open; "Hai catturato l'uccellino. Ora @`e al sicuro nella gabbia di vimini."; Release: if (self notin wicker_cage) "Non c'@`e nessun uccellino nella gabbia."; give wicker_cage open; move self to location; if (Snake in location) { remove Snake; "L'uccellino attacca il serpente verde, e in un modo sbalorditivo lo caccia via."; } if (Dragon in location) { remove self; "L'uccellino attacca il drago verde, e in modo sbalorditivo viene ridotto in cenere. Le sue ceneri volano via."; } "L'ucellino @`e ora libero di volare."; ], life [; Give: "Non @`e affamato. (Desidera semplicemente volare libero tra i fiordi). In tutti i modi, credo che preferisca dei semi."; Order, Ask, Answer: "Chip! Chip!"; Attack: if (self in wicker_cage) "Oh! lascia in pace il povero uccellino infelice."; remove self; "L'uccellino @`e morto. Il suo corpo sta scomparendo."; ], has animate; Object At_Top_Of_Small_Pit "Sopra Una Piccola Buca" with description "Ai tuoi piedi c'@`e una piccola buca dalla quale esce una nebbia bianca. Un passaggio da ovest termina qui eccetto che per una piccola fessura oltre la quale continua.^^ Delle rocce ruvide conducono gi@`u nella cavit@`a.", e_to In_Bird_Chamber, w_to "La fessura @`e troppo piccola per entrarci.", d_to [; if (large_gold_nugget in player) { deadflag=1; "Ti trovi in fondo alla buca con il collo spezzato."; } return In_Hall_Of_Mists; ], before [; Enter: if (noun==PitCrack) "La fessura @`e troppo piccola per entrarci."; ], has nodwarf; Object -> "piccola buca" with description "Dalla buca escono tracce di una nebbia bianca.", name "cavit@`a" "piccola" "buca" has scenery female; Object -> PitCrack "fessura" with description "La fessura @`e molto piccola -- troppo piccola per entrarci.", name "piccola" "fessura" has scenery female; Object "nebbia" with description "La nebbia @`e un vapore bianco, di solito vapore acqueo. Da tempi immemorabili si vede nelle caverne. Pu@`o essere trovato dappertutto ma @`e molto spesso il segno di una profonda cavit@`a che conduce all'acqua.", name "nebbia" "vapore" "vapori" "bianca" "bianco", found_in At_Top_Of_Small_Pit In_Hall_Of_Mists On_East_Bank_Of_Fissure At_Window_On_Pit_1 At_West_End_Of_Hall_Of_Mists In_Misty_Cavern In_Mirror_Canyon At_Reservoir At_Window_On_Pit_2 On_Sw_Side_Of_Chasm has scenery female; ! ---------------------------------------------------------------------------- ! Le caverne cominciano: La Sala delle Nebbie ! ---------------------------------------------------------------------------- Object In_Hall_Of_Mists "Nella Sala Delle Nebbie" with initial [; if (self has general) rfalse; score=score+25; give self general; ], description "Ti trovi alla fine di una vasta sala che prosegue in lontananza verso ovest fuori della tua vista. Ci sono aperture su entrambi i lati. Qui vicino, una grande scala di pietra conduce in basso. La sala @`e satura dei vapori di una nebbia bianca che ondeggia avanti e indietro come se fosse viva. Un vento freddo soffia dalla scala. C'@`e un passaggio sopra una cupola dietro di te.^^ Delle pietre ruvide conduco in alto verso la cupola.", s_to In_Nugget_Of_Gold_Room, w_to On_East_Bank_Of_Fissure, d_to In_Hall_Of_Mt_King, n_to In_Hall_Of_Mt_King, u_to [; if (large_gold_nugget in player) "Non @`e possible risalire verso la cupola."; return At_Top_Of_Small_Pit; ]; Object -> "scala di pietra" with description "La scala conduce di sotto.", name "scala" "scale" "di" "pietra" has scenery female; Object -> "scalini di pietre ruvide" with description "Questi scalini di pietre ruvide conducono in alto verso la cupola.", name "scala" "scale" "scalini" "di" "pietre" "ruvide" has scenery multitude pluralname; Object -> "cupola" with name "cupola", before [; Examine: if (large_gold_nugget in player) "Non sono sicuro che tu possa scalare la cupola con tutto quel carico."; "Sembra che tu possa scalarla."; Climb: MovePlayer(u_obj); rtrue; ], has scenery female; Object In_Nugget_Of_Gold_Room "Stanza Bassa" with description "Questa @`e una stanza bassa con una cruda scritta sulla parete:^^ ~Non riuscirai a risalire gli scalini~.", n_to In_Hall_Of_Mists; Object -> "scritta" with description "La scritta dice, ~Non riuscirai a risalire gli scalini~.", name "scritta" "cruda" "nota" has scenery female; Treasure -> large_gold_nugget "grande pepita d'oro" with description "@`E una grande pepita d'oro scintillante!", initial "C'@`e una grande pepita d'oro scintillante qui vicino!", name "d^oro" "pepita" "grande" has female; Class FissureRoom with before [; Jump: if (CrystalBridge hasnt absent) "Con rispetto ti suggerisco di attraversare il ponte invece di saltare."; deadflag=1; "Non puoi farlo!"; ], d_to "La cavit@`a @`e terrificante!"; FissureRoom On_East_Bank_Of_Fissure "Sulla Sponda Est Della Cavit@`a" with description "Ti trovi sulla sponda est di una cavit@`a che taglia in due la sala. La nebbia @`e proprio densa qui, e la cavit@`a @`e troppo larga da saltare.", e_to In_Hall_Of_Mists, w_to "La cavit@`a @`e troppo larga."; FissureRoom West_Side_Of_Fissure "Lato Ovest Della Cavit@`a" with description "Ti trovi sul lato ovest della cavit@`a nella sala delle nebbie.", w_to At_West_End_Of_Hall_Of_Mists, e_to "La cavit@`a @`e troppo larga.", n_to At_West_End_Of_Hall_Of_Mists, before [; Go: if (location==West_Side_Of_Fissure && noun==n_obj) print "Hai strisciato attraverso un corridoi molto basso parallelo e a nord della sala delle nebbie.^"; ]; Treasure -> "diamanti" with article "dei", description "Sembrano essere della pi@`u alta qualit@`a!", initial "Ci sono dei diamanti qui!", name "diamante" "diamanti" "dei" "alta" "qualit@`a" has multitude; Object CrystalBridge "ponte di cristallo" with initial "Un ponte di scristallo ora attraversa la cavit@`a.", description "Esso attraversa la cavit@`a, dandoti la posssibilit@`a di attraversarla.", door_dir [; if (location==West_Side_Of_Fissure) return e_to; return w_to; ], door_to [; if (location==West_Side_Of_Fissure) return On_East_Bank_Of_Fissure; return West_Side_Of_Fissure; ], name "cristallo" "di" "ponte", found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure has static door open absent; Object "cavit@`a" with name "larga" "cavit@`a" "grande", description "La cavit@`a sembra troppo larga da saltare.", found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure has scenery female; Object At_West_End_Of_Hall_Of_Mists "Sul Lato Ovest Della Sala Delle Nebbie" with description "Ti trovi sul lato ovest della sala delle nebbie. Un passaggio largo e basso continua verso ovest e un altro si dirige a nord. Verso sud c'@`e un piccolo passaggio alto meno di due metri.", s_to Alike_Maze_1, u_to Alike_Maze_1, e_to West_Side_Of_Fissure, w_to At_East_End_Of_Long_Hall, n_to West_Side_Of_Fissure, before [; Go: if (noun==n_obj) print "Hai strisciato attraverso un passaggio molto basso parallelo e a nord della sala delle nebbie.^";; ]; ! ---------------------------------------------------------------------------- ! La Sala Lunga a Ovest della Sala delle Nebbie ! ---------------------------------------------------------------------------- Object At_East_End_Of_Long_Hall "Sul Lato Est Della Sala Lunga" with description "Sei sul lato est di una sala molto lunga apparentemente senza stanze laterali. Verso est un largo e basso passaggio sale con una leggera pendenza. A nord un buco di circa mezzo metro scende anch'esso con leggera pendenza.", e_to At_West_End_Of_Hall_Of_Mists, u_to At_West_End_Of_Hall_Of_Mists, w_to At_West_End_Of_Long_Hall, n_to Crossover, d_to Crossover; Object At_West_End_Of_Long_Hall "Sul Lato Ovest Della Sala Lunga" with description "Sei sul lato ovest di una sala molto lunga senza particolari caratteristiche. La sala si unisce ad una strettoia che prosegue in direzione Nord/Sud.", e_to At_East_End_Of_Long_Hall, s_to Different_Maze_1, n_to Crossover; Object Crossover "Incrocio N/S e E/O" with description "Ti trovi all'incrocio di un alto passaggio in direzione N/S e di uno basso in direzione E/O.", w_to At_East_End_Of_Long_Hall, n_to Dead_End_7, e_to In_West_Side_Chamber, s_to At_West_End_Of_Long_Hall; Object -> "incrocio" with description "Ne sai pi@`u tu a questo punto.", name "incrocio" "crocicchio" has scenery; ! ---------------------------------------------------------------------------- ! Servono molte strade senza uscita per il labirinto più giù, così è meglio ! definire una classe: ! ---------------------------------------------------------------------------- Class DeadEndRoom with short_name "Strada senza uscita", description "Hai raggiunto la fine della strada.", cant_go "Dovrai tornare indietro da dove sei venuto."; DeadEndRoom Dead_End_7 with s_to Crossover, out_to Crossover; ! ---------------------------------------------------------------------------- ! La Sala del Re della Montagna e le camere laterali ! ---------------------------------------------------------------------------- Object In_Hall_Of_Mt_King "Sala Del Re Della Montagna" with description "Ti trovi nella sala del re della montagna, con i passaggi bloccati in tutte le direzioni.", cant_go "Beh, forse non proprio tutte le direzioni.", u_to In_Hall_Of_Mists, e_to In_Hall_Of_Mists, n_to Low_N_S_Passage, s_to In_South_Side_Chamber, w_to In_West_Side_Chamber, sw_to In_Secret_E_W_Canyon, before [; Go: if (Snake in self && (noun == n_obj or s_obj or w_obj || (noun == sw_obj && random(100) <= 35))) "Non puoi avvicinarti al serpente."; ]; Object -> Snake "serpente" with description "Non ci perderei troppo tempo se fossi in te.", initial "Un enorme e feroce serpente verde ti sbarra la strada!", name "serpente" "cobra" "aspide" "enorme" "feroce" "verde" "vipera" "velenoso" "largo" "grande" "killer", life [; Order, Ask, Answer: "Ssssss!"; ThrowAt: if (noun==axe) <>; <>; Give: if (noun==little_bird) { remove little_bird; "Il serpente ha divorato il tuo uccellino."; } "Non c'@`e niente qui che vuole mangiare (eccetto te, forse)."; Attack: "Attaccare il serpente @`e molto pericoloso e non servir@`a a niente."; Take: deadflag=1; "@`E il serpente che ha afferrato te, invece. Glurp!"; ], has animate; Object Low_N_S_Passage "Basso passaggio N/S" with description "Sei in un basso passaggio N/S vicino a una buca sul pavimento.La buca conduce gi@`u in un passaggio E/O.", s_to In_Hall_Of_Mt_King, d_to In_Dirty_Passage, n_to At_Y2; Treasure -> "barre d'argento" with description "Probabilmente valgono una fortuna!", initial "Ci sono delle barre d'argento qui!", article "delle", name "barre" "barra" "d^argento" "di" "argento" has pluralname; Object In_South_Side_Chamber "Nella Stanza Sul Lato Sud" with description "Ti trovi in una stanza sul lato sud della sala del re della montagna.", n_to In_Hall_Of_Mt_King; Treasure -> "preziosi gioielli" with description "Sono proprio di squisita fattura!", initial "Ci sono dei preziosi gioielli qui!", article "dei", name "gioiello" "gioielli" "preziosi" has pluralname; Object In_West_Side_Chamber "Nella Stanza Sul Lato Ovest" with description "Ti trovi in una stanza sul lato ovest della sala del re della montagna. Un passaggio continua ad ovest verso l'alto.", w_to Crossover, u_to Crossover, e_to In_Hall_Of_Mt_King; Treasure -> rare_coins "monete rare" with description "Sono il sogno di ogni numismatico!", initial "Ci sono molte monete qui!", article "molte", name "monete" "rare", has multitude pluralname female; ! ---------------------------------------------------------------------------- ! La Stanza con "Y2" su una roccia e dintorni ! ---------------------------------------------------------------------------- Object At_Y2 "~Y2~" with description "Sei in una camera larga, con un passaggio a sud, un passaggio a ovest, e un muro di rocce rotte ad est. C'@`e una larga ~Y2~ su di una roccia al centro della camera.", after [; Look: if (random(100)<=25) print "^Una voce cupa dice, ~Plugh.~^"; ], before [; Plugh: PlayerTo(Inside_Building); rtrue; Plover: if (In_Plover_Room hasnt visited) rfalse; if (egg_sized_emerald in player) { move egg_sized_emerald to In_Plover_Room; score = score - 5; } PlayerTo(In_Plover_Room); rtrue; ], s_to Low_N_S_Passage, e_to Jumble_Of_Rock, w_to At_Window_On_Pit_1; Object -> "roccia con ~Y2~" with description "C'@`e una grande ~Y2~ dipinta sulla roccia.", name "roccia" "y2" has scenery supporter female; Object Jumble_Of_Rock "Mucchio Di Rocce" with description "Sei su un mucchio di rocce, con crepe dappertutto.", d_to At_Y2, u_to In_Hall_Of_Mists; Object At_Window_On_Pit_1 "Finestra Sulla Cavit@`a" with description "Ti trovi davanti a una bassa finestra che guarda verso un'enorme cavit@`a che si estende oltre la tua visuale. Un pavimento @`e visibile (ma molto poco distintamente) oltre 15 m pi@`u in basso. Tracce della nebbia bianca ricoprono il pavimento della cavit@`a, diventando pi@`u densa verso destra. Segni nella polvere intorno all'apertura sembrerebbero indicare che qualcuno @`e stato qui di recente. Direttamente attraverso la cavit@`a, circa 100 m da dove ti trovi c'@`e una finestra simile che da su una stanza illuminata.Puoi vedere l'ombra di una figura che scruta verso di te.", before [; WaveHands: "L'ombra agita le mani verso di te!"; ], cant_go "L'unico passaggio @`e ad est, indietro alla Y2.", e_to At_Y2; Class PitScenery with found_in At_Window_On_Pit_1 At_Window_On_Pit_2, has scenery; PitScenery "finestra" with description "Sembra proprio una finestra.", name "finestra" "bassa" "apertura", has openable female; PitScenery "enorme cavit@`a" with description "@`E cos@`i profonda che difficilmente puoi raggiungere sano e salvo il pavimento. Anche il soffitto non @`e visibile.", name "cavit@`a" "profonda" "buca" "larga" "enorme" has female; PitScenery "segni nella polvere" with description "Evidentemente non sei del tutto solo qui.", name "segni" "nella" "polvere" has multitude pluralname; PitScenery "ombra di una figura" with description "La figura sembra che stia provando ad attrarre la tua attenzione.", name "figura" "ombra" "persona" "individuo" "all^ombra" "misteriosa" has female; Object In_Dirty_Passage "Corridoio Sporco" with description "Ti trovi in un corridoio sporco. Verso est c'@`e un passaggio molto basso. Verso ovest uno abbastanza largo. Sopra di te c'@`e una buca che conduce ad una altro passaggio.", e_to On_Brink_Of_Pit, u_to Low_N_S_Passage, w_to In_Dusty_Rock_Room; Object On_Brink_Of_Pit "Bordo Di Una Buca" with description "Sei sul bordo di una piccola buca che puoi scendere facilmente. Un bassa passaggio conduce a ovest.", w_to In_Dirty_Passage, d_to In_Pit, in_to In_Pit; Object -> "piccola buca" with description "Sembra che puoi facilmente scendere in basso.", name "piccola" "buca", before [; Climb, Enter: MovePlayer(d_obj); rtrue; ], has scenery female; Object In_Pit "Nella Buca" with description "Sei sul fondo di una piccola buca. C'@`e un piccolo ruscello che entra ed esce attraverso delle piccole fenditure nella roccia.", u_to On_Brink_Of_Pit, d_to "Non puoi entrare in fenditure cos@`i strette!" has nodwarf; Object -> "fenditure strette" with description "Le fenditure formano un complesso disegno nella roccia.", name "fenditura" "fenditure" "strette" has scenery multitude female; Object In_Dusty_Rock_Room "Nella Stanza Dalle Rocce Impolverate" with description "Ti trovi in una stanza piena di rocce ricoperte di polvere. C'@`e una buca abbastanza grande sul pavimento. Ci sono spaccature e crepe un po' dappertutto, e un passaggio che conduce ad est.", e_to In_Dirty_Passage, d_to At_Complex_Junction; Object -> "rocce ricoperte di polvere" with description "Sono solo rocce. (Ricoperte di polvere, naturalmente.)", name "rocce" "pietre" "roccia" "pietra" "impolverate" "ricoperte" "di" "polvere" has scenery multitude female pluralname; ! ---------------------------------------------------------------------------- ! Un Labirinto di piccoli passaggi contorti, tutti uguali... ! ---------------------------------------------------------------------------- Class MazeRoom with short_name "Labirinto", description "Ti trovi in un labirinto di piccoli passaggi contorti, tutti uguali.", out_to "Pi@`u facile a dirsi che a farsi."; MazeRoom Alike_Maze_1 with u_to At_West_End_Of_Hall_Of_Mists, n_to Alike_Maze_1, e_to Alike_Maze_2, s_to Alike_Maze_4, w_to Alike_Maze_11; MazeRoom Alike_Maze_2 with w_to Alike_Maze_1, s_to Alike_Maze_3, e_to Alike_Maze_4; MazeRoom Alike_Maze_3 with e_to Alike_Maze_2, d_to Dead_End_3, s_to Alike_Maze_6, n_to Dead_End_13; MazeRoom Alike_Maze_4 with w_to Alike_Maze_1, n_to Alike_Maze_2, e_to Dead_End_1, s_to Dead_End_2, u_to Alike_Maze_14, d_to Alike_Maze_14; MazeRoom Alike_Maze_5 with e_to Alike_Maze_6, w_to Alike_Maze_7; MazeRoom Alike_Maze_6 with e_to Alike_Maze_3, w_to Alike_Maze_5, d_to Alike_Maze_7, s_to Alike_Maze_8; DeadEndRoom Dead_End_1 with w_to Alike_Maze_4, out_to Alike_Maze_4; DeadEndRoom Dead_End_2 with w_to Alike_Maze_4, out_to Alike_Maze_4; DeadEndRoom Dead_End_3 with u_to Alike_Maze_3, out_to Alike_Maze_3; MazeRoom Alike_Maze_7 with w_to Alike_Maze_5, u_to Alike_Maze_6, e_to Alike_Maze_8, s_to Alike_Maze_9; MazeRoom Alike_Maze_8 with w_to Alike_Maze_6, e_to Alike_Maze_7, s_to Alike_Maze_8, u_to Alike_Maze_9, n_to Alike_Maze_10, d_to Dead_End_12; MazeRoom Alike_Maze_9 with w_to Alike_Maze_7, n_to Alike_Maze_8, s_to Dead_End_4; DeadEndRoom Dead_End_4 with w_to Alike_Maze_9, out_to Alike_Maze_9; MazeRoom Alike_Maze_10 with w_to Alike_Maze_8, n_to Alike_Maze_10, d_to Dead_End_5, e_to At_Brink_Of_Pit; DeadEndRoom Dead_End_5 with u_to Alike_Maze_10, out_to Alike_Maze_10; Object At_Brink_Of_Pit "Bordo Di Una Buca" with description "Sei sul bordo di una buca di circa 9 m con un'imponente colonna arancione che scende lungo una parete. Potresti scendere da qui ma sicuramente non puoi risalire. Il labirinto continua in questo livello.", d_to In_Bird_Chamber, w_to Alike_Maze_10, s_to Dead_End_6, n_to Alike_Maze_12, e_to Alike_Maze_13; Object -> "imponente colonna arancione" with description "Sembra che puoi usarla per scendere.", name "colonna" "imponente" "arancione" "grande" "enorme", before [; Climb: MovePlayer(d_obj); rtrue; ], has scenery female; Object -> "buca" with description "Dovresti scendere per vedere meglio...", name "buca" "di" "9" "m", before [; Climb: MovePlayer(d_obj); rtrue; ], has scenery female; DeadEndRoom Dead_End_6 with e_to At_Brink_Of_Pit, out_to At_Brink_Of_Pit; ! ---------------------------------------------------------------------------- ! Unao snodo complesso, da est a ovest ! ---------------------------------------------------------------------------- Object At_Complex_Junction "Complesso Snodo" with description "Ti trovi in un complesso snodo tra i corridoi. Un passaggio molto basso (talmente basso che bisogna procedere in ginochhio) proveniente da nord si unisce ad uno pi@`u alto proveniente da est formando un un passaggio (alto abbastanza da poter camminare) che si dirige verso ovest. Inoltre c'@`e una grande stanza in alto. L'aria @`e umida qui.", u_to In_Dusty_Rock_Room, w_to In_Bedquilt, n_to In_Shell_Room, e_to In_Anteroom; Object In_Bedquilt "Bedquilt (Stanza della 'Trapunta')" with description "Sei in una trapunta! Un lungo corridoio E/O con buche un po' dappertutto (sembra proprio la trapunta del mio letto). Per esplorare a caso seleziona nord, sud, su o g@`u.", e_to At_Complex_Junction, w_to In_Swiss_Cheese_Room, s_to In_Slab_Room, u_to In_Dusty_Rock_Room, n_to At_Junction_Of_Three, d_to In_Anteroom, before [ destiny; Go: if (noun==s_obj or d_obj && random(100)<=80) destiny=1; if (noun==u_obj && random(100)<=80) destiny=1; if (noun==u_obj && random(100)<=50) destiny=In_Secret_N_S_Canyon_1; if (noun==n_obj && random(100)<=60) destiny=1; if (noun==n_obj && random(100)<=75) destiny=In_Large_Low_Room; if (destiny==1) "Hai strisciato tra le piccole buche per poi tornare capovolto nel corridoio principale."; if (destiny==0) rfalse; PlayerTo(destiny); rtrue; ]; Object In_Swiss_Cheese_Room "Nella Stanza Del Formaggio Svizzero" with description "Ti trovi in una stanza le cui pareti ricordano del formaggio svizzero. Ci sono passaggi a ovest, est, nord-est e nord-ovest. Parte della stanza @`e occupata da un grande blocco di pietra", w_to At_East_End_Of_Twopit_Room, s_to In_Tall_E_W_Canyon, ne_to In_Bedquilt, nw_to In_Oriental_Room, e_to In_Soft_Room, before [; Go: if ((noun==s_obj && random(100) <= 80) || (noun==nw_obj && random(100) <= 50)) "Hai strisciato tra le piccole buche per poi tornare capovolto nel corridoio principale."; ]; Object -> "blocco di pietra" with description "@`E solo un grosso blocco di pietra.", name "blocco" "di" "pietra" "grosso" "grande", before [; LookUnder, Push, Pull, Take: "Stai scherzando, vero??"; ], has scenery; ! ---------------------------------------------------------------------------- ! L'area dove si trovano le due buche ! ---------------------------------------------------------------------------- ! Altezze possibili per la pianta: ! ---------------------------------------------------------------------------- Constant TINY_P = 0; Constant TALL_P = 1; Constant HUGE_P = 2; Object At_West_End_Of_Twopit_Room "Lato Ovest della Stanza con due Buche" with description "Ti trovi sul lato ovest di una stanza con due buche. C'@`e una grossa cavit@`a nella parete al di sopra della buca in questo lato della stanza.", e_to At_East_End_Of_Twopit_Room, w_to In_Slab_Room, d_to In_West_Pit, u_to "@`E troppo lontano per arrivarci.", before [; Enter: if (noun==HoleAbovePit_1) "@`E troppo lontano per arrivarci."; ]; Object PlantStickingUp "pianta di fagioli" with found_in At_West_End_Of_Twopit_Room At_East_End_Of_Twopit_Room, name "pianta" "di" "fagioli" "fagiolo" "gigante" "piccola" "mormorante" "3,5" "m" "alta" "urlante", describe [; if (Plant.height == TALL_P) "La cima di una pianta di fagioli alta circa 3,5 m sporge fuori dalla buca sul lato ovest."; "C'@`e un enorme pianta di fagioli nella buca sul lato ovest che continua a crescere fino alla cavità in alto."; ], before [; Examine: RunRoutines(self,describe); rtrue; Climb: if (Plant.height==HUGE_P) <>; ], has absent static female; Object HoleAbovePit_1 "cavit@`a sopra la buca" with description "La cavit@`a si trova sulla parete al di sopra della buca in questo lato della stanza.", name "cavit@`a" "larga" "grande" "sopra" "la" "buca", found_in In_West_Pit At_West_End_Of_Twopit_Room has scenery female; Object In_West_Pit "Nella buca ad ovest" with description "Sei sul fondo della buca ad ovest nella stanza dalle due buche. C'@`e una grossa cavit@`a nella parete circa 8 m sopra di te.", before [; Climb: if (noun==Plant) rfalse; if (Plant.height == TINY_P) "Non c'@`e niente che puoi scalare qui. Usa ~su~ o ~fuori~ per uscire dalla buca."; ], u_to At_West_End_Of_Twopit_Room has nodwarf; Object -> Plant "pianta" with height TINY_P, name "pianta" "di" "fagioli" "fagiolo" "fagioli" "gigante" "piccola" "mormorante" "3,5" "m" "alta" "bellowing", describe [; switch(self.height) { TINY_P: "C'@`e una piccola pianta nella buca, che mormora ~Acqua, acqua, ...~"; TALL_P: "C'@`e una pianta di fagioli alta circa 3,5 m che si allunga fuoridella buca, urlando ~Acqua!! Acqua!!~"; HUGE_P: "C'@`e una gigantesca pianta di fagioli che si distende in alto fino alla cavità nella parete sopra di te."; } ], before [; Climb: switch(self.height) { TINY_P: "I@'E solo una piccola pianta!"; TALL_P: print "Sei salito sulla pianta fino a fuori la buca.^"; PlayerTo(At_West_End_Of_Twopit_Room); rtrue; HUGE_P: print "Ti sei arrampicato sulla pianta passando velocemente attraverso la cavit@`a aldi sopra.^"; PlayerTo(In_Narrow_Corridor); rtrue; } Take: "La pianta ha delle radici estremamente profonde e non pu@`o essere presa."; Water: if (bottle notin player) "Non hai niente per annaffiare la pianta."; switch(child(bottle)) { nothing: "La bottiglia @`e vuota."; oil_in_the_bottle: remove oil_in_the_bottle; "la pianta si scrolla l'olio di dosso come indignata e chiede, ~Acqua?~"; } remove water_in_the_bottle; switch((self.height)++) { TINY_P: print "Per qualche secondo la pianta scatta in una crescita furiosa.^^"; give PlantStickingUp ~absent; TALL_P: print "La pianta cresce in maniera esplosiva, quasi riempiendo il fondo della buca.^^"; HUGE_P: print "Hai innaffiato troppo la pianta! Si @`e raggrinzita! @`E, @`e...^^"; give PlantStickingUp absent; remove PlantStickingUp; self.height = TINY_P; } <>; Oil: <>; Examine: self.describe(); rtrue; ] has female; Object At_East_End_Of_Twopit_Room "Lato Est della Stanza con due Buche" with description "Sei sul lato est della stanza con due buche. Qui il pavimento @`e piano di fini laste di pietra, che facilitano la discesa nelle buche. C'@`e un sentiero qui che oltrepassa le buche connettendo i passaggi da est e da ovest. Ci sono cavit@`a al di sopra di te, ma l'unica abbastanza grande @`e sulla parete direttamente al di sopra della buca ad ovest dove non ci puoi arrivare.", e_to In_Swiss_Cheese_Room, w_to At_West_End_Of_Twopit_Room, d_to In_East_Pit; Object -> "fini lastre di roccia" with description "Forma quasi una scala naturale che scende nella buca.", name "laste" "lastra" "rocce" "scala" "fini" "di" "roccia", before [; LookUnder, Push, Pull, Take: "Sicuramente stai scherzando."; ], has scenery multitude female pluralname; Object In_East_Pit "Nella Buca ad Est" with description "Sei sul fondo della buca ad est nella stanza delle due buche. C'@`e una piccola pozza di olio in un angolo della buca.", u_to At_East_End_Of_Twopit_Room has nodwarf; Object -> Oil "pozza di olio" with name "pozza" "di" "olio" "piccola", description "Sembra del normale olio.", before [; Drink: "Assolutamente no."; Take: if (bottle notin player) "Non hai nulla in cui metter l'olio."; <>; Insert: if (second == bottle) <>; "Non hai nulla in cui metter l'olio."; ], has scenery female; Object "cavit@`a sopra la buca" with description "@`E sulla parete sopra di te.", name "cavit@`a" "grande" "larga" "sopra" "la" "buca", found_in In_East_Pit At_East_End_Of_Twopit_Room has scenery female; Object In_Slab_Room "Slab Room (Stanza a Lastre)" with description "Sei in una larga e bassa camera circolare il cui pavimento @`e un'immensa lastra caduta dal soffitto (stanza a lastre). Ad est e ad ovest c'errano una volta dei larghi passaggi,ma ora sono pieni di massi. Piccoli e bassi passaggi vanno verso nord e sud, e quello a sud gira velocemente verso ovest intorno ai massi.", s_to At_West_End_Of_Twopit_Room, u_to In_Secret_N_S_Canyon_0, n_to In_Bedquilt; Object -> "lastra" with description "Costituisce il pavimento di questa stanza.", name "lastra" "immensa", before [; LookUnder, Push, Pull, Take: "Sicuramente stai scherzando."; ], has scenery female; Object -> "massi" with description "Sono dei normalissimi massi.", name "masso" "massi" "rocce" "pietre" "macigni" "macigno" has scenery multitude pluralname; ! ---------------------------------------------------------------------------- ! Una piccola rete di Canyon, per lo più segreti. ! ---------------------------------------------------------------------------- Object In_Secret_N_S_Canyon_0 "Canyon Segreto N/S" with description "Sei in un canyon segreto da nord a sud al di sopra di una grande stanza.", d_to In_Slab_Room, s_to In_Secret_Canyon, n_to In_Mirror_Canyon, before [; Go: if (noun==s_obj) canyon_from=self; ]; Object In_Secret_N_S_Canyon_1 "Canyon Segreto N/S" with description "Sei in un canyon segreto da nord a sud al di sopra di piccolo passaggio.", n_to At_Junction_Of_Three, d_to In_Bedquilt, s_to Atop_Stalactite; Object At_Junction_Of_Three "Congiunzione di tre Canyon Segreti" with description "Sei in un canyon segreto alla congiunzione di tre canyon, provenienti da nord, sud, e sud-est. Quello a nord @`e alto quanto gli altri du insieme.", se_to In_Bedquilt, s_to In_Secret_N_S_Canyon_1, n_to At_Window_On_Pit_2; Object In_Large_Low_Room "Stanza Larga e Bassa" with description "Sei in una stanza larga e bassa. Bassi corridoi conducono a nord, sud-est e sud-ovest.", sw_to In_Sloping_Corridor, se_to In_Oriental_Room, n_to Dead_End_Crawl; Object Dead_End_Crawl "Basso Corridoio Senza Uscita" with description "Questo @`e un basso corridoio senza uscita.", s_to In_Large_Low_Room, out_to In_Large_Low_Room; Object In_Secret_E_W_Canyon "Canyon Segreto E/O Sopra uno Stretto Canyon" with description "Sei in un canyon segreto che qui va in direzione E/O. Attraversa un canyon molto stretto che si trova circa 5 m sotto. Se scendi gi@`u potresti non farcela a risalire.", e_to In_Hall_Of_Mt_King, w_to In_Secret_Canyon, before [; Go: if (noun==w_obj) canyon_from=self; ], d_to In_N_S_Canyon; Object In_N_S_Canyon "N/S Canyon" with description "Sei in uno slargo di un canyon molto stretto in direzione N/S.", s_to Canyon_Dead_End, n_to In_Tall_E_W_Canyon; Object Canyon_Dead_End "Fine del Canyon" with description "Qui il canyon diventa troppo stretto per prosegure verso sud.", n_to In_N_S_Canyon; Object In_Tall_E_W_Canyon "In un alto Canyon E/O" with description "Sei in un canyon molto alto in direzione E/O. Un basso e stretto corridoio prosegue per un metro verso nord. Sembra che ci sia un'apertura.", e_to In_N_S_Canyon, w_to Dead_End_8, n_to In_Swiss_Cheese_Room; Object Atop_Stalactite "Sopra una Stalattite" with description "Una grande stalattite si estende dal soffitto e quasi raggiunge il pavimento in basso. Puoi scendere attraverso di essa, e saltare da essa al pavimento, ma facendolo potresti non farcela a risalire e scalare la stalattite.", n_to In_Secret_N_S_Canyon_1, d_to [; if (random(100) <= 40) return Alike_Maze_6; if (random(100) <= 50) return Alike_Maze_9; return Alike_Maze_4; ], before [; Jump, Climb: <>; ]; Object -> "stalattite" with description "Probabilemete puoi scendere attraverso di essa, ma scordati di poter risalire.", name "stalattite" "stalagmite" "stalagtite" "larga" "grande", before [; LookUnder, Push, Take: "Fallo da solo."; ], has scenery female; ! ---------------------------------------------------------------------------- ! Qui ci sono i draghi ! ---------------------------------------------------------------------------- Object In_Secret_Canyon "Canyon Segreto" with description "Ti trovi in un canyon segreto con uscite a nord e ad est.", e_to [; if (canyon_from == In_Secret_E_W_Canyon) return canyon_from; if (Dragon in location) "Il drago sembra piuttosto cattivo. Meglio non provare ad avvicinarsi."; return In_Secret_E_W_Canyon; ], n_to [; if (canyon_from == In_Secret_N_S_Canyon_0) return canyon_from; if (Dragon in location) "Il drago sembra piuttosto cattivo. Meglio non provare ad avvicinarsi."; return In_Secret_N_S_Canyon_0; ], out_to [; return canyon_from; ], before [; if (action==##Yes && Dragon has general) { remove Dragon; move DragonCorpse to location; give Dragon ~general; "Congratulazioni! Ha ammazzato un drago a mani nude! (Incredibile, vero?)"; } if (action==##No && Dragon has general) { give Dragon ~general; "Non ci penso nemmeno."; } give Dragon ~general; ]; Object -> Dragon "drago" with description "Non ci perderei tempo se fossi in te.", name "drago" "mostro" "bestia" "lucertola" "enorme" "verde" "feroce" "gigante", initial "Un enorme e feroce drago verde ti sbarra la strada!", life [; Attack: give Dragon general; "Con cosa? A mani nude?"; Give: "Il drago @`e implacabile."; ThrowAt: if (noun~=axe) "Probabilmente sarebbe meglio usare le mani piuttosto che quella cosa!"; move axe to location; "L'ascia rimbalza innocua sulle fitte scaglie del drago."; ], has animate; Treasure -> "tappeto Persiano" with name "tappeto" "persiano" "fine", depositpoints 14, before [; Take: if (Dragon in location) "Dovresti spostare il drago, prima!"; ], describe [; if (Dragon in location) "Il drago @`e disteso sul tappeto Persiano!"; "Il tappeto Persiano @`e disteso sul pavimento qui."; ]; Object DragonCorpse "corpo del drago" with initial "Il corpo di un enorme drago verde morto giace da un lato.", name "drago" "corpo" "morto" "del" "cadavere" "salma", before [; Attack: "hai fatto gi@`a abbastanza danno!"; ], has static; ! ---------------------------------------------------------------------------- ! E ancora il labirinto ! ---------------------------------------------------------------------------- DeadEndRoom Dead_End_8 with description "Il canyon arriva in un ammasso di massi -- fine della strada.", s_to In_Tall_E_W_Canyon, out_to In_Tall_E_W_Canyon; MazeRoom Alike_Maze_11 with n_to Alike_Maze_1, w_to Alike_Maze_11, s_to Alike_Maze_11, e_to Dead_End_9, ne_to Dead_End_10; DeadEndRoom Dead_End_9 with w_to Alike_Maze_11, out_to Alike_Maze_11; DeadEndRoom Dead_End_10 with s_to Alike_Maze_3, out_to Alike_Maze_3; MazeRoom Alike_Maze_12 with s_to At_Brink_Of_Pit, e_to Alike_Maze_13, w_to Dead_End_11; MazeRoom Alike_Maze_13 with n_to At_Brink_Of_Pit, w_to Alike_Maze_12, nw_to Dead_End_13; DeadEndRoom Dead_End_11 with e_to Alike_Maze_12, out_to Alike_Maze_12; DeadEndRoom Dead_End_12 with u_to Alike_Maze_8, out_to Alike_Maze_8; MazeRoom Alike_Maze_14 with u_to Alike_Maze_4, d_to Alike_Maze_4; DeadEndRoom Dead_End_13 with se_to Alike_Maze_13, out_to Alike_Maze_13, description "Questa @`e la strada senza uscita del pirata.", initial [; StopDaemon(Pirate); if (treasure_chest in self && treasure_chest hasnt moved) "hai trovato il forziere col tesoro del pirata!"; ], has nodwarf; Treasure -> treasure_chest "forziere del tesoro" with depositpoints 12, description "@`E il forziere col tesoro del pirata, pieno di ricchezze di tutti i tipi!", initial "il forziere col tesoro del pirata @`e qui!", name "forziere" "scatola" "tesoro" "ricchezze" "del" "pirata"; ! ---------------------------------------------------------------------------- ! Sopra la pianta di Fagioli: La Stanza Gigante e la Cascata ! ---------------------------------------------------------------------------- Object In_Narrow_Corridor "In un Angusto Corridoio" with description "Ti trovi in un lungo, angusto corridoio che si estende fuori della tua vista verso ovest. Nell'estremit@`a est c'@`e una cavit@`a attraverso la quale puoi vedere una profusione di foglie.", d_to In_West_Pit, w_to In_Giant_Room, e_to In_West_Pit, before [; Jump: deadflag=1; "Cadi e ti rompi l'osso del collo!"; ]; Object -> "foglie" with description "le foglie sembrano essere attaccate alla pianta di fagioli che hai scalato per salire fin qui.", article "delle", name "foglia" "foglie" "pianta" "albero" "fagioli" "profusione", before [; Count: "69,105."; ! (I thank Rene Schnoor for counting them) ], has scenery female pluralname; Object At_Steep_Incline "Ripida Pendenza Sopra la Larga Stanza" with description "Sei in cima ad una ripida pendenza al di sopra di una larga stanza. Potresti scendere qui, ma non saresti capace di risalire. C'@`e un passaggio che conduce indietro verso nord.", n_to In_Cavern_With_Waterfall, d_to In_Large_Low_Room; Object In_Giant_Room "Stanza Gigante" with description "Sei in una stanza gigante. Qui il soffitto @`e troppo alto per essere visto con la tua lampada. Delle caverne conducono a est, nord, e sud. Sulla parete a ovest @`e scarabocchiata l'iscrizione, ~Fee fie foe foo~ [sic].", s_to In_Narrow_Corridor, e_to At_Recent_Cave_In, n_to In_Immense_N_S_Passage; Object -> "iscrizione scarabocchiata" with description "Dice, ~Fee fie foe foo [sic].~", name "iscrizione" "scritta" "scarabocchio" "scarabocchiata" has scenery female; Treasure -> golden_eggs "cesta di uova d'oro" with depositpoints 14, description "La cesta @`e piena di bellissime uova d'oro!", initial "C'@`e una grande cesta qui vicino, piena di uova d'oro!", name "uova" "uovo" "cesta" "d^oro" "bellissime", has multitude female; Object At_Recent_Cave_In "Crollo Recente" with description "Qui il passaggio @`e bloccato da un recente crollo.", s_to In_Giant_Room; Object In_Immense_N_S_Passage "Immenso Passaggio N/S" with description "Sei ad una estremit@`a di un immenso passaggio che va in direzione nord/sud.", s_to In_Giant_Room, n_to [; if (RustyDoor has locked) <>; if (RustyDoor hasnt open) { give RustyDoor open; print "(prima spalancando la porta)^"; } return RustyDoor; ]; Object -> RustyDoor "porta arrugginita" with description "@`E solo una grossa porta di ferro arruginita.", name "porta" "cerniera" "cerniere" "grossa" "arruginita" "di" "ferro", when_closed "La strada verso nord @`e sbarrata da una grossa e arruginita porta di ferro.", when_open "La starda verso nord prosegue attraverso una grossa porta arruginita di ferro.", door_to In_Cavern_With_Waterfall, door_dir n_to, before [; Open: if (RustyDoor has locked) "Le cerniere sono completamente arruginite e non si smuoveranno."; Close: if (RustyDoor has open) "Con tutto lo sforzo, ti tocca lasciare la porta aperta, io suggerirei di non chiuderla di nuovo."; "Non c'@`e problema -- @`e gi@`a chiusa."; Oil: if (bottle in player && oil_in_the_bottle in bottle) { remove oil_in_the_bottle; give RustyDoor ~locked openable; "L'olio sblocca le cerniere. Ora la porta pu@`o muoversi,bench@'e richieda un certo sforzo."; } else "Non hai niente per oliare la porta."; Water: if (bottle in player && water_in_the_bottle in bottle) { remove water_in_the_bottle; give RustyDoor locked ~open; "Le cerniere sono completamente arruginite e non si smuoveranno."; } else "Non hai niente per bagnare la porta."; ], after [; Open: "La porta si apre con una pioggia di ruggine."; ], has static door locked female; Object In_Cavern_With_Waterfall "Nella Caverna Con La Cascata" with description "Sei in una magnifica caverna con un ruscello che cade da una cascata spumeggiante in un mulinello scrosciante. Alla fine scompare attraverso una buca nel pavimento. Passaggi escono verso sud e ovest.", s_to In_Immense_N_S_Passage, w_to At_Steep_Incline; Object -> "cascata" with description "Non ti piacerebbe discendere dentro un barile!", name "cascata" "mulinello" "spumeggiante" has scenery female; Treasure -> trident "tridente ingioiellato" with description "Il tridente @`e coperto di favolosi gioielli!", initial "Qui vicino c@`e un tridente tutto ricoperto di gioielli!", name "tridente" "ingioiellato" "ricoperto" "di" "gioielli" "favolosi", depositpoints 14; ! ---------------------------------------------------------------------------- ! Le caverne attorno al Bedquilt ! ---------------------------------------------------------------------------- Object In_Soft_Room "Nella 'Soft-Room'" with description "Sei in una stanza piuttosto 'soffice'. Le pareti sono coperte di pesanti tende, il pavimento con un tappeto di soffice tessuto. Il muschio copre il soffitto.", w_to In_Swiss_Cheese_Room; Object -> "tappeto" with description "Il tappeto @`e piuttosto elegante.", name "tappeto" "di" "soffice" "tessuto" "pesante" has scenery; Object -> "tende" with description "Sembrano assorbire molto bene il suono.", name "tenda" "tende" "pesanti", before [; Take: "Ora non strappare tutto!"; LookUnder, Search: "Non c'@`e nulla di eccitante dietro le tende."; ], has scenery female pluralname; Object -> "muschio" with description "Sembra proprio il tipico muschio.", name "muschio" "tipico", before [; Take: "Si sbriciola nelle tue mani."; ], has scenery edible; Object -> velvet_pillow "cuscino di velluto" with description "@`E un piccolo cuscino di velluto.", initial "Un piccolo cuscino di velluto giace sul pavimento.", name "cuscino" "di" "velluto" "piccolo"; Object In_Oriental_Room "Stanza Orientale" with description "Questa @`e una stanza 'Orientale'. Antichi disegni orientali coprono le pareti. Un passaggio leggermente in pendenza conduce su verso nord, un altro passaggio conduce a se, e un basso corridoi conduce a ovest.", w_to In_Large_Low_Room, se_to In_Swiss_Cheese_Room, u_to In_Misty_Cavern, n_to In_Misty_Cavern; Object -> "antichi disegni orientali" with description "Sembrano dipingere persone e animali.", name "dipinti" "disegni" "arte" "graffiti" "antichi" "orientali" has scenery multitude; Treasure -> ming_vase "vaso ming" with description "C'@`e un delicato, prezioso, vaso ming!", name "vaso" "ming" "delicato", depositpoints 14, after [; Drop: if (velvet_pillow in location) { print "(appoggiandolo, delicatamente, sul cuscino di velluto)^"; rfalse; } remove ming_vase; move shards to location; "il vaso ming cade con un delicato fragore."; ], before [; Attack: remove ming_vase; move shards to location; "Hai preso il vaso e lo hai lanciato delicatamente sul pavimento."; Receive: "Il vaso @`e troppo fragile da usare come contenitore."; ]; Object shards "alcuni cocci di ceramica senza valore" with initial "Il pavimento @`e ora pieno di cocci di ceramica senza valore.", description "Sembrano essere i resti di quello che una volta era un bellissimo vaso. Io credo che qualcuno maldestro lo ha rotto.", name "ceramica" "cocci" "di" "resti" "vaso" "senza" "valore", has multitude; Object In_Misty_Cavern "Caverna Nebbiosa" with description "Stai seguendo un ampio corridoio attorno l'estremit@`a esterna di una larga caverna. Di sotto, molto lontano, Attraverso una fitta nebbia bianca, si possono sentire strani rumori di spruzzi. La nebbia sale attraverso una fessura nel soffitto. Sentieri escono verso sud e ovest.", s_to In_Oriental_Room, w_to In_Alcove; Object -> "fessura" with description "Non puoi avvicinarti abbastanza per eseminarla.", name "fessura" "soffitto" has scenery female; ! ---------------------------------------------------------------------------- ! Pivieri e Piramidi ! ---------------------------------------------------------------------------- Object In_Alcove "Alcova" with description "Sei in una alcova. Un piccolo sentiero a nordovest sembra allargarsi dopo una piccola distamza. Un tunnel estremamente stretto conduce verso est. Sembra proprio un'angusta strettoia. Una luce soprannaturale pu@`o essere vista alla fine del tunnel .", nw_to In_Misty_Cavern, e_to [ j; j=children(player); if (j==0 || (j==1 && egg_sized_emerald in player)) return In_Plover_Room; "Qualcosa che trasporti non passa atraverso il tunnel. Faresti meglio ad esaminare l'inventario e lasciare qualcosa."; ]; Object In_Plover_Room "Stanza del Piviere" with description "Sei in una piccola camera illuminata da una luce verde soprannaturale. un tunnel estremamente stretto esce verso ovest. Un corridoio buio conduce a nordest.", ne_to In_Dark_Room, w_to [ j; j=children(player); if (j==0 || (j==1 && egg_sized_emerald in player)) return In_Alcove; "Qualcosa di quello che trasporti non entrer@`a nel tunnel con te. Sarebbe meglio lasciare qualcosa qui."; ], before [; Plover: if (egg_sized_emerald in player) move egg_sized_emerald to In_Plover_Room; PlayerTo(At_Y2); rtrue; Go: if (noun==out_obj) <>; ], has light; Treasure -> egg_sized_emerald "smeraldo delle dimensioni di un uovo di Piviere" with depositpoints 14, article "uno", description "Le uova di piviere, naturalmente, sono piuttosto grandi.", initial "C'@`e uno smeraldo qui, delle dimensioni di un uovo di piviere (un uccello migratore che vive in zone umide)!", name "smeraldo" "dimensioni di un uovo" "uovo" "piviere"; Object In_Dark_Room "La stanza Buia" with description "Sei in una stanza buia. Un corridoio che conduce a sud @`e l'unica uscita.", s_to In_Plover_Room has nodwarf; Object -> "targa di pietra" with initial "Una massiccia targa di pietra attaccata alla parete dice: ~Congratulazioni per aver portato la luce nella stanza buia!~", name "targa" "massiccia" "di pietra" has static female; Treasure -> "piramide di platino" with initial "C'@`e una piramide di platino qui, 20 cm di lato!", depositpoints 14, description "La piramide di platino @`e di 20 cm di lato!", name "platino" "piramide" "di platino" has female; ! ---------------------------------------------------------------------------- ! A nord di un complesso snodo: un lungo corridoio che sale e scende ! ---------------------------------------------------------------------------- Object In_Arched_Hall "Sala degli Archi" with description "Sei in una sale pina di archi. Un passaggio rivestito di coralli una volta continuava da qui verso l'alto ad est up and east, ma ora @`e bloccato dai detriti. L'aria profuma di acqua di mare.", d_to In_Shell_Room; Object In_Shell_Room "Stanza della Conchiglia" with description "Sei in una stanza larga rivestita di roccia sedimentaria. Il pavimento e le pareti sono ricoperti di pezzi di conchiglie incastrate nella roccia. Un passaggio poco profondo procede verso il basso e un un po' ripido conduce in alto. Un passaggio talmente basso che bisogna avanzare in ginocchio entra nella stanza da sud.", u_to In_Arched_Hall, d_to In_Ragged_Corridor, s_to [; if (giant_bivalve in player) { if (giant_bivalve has open) "Non puoi far passare un'ostrica da un metro e mezzo in questo stretto passaggio!"; else "Non puoi far passare una vongola da un metro e mezzo in questo stretto passaggio!"; } return At_Complex_Junction; ]; Object -> giant_bivalve "vongola gigante" has female with name "gigante" "vongola" "ostrica" "bivalve", describe [; if (self has general) "C'@`e un enorme ostrica qui con il suo guscio ben chiuso."; "C'@`e un enorme vongola qui con il suo guscio ben chiuso."; ], before [; Examine: if (location==At_Ne_End or At_Sw_End) "Interessante. Sembra che ci sia qualcosa scritto nellaparte inferiore dell'ostrica:^^ ~C'@`e qualcosa di strano in questo luogo, come il fatto che una delle parole che ho sempre saputo ora ha un nuovo effetto.~"; "Un bivalve gigante."; Open: "Non sei forte abbastanza per aprire la vongola a mani nude."; Unlock: if (second~=trident) print (The) trident, " non @`e abbastanza forte per aprire la vongola."; if (self has general) "L'ostrica si apre scricchiolando, rivelando nulla se non l'interno dell'ostrica stessa. Improvvisamente essa si chiude di nuovo con uno scatto"; give self general; move pearl to In_A_Cul_De_Sac; "Una perla luccicante cade fuori dalla vongola e rotola via. Accidenti, in realt@`a questa deve essere un'ostrica. (Non sono mai stato bravo nell'identificare i bivalvi.) Qualunque cosa sia, ora si @`e chiusa di nuovo con uno scatto."; Attack: "La conchiglia @`e molto forte ed @`e insensibile ad ogni attacco."; ]; Treasure pearl "perla luccicante" with description "@`E incredibilmente grande!", initial "Lontano su un lato giace una perla luccicante!", name "perla" "luccicante" "incredibile" "grande", depositpoints 14 has female; Object In_Ragged_Corridor "Corridoio Frastagliato" with description "Sei in un lungo corridoio inclinato con taglienti pareti frastagliate.", u_to In_Shell_Room, d_to In_A_Cul_De_Sac; Object In_A_Cul_De_Sac "Cul-de-Sac (Vicolo Cieco)" with description "Sei in un cul-de-sac di 2 metri e mezzo.", u_to In_Ragged_Corridor, out_to In_Ragged_Corridor; ! ---------------------------------------------------------------------------- ! Scavi della Witt Company: "Cave is under construction" ! ---------------------------------------------------------------------------- Object In_Anteroom "Nell'Anticamera" with description "Sei in una anticamera che conduce ad un largo passaggio verso est. Piccoli passaggi conducono ad ovest e su. I residui di uno scavo recente sono evidenti.", u_to At_Complex_Junction, w_to In_Bedquilt, e_to At_Witts_End; Object -> "insegna" with initial "Un'insegna a mezza altezza dice ~Caverna in costruzione da quasto punto in poi. Procedi a tuo rischio e pericolo. [Witt Construction Company]~", name "insegna" "witt" "company" "construction", before [; Take: "Sta pendendo sopra la tua testa."; ], has static female; Object -> "numeri recenti della rivista ~Spelunker Today~" with name "magazines" "magazine" "giornali" "rivista" "riviste" "numero" "recente" "spelunker" "today", initial "C'@`e qualche recente numero della rivista ~Spelunker Today~ qui.", description "Ho paura che la rivista sia scritta in Nanico.", article "un po' di", after [; Take: if (location==At_Witts_End) score--; Drop: if (location==At_Witts_End) { score++; "Sei una persona di poco spirito."; } ], has multitude; Object At_Witts_End "Fine degli Scavi della Witt Company" with description "Sei alla fine degli scavi della Witt Company. Passaggi e corridoi conduco in *tutte* le direzioni.", w_to "Hai strisciato in giro tra le piccole buche e hai trovato la strada bloccata da uno scavo recente. Ora sei tornato nel corridoio principale.", before [; Go: if (noun~=w_obj && random(100)<=95) "Hai strisciato in giro tra le piccole buche e sei tornato ferito nel corrridoio principale."; PlayerTo(In_Anteroom); rtrue; ]; ! ---------------------------------------------------------------------------- ! A nord dei canyon segreti, dall'altro lato della cavità ! ---------------------------------------------------------------------------- Object In_Mirror_Canyon "Nel Canyon dello Specchio" with description "Sei in un canyon largo circa 8 m che procede in direzione nord/sud. Il pavimento @`e coperto da una nebbia bianca che filtra da nord. Le pareti si estendono per ben 30 m. Sospeso a qualche cosa che non si vede, molto lontano sopra di te, c'@`e un enorme specchio (entrambi i lati dell'oggetto sono a specchio) che pende parallelo e a met@`a strada tra le due pareti.^^ Un piccola finestra si vede su entrambe le pareti 4 o 5 m pi@`u s@`u.", s_to In_Secret_N_S_Canyon_0, n_to At_Reservoir; Object -> "specchio sospeso" with description "Lo specchio serve evidentemente ai nani che, si sa, sono estremamente vanitosi.", name "specchio" "massiccio" "enorme" "pendente" "sospeso" "nani^" "a due lati" "due" "lati", initial "Lo specchio serve evidentemente ai nani che, si sa, sono molto vanitosi.", before [; Attack, Remove: "Non puoi raggiungerlo da qui."; ], has static; Object At_Window_On_Pit_2 "La Finestra sulla Buca" with description "Ti trovi vicino alla bassa finestra che si affaccia su un'enorme buca, che si estende, fuori della vista, per oltre 15 in altezza. Tracce di una nebbia bianca coprono il pavimento della buca, diventando pi@`u densa verso sinistra. Segni nella polvere attorno alla finestra sembrano indicare che qualcuno @`e stato qui recentemente. Direttamente attraverso la buca da te e circa 8 m pi@`u in l@`a c'@`e una finestra simile che da su una stanza illuminata. Una figura nell'ombra pu@`o essere vista l@`i che sbircia verso di te..", cant_go "L'unico passaggio @`e indietro a ovest verso lo snodo.", w_to At_Junction_Of_Three, before [; Jump: deadflag=1; "Saltando, ti sei rotto il collo!"; WaveHands: "La figura nell'ombra agita le mani verso di te!"; ]; Object At_Reservoir "Alla Cisterna" with description "Sei sul bordo di una larga cisterna sotterranea. Una nuvola opaca di nebbia bianca riempie la stanza e sale rapidamente verso l'alto. Il lago @`e alimentato da un ruscello, che esce fuori da un buco della parete circa 3 m pi@`u in alto e cade spruzzando dentro l'acqua da qualche parte nella nebbia. L'unico passaggio conduce indietro verso sud.", s_to In_Mirror_Canyon, out_to In_Mirror_Canyon, before [; Swim: "L'acqua @`e ghiacciata, e potresti rimanere congelato."; ]; ! ---------------------------------------------------------------------------- ! Il Baratro e il Ponte del Troll ! ---------------------------------------------------------------------------- Object In_Sloping_Corridor "Corridoio Inclinato" with description "Sei in un lungo e sinuoso corridoio inclinato che si perde in entrambe le direzioni fuori dalla tua vista.", d_to In_Large_Low_Room, u_to On_Sw_Side_Of_Chasm, cant_go "Il corridoio conduce ripido su e gi@`u."; Object On_Sw_Side_Of_Chasm "Sul Lato Sud-Ovest del Baratro" with description "Sei su di un lato di un grande, profondo baratro. Una fitta nebbia bianca sale su dalle profondità oscurando tutta la vista dell'altro lato. Un sentiero a sud-ovest conduce lontano dal baratro in un corridoio sinuoso.", ne_to CrossRicketyBridge, sw_to In_Sloping_Corridor, d_to In_Sloping_Corridor, cant_go "Il sentiero serpeggia in direzione sud-ovest.", before [; Jump: if (RicketyBridge in self) "Io suggerisco rispettosamente di attraversare il ponte piuttosto che saltare."; deadflag=1; "Noooo. Non l'hai fatto, vero?."; ]; [ CrossRicketyBridge; if (Troll has general || Troll in nothing) { give Troll ~general; if (Bear has general) { remove Bear; remove self; give Wreckage ~absent; remove RicketyBridge; give RicketyBridge absent; StopDaemon(Bear); deadflag=1; "Appena raggiunto l'altro lato, il ponte non regge pi@`u sotto il peso dell'orso, che ti stava ancora inseguendo. Ti aggrappi, disperatamente a qualcosa per sorreggerti, ma come il ponte crolla tu inciampi e cadi nel baratro."; } return RicketyBridge; } if (Troll in location) "Il troll rifiuta di farti passare."; move Troll to location; "Il troll esce da sotto il ponte e blocca la tua strada."; ]; Object -> RicketyBridge "ponte traballante" with description "Sembra un ponte normale, anche se decisamente instabile.", describe [; print "Un traballante ponte di legno si estende attraverso il baratro, svanendo nella nebbia.^^ Un cartello sul ponte dice, ~Stop! Paga il troll!~^"; if (Troll notin location) "Non si vede nessun troll."; rtrue; ], name "ponte" "traballante" "instabile" "oscillante", door_dir [; if (location==On_Sw_Side_Of_Chasm) return ne_to; return sw_to; ], door_to [; if (location==On_Sw_Side_Of_Chasm) return On_Ne_Side_Of_Chasm; return On_Sw_Side_Of_Chasm; ], found_in On_Sw_Side_Of_Chasm On_Ne_Side_Of_Chasm has static door open; Object -> -> Troll "troll corpulento" with description "I troll sono parenti stretti delle rocce e hanno una pelle coriacea come quella dei rinoceronti.", initial "Un troll corpulento sta sul ponte e insiste perch@'e tu gli dia un tesoro prima di lasciarti passare.", name "troll" "corpulento", life [; Attack: "Il troll ride forte di fronte al tuo pietoso modo di offenderlo."; ThrowAt, Give: if (noun ofclass Treasure) { remove noun; move Troll to RicketyBridge; give Troll general; score=score-5; "Il troll afferra il tuo tesoro e corre velocemente lontano dalla tua vista."; } if (noun==tasty_food) "La gola non @`e una dei vizi dei troll. Semmai lo @`e l'avarizia."; "Il troll afferra abilmente ", (the) noun, ",l", (genderandnumber) noun, " esamina attentamente e l", (genderandnumber) noun, "getta indietro, dichiarando, ~Buona manifattura, ma non abbastanza di valore.~"; Order: "Sarai pi@`u fortunato la prossima volta."; Answer, Ask: "I troll non hanno una buona conversazione."; ], has animate; Object Wreckage "macerie del ponte" with initial "Le macerie del ponte del troll (e l'orso morto) possono essere viste sul fondo del baratro.", name "macerie" "del" "ponte" "orso" "morto", before [; "Le macerie sono sul fondo, troppo lontane."; ], found_in On_Sw_Side_Of_Chasm On_Ne_Side_Of_Chasm has static absent multitude female pluralname; Object On_Ne_Side_Of_Chasm "Sul Lato Nord-Est del Baratro" with description "Sei sul lato pi@`u lontano del baratro. Un sentiero conduce via verso nord-est.", sw_to CrossRicketyBridge, ne_to In_Corridor, before [; Jump: if (RicketyBridge in self) "Suggerisco rispettosamente di attraversare il ponte piuttosto che saltare."; deadflag=1; "Noooo. Non l'hai fatto, vero?"; ], has nodwarf; Object In_Corridor "Nel Corridoio" with description "Sei in un lungo corridoio che procede in direzione est/ovest. Un debole suono fragoroso pu@`o essere udito in lontananza.", w_to On_Ne_Side_Of_Chasm, e_to At_Fork_In_Path has nodwarf; ! ---------------------------------------------------------------------------- ! Il Vulcano ! ---------------------------------------------------------------------------- Object At_Fork_In_Path "Biforcazione del Sentiero" with description "Qui il sentiero si biforca. A sinistra va verso nord-est. Un fragore soffocato sembra provenire da quella direzione. A destra il sentiero va verso sud-est scendendo gentilmente. Il corridoio principale entra da ovest.", w_to In_Corridor, ne_to At_Junction_With_Warm_Walls, se_to In_Limestone_Passage, d_to In_Limestone_Passage has nodwarf; Object At_Junction_With_Warm_Walls "Snodo con le Pareti Calde" with description "Le paretio sono piuttosto calde qui. Da nord pu@`o essre udito un costante rombo, cos@`i forte che l'intera caverna sembra tremare. Un altro passaggio conduce a sud, e un basso sentiero va verso est.", s_to At_Fork_In_Path, n_to At_Breath_Taking_View, e_to In_Chamber_Of_Boulders has nodwarf; Object At_Breath_Taking_View "Una Vista da Trattenere il Fiato" with description "Sei all'estremit@`a di una vista che ti fa trattenere il fiato. Gi@`u, molto lontano c'@`e un vulcano attivo, da cui provengono fiumi di lava incandescente che si riversano nelle profondit@`a. le rocce fiammmegginati riempiono la caverna di un bagliore rosso sangue, dando a tutto un'apparenza soprannaturale e macabra. L'aria @`e piena di scintille tremolanti di cenere e di un forte odore di zolfo. Le pareti sono bollenti al tocco e il rimbombo del vulcano soffoca tutti gli altri suoni. Attaccata al soffitto frastagliato, molto sopra la tua testa, c'@`e una miriade di contorte formazioni di puro alabastro, che disperdono la luce tenebrosa in sinistre apparizioni sopra le pareti. Su di un lato c'@`e una profonda gola, piena di un bizzarro caos di rocce triturate, che sembrano essere state aftte dal diavolo in persona. Un fiume immenso di fuoco esce fuori rumorosamente dalle profondit@`a del vulcano, brucia la sua strada attraverso la gola e precipita in una buca senza fondo molto lontana da te verso la tua sinistra. A destra un immenso geyser di vapore acqueo erutta continuamente da un'arida isola al centro del lago sulfureo, che bolle in maniera inumana. La lontana parete destra brucia di una sua propria incandescenza, che concede un ulteriore splendore infernale alla gi@`a infernale scena. Un buio, minaccioso passaggio esce in direzione sud.", s_to At_Junction_With_Warm_Walls, out_to At_Junction_With_Warm_Walls, d_to "Non essere ridicolo!", before [; Jump: <>; ], has light; Object -> "vulcano attivo" with description "Grandi fiumi di lava incandescente escono fuori dal vulcano e si gettano nelle profondit@`a. Rocce ardenti riempiono tutta la caverna di una luce rosso sangue, dando a tutto un'aria macabra e soprannaturale.", name "vulcano" "roccia" "attivo" "ardente" "sangue" "rosso" "soprannaturale" "macabro" has scenery; Object -> "scintille di cenere" with description "le scintille sono troppo lontane per essere esaminate.", name "scintille" "cenere" "scintilla" has scenery multitude female ; Object -> "soffitto frastagliato" with description "Attaccata al soffitto frastagliato, molto aldi sopra di te, c'@`e una miriade di contorte formazioni fatte di puro alabastro, che disperdono la luce tenebrosa in sinistre apparizioni sulle pareti.", name "soffitto" "formazioni" "luce" "apparizioni" "frastagliato" "contorte" "tenebrosa" "sinistre" has scenery; Object -> "profonda gola" with description "La gola @`e piena di un bizarro caos di roccia triturata che sembra essere stata fatta dal diavolo in persona.", name "gola" "caos" "roccia" "profonda" "bizzarro" "triturata" "rocce" "triturate" has scenery female; Object -> "fiume di fuoco" with description "Il fiume di fuoco esce fuori fragorosamente dalle profondit@`a del vulcano, brucia la sua strada attraverso la gola, e precipita in una buca senza fondo lontano da te sulla sinistra.", name "fiume" "fuoco" "profondit@a" "buca" "senza fondo" has scenery; Object -> "immenso geyser" with description "Il geyser di vare acqueo erutta continuamenteda un'arida isola al centro del lago sulfureo, che bolle in maniera inumana.", name "geyser" "vapore" "isola" "lago" "immenso" "acqueo" "sulfureo" "bollente" "che bolle" has scenery; Object In_Chamber_Of_Boulders "Nella Camera dei Macigni" with description "Sei in una piccola camera piena di grandi macigni. Le pareti sono molto calde e di conseguenza l'aria nella stanza @`e divenza alquanto soffocante. L'unica uscita @`e il basso passaggio a ovest, attraverso cui viene in forte fragore.", w_to At_Junction_With_Warm_Walls, out_to At_Junction_With_Warm_Walls has nodwarf; Object -> "macigni" with description "Sono dei normali macigni. Sono caldi.", name "macigno" "macigni" "rocce" "pietre" "massi" "masso" "roccia" "pietra" has scenery multitude pluralname; Treasure -> "spezie rare" with name "spezie" "spezia" "rare" "rara" "esotica" "esotiche", depositpoints 14, article "una scelta di", before [; Smell, Examine: "They smell wonderfully exotic!"; ], has multitude female pluralname; Object In_Limestone_Passage "In un Passaggio Calcareo" with description "Stai camminando lungo un passaggio leggermente in pendenza che procede in direzione nord/sud fiancheggiato da formazioni calcaree dalla forma piuttosto strana.", n_to At_Fork_In_Path, u_to At_Fork_In_Path, s_to In_Front_Of_Barren_Room, d_to In_Front_Of_Barren_Room has nodwarf; Object -> "formazioni calcaree" with description "Ogni tanto una particolare strana forma cattura il tuo occhio", name "formazioni" "forma" "forme" "calcio" "calcaree" "pietra" "strana" "forma" has scenery multitude female pluralname; ! ---------------------------------------------------------------------------- ! Se oggi andassi nei boschi... ! ---------------------------------------------------------------------------- Object In_Front_Of_Barren_Room "Davanti alla Stanza Arida" with description "Ti trovi all'entrata di una stanza piuttosto arida. Un cartello posto sopra l'entrata dice: ~Attenzione! Orso nella stanza!~", w_to In_Limestone_Passage, u_to In_Limestone_Passage, e_to In_Barren_Room, in_to In_Barren_Room has nodwarf; Object -> "cartello" with description "Il cartello dice, ~Attenzione! Orso nella stanza!~", name "cartello" "insegna" "segnale" has scenery; Object In_Barren_Room "Nella Stanza Arida" with description "Sei dentro una stanza arida e secca. Il centro della stanza @`e completamente vuoto eccetto che per un po' di polvere. Segni nella polvere conducono lontano verso il lato pi@`u lontano della stanza. L'unica uscita @`e da dove sei venuto.", w_to In_Front_Of_Barren_Room, out_to In_Front_Of_Barren_Room has nodwarf; Object -> "polvere" with description "Sembra proprio della polvere.", name "polvere" "segni" has scenery female; Object -> Bear "grande orso delle caverne" with following_you false, angry true, describe [; if (self.following_you) "Sei seguito du un grande e docile orso."; if (self.angry) "C'@`e un feroce orso delle caverne che ti guarda dall'altro lato della stanza!"; if (location==In_Barren_Room) "C'@`e un docile orso delle caverne seduto placidamente in un angolo."; "C'@`e un orso dallo sguardo contento che si aggira nelle vicinanze."; ], name "orso" "largo" "grande" "docile" "feroce" "delle caverne", life [; Attack: if (axe in player) <>; if (self.angry == false) "L'orso @`e confuso; vuole solo essere tuo amico."; "Con cosa? A mani nude? Contro le *sue* mani da orso??"; ThrowAt: if (noun~=axe) <>; if (self.angry == false) "L'orso @`e confuso; vuole sole essere tuo amico."; move axe to location; give axe general; "L'ascia manca l'orso e gli cade vicino, dove tu non puoi raccoglierla."; Give: if (noun == tasty_food) { give axe ~general; remove tasty_food; self.angry = false; "L'orso mangia appassionatamente il tuo cibo, dopodich@'e sembra calmarsi considerevolmente e divente persino piuttosto socievole."; } if (self.angry == false) "L'orso non sembra molto interessato alla tua offerta."; "Uh-oh -- la tua offerta lo fa diventare ancora pi@`u arrabbiato!"; Order, Ask, Answer: "Questo @`e un Orso dal cervello molto piccolo."; ], before [; Examine: print "L'orso @`e estremamente grande, "; if (self.angry == false) "ma sembra essre socievole."; "e sembra molto feroce!"; Take, Catch: if (self.angry) "Sicuramente stai scherzando!"; if (golden_chain has locked) "L'orso @`e ancora incatenato alla parete."; self.following_you = true; StartDaemon(Bear); "Ok, l'orso ora ti sta seguendo."; Drop, Release: if (self.following_you == false) "Cosa?"; self.following_you = false; StopDaemon(Bear); if (Troll in location) { remove Troll; "L'orso si muove pesantemente verso il troll, che emette un grido di paura e scappa via. L'orso smette di inseguirti e torna indietro"; } "L'orso smette di inseguirti e va via da te."; ], daemon [; if (location==thedark) rfalse; if (self in location) { if (location==At_Breath_Taking_View) "^L'orso russa che @`e un piacere."; rfalse; } move self to location; "^L'orso si muove pesantemente dietro di te."; ], has animate; Treasure -> golden_chain "catena d'oro" with depositpoints 14, describe [; if (self has locked) "L'orso @`e trattenuto da una solida catena d'oro."; "Una solida catena d'oro giace avvolta a terra!"; ], description "La catena ha fitti anelli di solido oro!", name "catena" "anello" "solido" "oro" "d^oro" "fitti" "anelli" "catene", with_key set_of_keys, before [; Take: if (self has locked) { if (Bear.angry) "@`E attaccata al feroce orso!"; "@`E attaccata al socievole orso."; } Unlock: if (Bear.angry) "Non c'@`e modo di passare l'orso per sbloccare la catena.."; Lock: if (self hasnt locked) "Il meccanismo non si richiuder@`a di nuovo."; ], after [; Unlock: "Tu sblocchi la cetena, e liberi il docile orso."; ], has lockable locked female; ! ---------------------------------------------------------------------------- ! Il Labirinto di Passaggi diversi ! ---------------------------------------------------------------------------- Class DiffMazeRoom with short_name "Labirinto"; DiffMazeRoom Different_Maze_1 with description "Sei in un labirinto di piccoli passaggi tortuosi, tutti diversi.", s_to Different_Maze_3, sw_to Different_Maze_4, ne_to Different_Maze_5, se_to Different_Maze_6, u_to Different_Maze_7, nw_to Different_Maze_8, e_to Different_Maze_9, w_to Different_Maze_10, n_to Different_Maze_11, d_to At_West_End_Of_Long_Hall; DiffMazeRoom Different_Maze_2 with description "Sei in un piccolo labirinto di passaggi serpeggianti, tutti diversi.", sw_to Different_Maze_3, n_to Different_Maze_4, e_to Different_Maze_5, nw_to Different_Maze_6, se_to Different_Maze_7, ne_to Different_Maze_8, w_to Different_Maze_9, d_to Different_Maze_10, u_to Different_Maze_11, s_to Dead_End_14; DiffMazeRoom Different_Maze_3 with description "Sei in un labirinto di piccoli passaggi serpeggianti, tutti diversi.", w_to Different_Maze_1, se_to Different_Maze_4, nw_to Different_Maze_5, sw_to Different_Maze_6, ne_to Different_Maze_7, u_to Different_Maze_8, d_to Different_Maze_9, n_to Different_Maze_10, s_to Different_Maze_11, e_to Different_Maze_2; DiffMazeRoom Different_Maze_4 with description "Sei in un piccolo labirinto di tortuosi passaggi, tutti diversi.", nw_to Different_Maze_1, u_to Different_Maze_3, n_to Different_Maze_5, s_to Different_Maze_6, w_to Different_Maze_7, sw_to Different_Maze_8, ne_to Different_Maze_9, e_to Different_Maze_10, d_to Different_Maze_11, se_to Different_Maze_2; DiffMazeRoom Different_Maze_5 with description "Sei in un serpeggiante labirinto di piccoli passaggi, tutti diversi.", u_to Different_Maze_1, d_to Different_Maze_3, w_to Different_Maze_4, ne_to Different_Maze_6, sw_to Different_Maze_7, e_to Different_Maze_8, n_to Different_Maze_9, nw_to Different_Maze_10, se_to Different_Maze_11, s_to Different_Maze_2; DiffMazeRoom Different_Maze_6 with description "Sei in un piccolo e serpeggiante labirinto di passaggi tutti diversi.", ne_to Different_Maze_1, n_to Different_Maze_3, nw_to Different_Maze_4, se_to Different_Maze_5, e_to Different_Maze_7, d_to Different_Maze_8, s_to Different_Maze_9, u_to Different_Maze_10, w_to Different_Maze_11, sw_to Different_Maze_2; DiffMazeRoom Different_Maze_7 with description "Sei in un piccolo e tortuoso labirinto di passaggi tutti diversi.", n_to Different_Maze_1, se_to Different_Maze_3, d_to Different_Maze_4, s_to Different_Maze_5, e_to Different_Maze_6, w_to Different_Maze_8, sw_to Different_Maze_9, ne_to Different_Maze_10, nw_to Different_Maze_11, u_to Different_Maze_2; DiffMazeRoom Different_Maze_8 with description "Sei in un tortuoso labirinto di piccoli passaggi, tutti diversi.", e_to Different_Maze_1, w_to Different_Maze_3, u_to Different_Maze_4, sw_to Different_Maze_5, d_to Different_Maze_6, s_to Different_Maze_7, nw_to Different_Maze_9, se_to Different_Maze_10, ne_to Different_Maze_11, n_to Different_Maze_2; DiffMazeRoom Different_Maze_9 with description "Sei in un piccolo tortuoso labirinto di passaggi, tutti diversi.", se_to Different_Maze_1, ne_to Different_Maze_3, s_to Different_Maze_4, d_to Different_Maze_5, u_to Different_Maze_6, nw_to Different_Maze_7, n_to Different_Maze_8, sw_to Different_Maze_10, e_to Different_Maze_11, w_to Different_Maze_2; DiffMazeRoom Different_Maze_10 with description "Sei in un labirinto di piccoli passaggi serpeggianti, tutti diversi.", d_to Different_Maze_1, e_to Different_Maze_3, ne_to Different_Maze_4, u_to Different_Maze_5, w_to Different_Maze_6, n_to Different_Maze_7, s_to Different_Maze_8, se_to Different_Maze_9, sw_to Different_Maze_11, nw_to Different_Maze_2; DiffMazeRoom Different_Maze_11 with description "Sei in labirinto di piccoli tortuosi passaggi, tutti diversi.", sw_to Different_Maze_1, nw_to Different_Maze_3, e_to Different_Maze_4, w_to Different_Maze_5, n_to Different_Maze_6, d_to Different_Maze_7, se_to Different_Maze_8, u_to Different_Maze_9, s_to Different_Maze_10, ne_to Different_Maze_2; DeadEndRoom Dead_End_14 with short_name "Vicolo Cieco, vicino al Distributore Automatico ", description "Hai raggiunto un vicolo cieco. C'@`e un massiccio distributore automatico qui.", n_to Different_Maze_2, out_to Different_Maze_2 has nodwarf; Object -> "messaggio nella polvere" with description "Il messaggio dice, ~Questo non @`e il labirinto dove il pirata tiene il suo forziere.~", name "messaggio" "scritta" "ornata" "scrittura" "scarabocchio", initial "Hmmm... C'@`e un massaggio qui scarabocchiato nella polvere in una scrittura piuttosto ornata." has scenery; Object -> VendingMachine "distributore automatico" with description "Le istruzioni sul distributore dicono, ~Inserire le monete per ricevere batterie cariche.~", name "distributore" "automatico" "massiccio" "batterie" "monete", before [; Receive: if (noun==rare_coins) { move fresh_batteries to location; remove rare_coins; "Appena hai inserito le monete nella fessura, il distributore automatico emette un suono 'macchinoso', e un set di batterie cariche cadono ai tuoi piedi."; } "La macchina sembra essere stata progettata per ricevere monete."; Attack: "La macchina @`e piuttosto robusta e sopravvive al tuo attacco senza problemi."; LookUnder: "Non c'@`e niente sotto la macchina."; Search: "Non puoi aprire la macchina."; Take: "Il distributore automatico @`e troppo pesante per essere spostato."; ], has scenery; Object fresh_batteries "batterie cariche" VendingMachine with description "Sembrano batterie normalissime. (Una voce sepolcrale dice, ~Sono ancora funzionanti!~)", initial "Ci sono delle batterie cariche qui.", name "batterie" "batteria" "cariche", before [; Count: "Un paio."; ] has female pluralname; Object old_batteries "batterie vecchie" with description "Sembrano batterie normalissime.", initial "Alcune vecchie batterie sono state lasciate qui vicino.", name "batterie" "batteria" "vecchie" "scariche", before [; Count: "Un paio."; ] has female pluralname; ! ---------------------------------------------------------------------------- ! nani! ! ---------------------------------------------------------------------------- Object dwarf "piccolo nano minaccioso" with name "nano" "minaccioso" "brutto" "piccolo" "cattivo" "avaro", description "Non @`e probabilmente una buona idea avvicinarsi troppo. @`E sufficiente dire che @`e un piccolo individuo abbastanza aggrassivo.", initial "Un piccolo nano minaccioso si nasconde nell'ombra.", number 5, daemon [; if (location==thedark) return; if (self.number==0) { StopDaemon(self); return; } if (parent(dwarf)==0) { if (location has nodwarf || location has light) return; if (random(100)<=self.number) { if (Bear in location || Troll in location) return; new_line; if (Dragon in location) { self.number--; "Un nano appare, ma con un casuale spruzzo di fuoco il drago lo brucia vivo!"; } move dwarf to location; "Un piccolo nano minaccioso viene fuori dall'ombra!"; } return; } if (parent(dwarf)~=location) { if (location==thedark) return; if (location has nodwarf || location has light) return; if (random(100)<=96 && parent(dwarf)~=In_Mirror_Canyon) { move dwarf to location; print "^Il nano ti segue furtivamente...^"; } else { remove dwarf; return; } } if (random(100)<=75) { new_line; if (self hasnt general) { move axe to location; give self general; remove self; "Il nano ti lancia una piccola e pericolosa ascia, ti manca, impreca e scappa via."; } if (location==In_Mirror_Canyon) "Il nano ammira se stesso nello specchio."; print "Il nano ti lancia un piccolo e pericoloso coltello, "; if (random(1000)<=95) { deadflag=1; "e ti colpisce!"; } "ma ti manca!"; } if (random(3)==1) { remove dwarf; "^Stanco, il nano sguscia via."; } ], before [; Kick: "Tu spingi a pedate il nano attraverso la stanza. Lui impreca, poi si rialza come se non fosse successo nulla. Ora @`e pi@`u furioso che mai!"; ], life [; ThrowAt: if (noun==axe) { if (random(3)~=1) { remove self; move axe to location; self.number--; "Hai ucciso un piccolo nano! Il corpo svanisce in una nuvola di un grasso fumo nero.."; } move axe to location; "Mancato! Il piccolo nano riesce a schivare l'ascia."; } <>; Give: if (noun==tasty_food) "Tu sei pazzo, i nani mangiano solo carbone! Ora lo hai fatto diventare *veramente* furioso!"; "Il nano non @`e per niente interessato alla tua offerta. (Il motivo potrebbe essere che, se ti uccide, pu@`o prendere in ogni caso tutto quello che hai.)"; Attack: "Non a mani nude."; ], has animate; Object axe "ascia nanica" with name "ascia" "piccola" "nanica", initial "C'@`e una piccola ascia qui.", description "@`E solo una piccola ascia.", before [; if (axe hasnt general) rfalse; Examine: "Giace a fianco dell'orso."; Take: "Assolutamente no. Giace vicino all'orso feroce."; ] has female; ! ---------------------------------------------------------------------------- ! Un po' di pirateria non guasta mai... ! ---------------------------------------------------------------------------- Object pirate with has_stolen_something false, has_been_spotted false, daemon [ obj booty_nearby; if (random(100) > 2 || location==thedark or In_Secret_Canyon || location has light || location has nodwarf) return; if (dwarf in location) "^Un pirata barbuto appare, afferra lo sguardo del nano e corre via."; objectloop (obj ofclass Treasure && obj in player or location) booty_nearby = true; if (booty_nearby == false) { if (self.has_been_spotted) return; self.has_been_spotted = true; if (self.has_stolen_something) StopDaemon(self); "^Ci sono deboli fruscii che provengono dall'oscurit@`a dietro di te. Appena ti giri, individui un pirata barbuto. Egli sta trasportando un grande forziere.^^ ~Maledizione!~ grida, ~Sono stato scoperto! Far@`o meglio ad affrettarmi a nascondere il forziere nel labirinto!~^^ Con questo, svanisce nel buio."; } if (self.has_stolen_something) return; self.has_stolen_something = true; if (self.has_been_spotted) StopDaemon(self); objectloop (obj ofclass Treasure && obj in player or location) { if (obj in player) score = score - 5; move obj to Dead_End_13; } "^Fuori dall'ombra dietro di te ti piomba addosso un pirata barbuto! ~Su, su,~ dice ridacchiando. ~Prender@`o solo questo bottino e lo nasconder@`o nel mie forziere al sicuro nel labirinto!~ Egli afferra il tuo tesoro e svanisce nel buio."; ]; ! ---------------------------------------------------------------------------- ! La caverna sta chiudendo ora... ! ---------------------------------------------------------------------------- Object cave_closer with daemon [; if (treasures_found < MAX_TREASURES) return; StopDaemon(self); caves_closed=1; score=score + 25; remove CrystalBridge; give Grate locked ~open; remove set_of_keys; StopDaemon(dwarf); StopDaemon(pirate); remove Troll; remove Bear; remove Dragon; StartTimer(endgame_timer, 25); "^Una voce sepolcrale che riverbera attraverso la caverna dice, ~La caverna sta per chiudere. Tutti gli avventurieri ecano immediatamente attraverso l'ufficio principale.~"; ]; Object endgame_timer with time_left 0, time_out [; score=score + 10; while (child(player)~=0) remove child(player); move bottle to At_Ne_End; if (child(bottle)~=0) remove child(bottle); move giant_bivalve to At_Ne_End; move brass_lantern to At_Ne_End; move black_rod to At_Ne_End; move little_bird to At_Sw_End; move velvet_pillow to At_Sw_End; print "^La voce sepolcrale intona, ~Ora la caverna @`e chiusa.~ Come l'eco diminuisce c'@`e un flash acciecante di luce (e un piccolo sbuffo di fumo arancione). . .^^ Appena i tuoi occhi riescono di nuovo a vedere, ti guardi intorno...^"; PlayerTo(At_Ne_End); ]; ! ---------------------------------------------------------------------------- ! Il Gioco Finale ! ---------------------------------------------------------------------------- Object At_Ne_End "Lato Nord-Est del Deposito" with description "Sei sul lato nord-est din una immensa stanza, ancora pi@`u grande della 'Stanza Gigante'. Sembra essere un deposito per il programma ~Avventura~. Massicce torce molto sopra la tua testa immergono la stanza di una luce gialla fumosa. Sparse vicino a te puoi vedere una pila di bottiglie (tutte vuote), un semenzaio di piccoli semi di fagiolo che mormorano silenziosamente, un letto di ostriche, un fascio di bastoni neri con una stella arrugginita in punta, e una collezione di lampade di ottone. Da un lato molti nani stanno dormendo sul pavimento, russando fortemente. Un cartello qui vicino dice: ~Non disturbare i nani!~", sw_to At_Sw_End has light; Object -> "specchio enorme" with description "Mi sembra uno specchio normale, anche se enorme.", name "specchio" "enorme" "immenso" "grande" "largo" "sospeso" "appeso" "vanit@`a" "nanico", initial "Uno specchio immenso @`e appeso ad una parete, e si allunga verso l'altro lato della stanza, dove vari altri oggetti si intravedono in lontananza.", found_in At_Ne_End At_Sw_End, before [; Attack: print "Tu colpisci lo specchio con un colpo risuonante, dopo di che si frantuma in una miriade di piccoli frammenti.^^"; SleepingDwarves.wake_up(); rtrue; ], has static; Object -> "collezione di materiale per il gioco d'avventura" with description "Tutto quello che c'@`e qui l'hai gi@`a visto anche se in contesti differenti.", name "roba" "materiale" "torce" "oggetti" "avventura" "deposito" "massiccio", before [; Take: "Realizzando che, prendendo tutte queste cose, rovineresti il gioco per giocatori futuri, lasci tutto il materiale di ~Avventura~ dove l'hai trovato."; ], has scenery female; Object -> SleepingDwarves "nani addormentati" with description "io non disturberei i nani se fossi in te.", name "nano" "nani" "addormentati", article "centinaia di cattivi", before [; Take: "Cosa, tutti quanti?"; ], life [; WakeOther: print "Tu stuzzichi il nano pi@`u vicino, che si sveglia scontrosamente, ti lancia uno sguardo, impreca, e afferra la sua ascia.^^"; self.wake_up(); rtrue; Attack: self.wake_up(); rtrue; ], wake_up [; deadflag=1; "Il risultante putiferio ha svegliato i nani. Ora ci sono dozzine di piccoli nani minacciosi nella stanza con te. La maggior parte di essi ti lancia pugnali e coltelli! Tutti quanti ti afferrano!"; ], has animate scenery multitude pluralname; Object At_Sw_End "Lato Sud-Ovest del Deposito" with description "Sei sul lato sud-ovest del deposito. Da una parte c'@`e una buca piena di serpenti. Dall'altra parte c'@`e una fila di piccole gabbie di vimini, ognuna contenente un piccolo uccello imbronciato. Un gran numero di cuscini di velluto sono sparsi sul pavimento. Un vasto specchio si allunga verso nord-est. Ai tuoi piedi c'@`e una grande grata di acciaio, vicino alla quale c'@`e un cartello che dice, ~CRIPTA DEL TESORO. Chiavi nell'ufficio principale.~", d_to RepositoryGrate, ne_to At_Ne_End has light; Object -> RepositoryGrate "grata di acciaio" with name "ordinaria" "grata" "acciaia", description "Sembra un'ordinaria grata di acciaio.", when_open "La grata @`e aperta.", when_closed "La grata @`e chiusa.", door_dir d_to, door_to Outside_Grate, with_key 0 has static door locked openable female; Object -> "collezione di materiale per il gioco d'avventura" with description "Tutto quello che c'@`e qui lo hai gi@`a visto anche se in contesti differenti.", name "buca" "serpente" "serpenti" "roba" "materiale" "avventura" "deposito" "massiccio", before [; Take: "Realizzando che, prendendo tutte queste cose, rovineresti il gioco per giocatori futuri, lasci tutto il materiale di ~Avventura~ dove l'hai trovato."; ], has scenery female; Object -> black_mark_rod "bastone nero con un segno arrugginito in punta" with description "@`E un bastone nero di circa 1 m con un segno arruginito in punta.", initial "Un bastone nero di circa 1 m con un segno arruginito in punta giace qui vicino.", name "bastone" "nero" "arruginito" "segno" "1 m" "di ferro" "esplosivo" "dinamite" "scoppio" "esplosione", before [; Wave: "Non succede nulla."; ]; ! ---------------------------------------------------------------------------- ! Alcune cose per iniziare il gioco ! ---------------------------------------------------------------------------- [ Initialise; location=At_End_Of_Road; score = 36; StartDaemon(dwarf); StartDaemon(pirate); StartDaemon(cave_closer); print "^^^^Benvenuti nell'Avventura!^^"; ]; [ PrintRank; print ", guadagnando il rango di "; if (score >= 348) "Grande Maestro Avventuriero!"; if (score >= 330) "Master, prima classe."; if (score >= 300) "Master, seconda classe."; if (score >= 200) "Junior Master."; if (score >= 130) "Avventuriero Stagionato."; if (score >= 100) "Avventuriero Esperto."; if (score >= 35) "Avventuriero."; if (score >= 10) "Novizio."; "Dilettante."; ]; [ DarkToDark; if (dark_warning == false) { dark_warning = true; "@`E buio come la pece. Se procedi probabilmente cadrai in una buca."; } if (random(4) == 1) { deadflag = 1; "Sei caduto in una buca e e hai rotto tutte le ossa del suo corpo!"; } rfalse; ]; ! ---------------------------------------------------------------------------- ! Menu d'aiuto (non fa parte del gioco vero e proprio) ! ---------------------------------------------------------------------------- [ HelpMenu; if (menu_item==0) { item_width=8; item_name="About 'Avventura'"; if (deadflag==2) return 4; else return 3; } if (menu_item==1) { item_width=6; item_name="Istruzioni"; } if (menu_item==2) { item_width=4; item_name="Storia"; } if (menu_item==3) { item_width=6; item_name="Autenticit@`a"; } if (menu_item==4) { item_width=7; item_name="Lo sapevi..."; } ]; [ HelpInfo; if (menu_item==1) { print "Io conosco posti, azioni, e cose. Tu puoi guidarmi usando come comandi delle frasi complete. Per muoverti, prova comandi come ~entra~, ~est~, ~ovest~, ~nord~, ~sud~, ~su~, ~gi@`u~, ~entra nell'edificio~, ~scala il palo~, ecc.^^"; print "Io so di alcuni oggetti speciali, come un bastone nero nascosto nella caverna. Questi oggetti possono essere 'manipolati' usando alcune delle parole che io conosco. Di solito ti baster@`a dare un verbo seguito da un oggetto (insieme a degli aggettivi quando lo desideri), ma delle volte io posso capire l'oggetto solo dal verbo. Inoltre alcuni oggetti implicano dei verbi; in particolare, ~inventario~ implica ~fai l'inventario~, un comando che mi invita a darti la lista di tutto ci@`o che stai portando. Gli oggetti possono avere effetti collaterali; per esempio, il bastone spaventa l'uccellino.^^"; print "Molti comandi hanno delle abbreviazioni. Per esempio, tu puoi scrivere ~i~ al posto di ~inventario,~ ~x oggetto~ invece di ~esamina oggetto~ (x sta per l'inglese examine), ecc.^^"; print "Di solito le persone che hanno problemi a muoversi devono solo provare qualche parola in pi@`u. Mentre le persone che hanno provato senza successo a manipolare un oggetto hanno sicuramente provato qualcosa al di sopra delle loro (o mie!) possibilit@`a e dovrebbero provare a fare qualcosa di completamente differente.^^"; print "Notare il fatto che i corridoi nella caverna girano molto, e che lasciare una stanza a nord non d@'a la garanzia di entrare a sud dell'altra stanza.^^"; print "Se vuoi terminare la tua avventura anticipatamente, scrivi ~uscire~. Per sospendere la tua avventura in modo da continuarla pi@`u tardi, scrivi ~salva,~ e per caricare un gioco salvato, scrivi ~carica.~ Per vedere se stai facendo bene le cose, scrivi ~punteggio~. Per guadagnare il massimo punteggio da un tesoro, devi lasciarlo al sicuro nell'edificio, anche se ti viene assegnato un punteggio parziale per il solo ritrovamento. Perdi punti se sei ucciso, o se abbandoni il gioco (essere ucciso ti coster@`a di pi@`u). Vengono anche assegnati dei punti per la quantità di luoghi della caverna che sei riuscito ad esplorare; in particolare, c'@`e un grosso bonus se riesci ad entrarci (per distinguere i principianti dal resto del branco), e ci sono altri modi per determinare se sei passato attraverso le sezioni pi@`u difficili del gioco.^^"; print "Se pensi di aver trovato tutti i tesori, prova a fermarti per un po'. Se non succede nulla, allora non li hai trovati proprio tutti. Se succede qualcosa di interessante, vuol dire che riceverai un bonus e avrai l'opportunit@`a di guadagnare molti altri punti nella sezione 'master'.^^"; "Buona Fortuna!"; } if (menu_item==2) { print "Probabilmente il primo avventuriero fu uno schiavo mulatto di nome Stephen Bishop, nato circa nel 1820: 'esile, grazioso e molto bello'; una guida 'rapida, audace, entusiasta' per la Mammoth Cave nel Kentucky. La storia della Caverna è un curioso microcosmo di storia Americana. La sua scoperta è materia di legenda che si perde nel tempo fino al 1790; si disse che un cacciatore, John Houchin, inseguiva un orso ferito nelle vicinanze del Green River "; print "quando inciampò sull'entrata di una grossa caverna. L'entrata era piena di pipistrelli e dalla Guerra del 1812 fu intensivamente scavata per l'estrazione del guano, che dissolto nel nitrato serviva alla produzione di polvere da sparo. Dopo la guerra la richiesta di polvere da sparo diminuì, ma la Caverna divenne di nuovo un'attrazione quando una mummia Indiana fu trovata nelle vicinanze, dentro una bara di pietra, circondata di talismani. Nel 1815, Fawn Hoof, come era stata chiamata la mummia da uno dei suoi talismani (Fawn Hoof = zampa di cerbiatto,ndGR), fu presa da una circo, attirando folle da tutta l'America. Alla fine finì allo Smithsonian Museum, ma già dal 1820 la Caverna era stata definita una delle meraviglie del mondo, in gran parte per merito della mummia.^^"; print "Nei primi anni del diciannovesimo secolo le caverne Europee erano una grande attrazione turistica, ma quasi nessuno visitava la Mammoth Cave, che fosse la 'meraviglia del mondo' o meno. E nemmeno era così grande, come il nome lasciava presupporre (era infatti stato dato dai minatori che si vantavano dei grandi guadagni fatti nella vendita del guano). Nel 1836 il proprietario di Stephen Bishop comprò la Caverna. Stephen, anche se schiavo, era un uomo ammirevole da ogni punto di vista: autodidatta in Greco e Latino, divenne famoso come 'sovrano' del suo regno sotterraneo. Nel "; print "tempo libero esplorò e diede un nome a molti degli ambienti, raddoppiando la mappa conosciuta in un anno. Il sapore che contraddistingue i nomi della Caverna - mezzi Americani, mezzi di derivazione Classica - cominciò con Stephen: il Fiume Stige, la Stanza Della Palla di Neve, Via del Piccolo Pipistrello, la Grande Cupola. Stephen trovò strani pesci ciechi, serpenti, grilli silenziosi, i resti di orsi delle caverne (selvagge creature, estinte alla fine dell'ultima glaciazione) manufatti Indiani vecchi di secoli e ancora tante altre caverne. La sua mappa del 1842, interamente disegnata a memoria, era ancora in uso quaranta anni dopo.^^"; print "Come attrazione turistica (e per un breve periodo, siccome il padrone di Stephen era un filantropo, anche un sanatorio per i malati di tubercolosi), la Caverna diventò un grande affare: per decenni ci si impadronì delle caverne vicine e i titoli legali furono contestati. Nel 1912, nella Hounchins Valley (nella catena montuosa del Flint Ridge),fu aperta la Great Onyx Cave e dal 1920 le Guerre delle Caverne del Kentucky "; print "erano in pieno svolgimento. Proprietari rivali deviavano i turisti con finti poliziotti, impiegavano persone per disturbare le visite guidate degli altri, bruciavano le biglietterie, diffondevano notizie false e infamanti. L'esplorazione divenne così pericolosa che alla fine, nel 1941, il Governo degli Stati Uniti dovette intervenire, fece diventare la maggior parte dell'area un parco nazionale e bandì definitivamente gli scavi. Il grande afflusso dei turisti, in ogni caso, diminuì.^^"; print "Convinti che le Mammoth e le Flint Ridge erano tutte collegate in una grande catena, gli esploratori cercarono entrate segrete per anni, ottenendo anche sostegni ufficiali. Negli anni sessanta tutte le connessioni dalla Flint Ridge - tunnel difficili e pieni di acqua - finivano tutti ~soffocati~ da macigni di roccia. Nel 1972 il fisico Patricia Crowther fece un passo in avanti quando trovò un passaggio pieno di fango: era un'entrata segreta per la Mammoth Cave.^^"; print "Sotto i termini del testamento del suo proprietario, Stephen Bishop fu liberato nel 1856. A quel tempo la Caverna poteva vantare 226 strade, 47 cupole, 23 grosse buche e 8 cascate. Stephen morì un anno dopo, prima di poter comprare sua moglie e suo figlio. Negli anni settanta, il passaggio fangoso di Patricia Crowther fu trovato nella sua mappa.^^"; print "La Mammoth Cave @`e enorme, la sua estensione @`e ancora materia di speculazione (le stime variano da 300 a 500 miglia). Sebbene questo gioco sia stato spesso chiamato ~Colossal Cave~, esso @`e, pi@`u precisamente una simulazione della regione chiamata ~Bedquilt Cave~ (Bedquilt = Trapunta, ndGR). Ecco la storia di Will Crowther su come nacque il gioco:^^"; print "~A quel tempo ero molto preso da un Gioco di Ruolo chiamato Dungeons and Dragons, e anche facevo qualche esplorazione in grotte e caverne - La Mammoth Cave nel Kentucky, in particolare. Improvvisamente, fui coinvolto nella causa di divorzio e questo mi aveva lasciato piuttosto male sotto vari punti di vista. In particolare avevo perso i miei bambini. Anche l'eplorazione delle caverne era terminata, poich@'e era divenuta inopportuna, cos@`i decisi che avrei ingannato il tempo scrivendo un programma che fosse una ri-creazione nella mia fantasia dell'eplorazione ed anche un gioco per i bambini, e che mantenesse alcuni aspetti di Dungeons and Dragons.^^"; print "~La mia idea era che doveva essere un gioco per computer che non facesse paura alle persone senza conoscenze informatiche, e questa @`e una della ragioni per cui feci in modo che il giocatore dirigesse il gioco con un linguaggio naturale, invece dei comandi che stavano diventando uno standard. I mie bambini pensavano che era molto divertente.~ [Citato in ~Genesis II: Creation and Recreation with Computers~, Dale Peterson (1983).]^^"; print "L'originale programma di Crowther, scritto in FORTRAN, aveva pi@`u o meno 5 tesori, ma non un formale sistema di punteggio. La sfida era quella di esplorare, sebbene ci fosse opposizione, per sempio, dal serpente. Come per la Bedquilt Cave reale, la simulazione di Crowther aveva una mappa su circa 4 livelli ed era ricca nei dettagli geologici. Un buon esempio è la colonna arancione che discende verso la 'Stanza del Fiume Arancione' (dove vive l'uccellino): e la vera colonna è anch'essa arancione (di tarvertino, un bellissimo minerale di origine calcarea).^^"; print "Il linguaggio del gioco è pieno di riferimenti al linguaggio dei minatori, 'cupole', 'corridoi', ecc. Una 'stanza a lastre' (traduzione dall'inglese 'slab room', ndGR), per esempio, è una caverna molto antica dal soffitto della quale si sono staccate sottili lastre di pietra che si sono accumulate sul pavimento. L'uso nel programma della parola 'stanza' (camera, sala) per tutti i tipi di caverne e luoghi può sembrare strano nel linguaggio comune, ma essa si è ampiamente diffusa tra i minatori e gli esploratori di caverne Americani, e il suo uso cominciò ai tempi di Stephen Bishop: così l'uso della parola 'stanza' nei Giochi di Avventura per intendere 'luogo' ci è stata data in eredità da lui.^^"; print "Il gioco fece il suo passo decisivo verso un sistema di risoluzione-di-enigmi quando Don Woods, uno studente di Stanford, lo corresse e lo espanse. Egli triplic@`o il numero dei tesori e aggiunse zone non geologiche: tutto quello che c'@`e dal Ponte del Troll in avanti, insieme alla maggior parte delle stanze minori del livello del Bedquilt. Tutte le molte imitazioni ed estensioni della Adventure originale sono basate sulla versione da 350 punti di Wood. (Molte delle versioni gonfiate, corrotte o espanse - dipende da come le si vede - sono in Internet, e il modo migliore per identificarle @`e guardando il loro punteggio massimo. Molte versioni alzano il punteggio fino ai 400 e 500 punti, e una arriva fino a 1000. Lo stesso Wood continua a rilasciare nuove versioni del suo gioco; la maggior parte di quelli che hanno provato a farlo non hanno il suo talento.)^^"; print "Sebbene il gioco si sia allontanato dalla pura simulazione, buona parte di esso rimane realistico. Gli esploratori devono tornare indietro quando le loro lampade ad olio tremolano; ci sono anche segni misteriosi ed iniziali sulle pareti delle caverne, alcuni lasciati dai minatori, altri da Bishop, altri ancora dagli esploratori degli anni venti. Naturalmente non c'è nessun vulcano attivo nel centro del Kentucky, nè ci sono draghi o nani. Ma anche questi abbellimenti sono, in un certo senso, derivati dalla tradizione: come molti dei primi giochi di ruolo 'Adventure' deve molto a 'Lo Hobbit' di J.R.R Tolkien e al passagio attraverso Moria contenuto ne 'Il Signore degli Anelli' (sicuramente il suo brano più drammatico e ricco d'atmosfera). Tolkien stesso, il più grande ~creatore di miti~ del ventesimo secolo, lavorò molto su esempi tratti dalle saghe Islandesi, Finniche e Gallesi.^^"; print "Dal 1977 nastri contenenti 'Adventure' cominciarono a circolare rapidamente, dal Digital User Group DECUS agli altri: pause pranzo e weekend passati nell'esplorazione... ma questa è un'altra storia. (Il libro di Tracy Kidder ~The Soul of a New Machine~, il punto di vista di un giornalista sul lavoro in una azienda informatica, cattura proprio quell'atmosfera.)^^"; "Questa @`e una copia di terza o quarta mano: dall'originale di Will Crowther all'edizione da 350 punti di Donald Wood, alla versione per PC di Donald Ekman fino alla versione TADS (1993) di David M. Baggett e a questa.^ (Forse questa @`e di quinta mano visto che @`e una traduzione della versione inglese scritta in INFORM, ndGR).^^"; } if (menu_item==3) { print "Questa versione @`e molto vicina all'originale. Gli enigmi, gli oggetti e i luoghi sono esattamente quelli della versione da 350 punti di Woods.^^"; print "Da parte mia ho aggiunto qua e l@`a qualche messaggio d'aiuto, come ~Questa @`e una strada senza uscita.~, e corretto dai file sorgente qualche ~posizione iniziale~ degli oggetti come^ ^ C'@`e del cibo squisito qui.^^ che erano certamente originali ma di dubbia provenienza. Esse sembrano stare bene con il resto del testo.^^"; print "Il sistema di punteggio @`e quello originale, eccetto che non si perdono pi@`u 4 punti se si abbandona il gioco (siccome in un gioco INFORM non viene mantenuto il punteggio se si abbandona il gioco, questo non fa molta differenza) e, con molte controversie, ho deciso di aumentare il punteggio di 5 punti se si trova un tesoro, come facevano alcune prime versioni degli anni '80. I nomi dei gradi sono stati riordinati un po'. Il solo cambiamento significativo nelle regole @`e che uno non pu@`o usare le parole magiche fino a che il luogo della loro destinazione non @`e stato visitato.^^"; print "I nani sono pi@`u semplici nei movimenti, ma ho aggiunto un po' di messaggi per farli interagire meglio col resto del gioco. Le probabilit@`a rimangono le stesse del gioco originale.^^"; print "Nel gioco originale uno poteva scrivere il nome di un luogo per andarci automaticamente: per fare in modo di mantenere il codice pi@`u piccolo, ho omesso questa caratteristica, ma con qualche rimpianto...^^"; print "Il testo stesso @`e stato quasi tutto preservato intatto, ma ho corretto qualcuno degli errori grammaticali e di battitura (e alterato un paio di quelli completamente ingannevoli). Le istruzioni sono state un po' alterate (per ragioni ovvie) ma sono in pratica quelle scritte.^^"; print "Una buona fonte per dettagli @`e il codice di David Baggett che circola in Internet.^^"; "[NOTA SULLA TRADUZIONE]^ La presente versione in lingua Italiana, cerca di essere quanto pi@`u fedele possibile a quella preparata da Graham Nelson in Inglese. Naturalmente ho dovuto fare alcuni adattamenti: molti modi di dire non hanno veramente un equivalmente in Italiano. Un'ultima nota sui nomi dei luoghi: in alcuni casi ho preferito lasciare il nome in Inglese mettendo una traduzione letterale tra parentesi.^^ Giovanni Riccardi^ giovanni@@64composizioni.net^^ Informazioni -- il sito italiano di INFORM^ http://www.inform-italia.org"; } print "Lo sapevi che......^^"; print "I cinque nani hanno il 96% delle possibilit@`a di seguirti, eccetto che nella luce, nelle buche o quando si guardano tra di loro: e i piccoli coltelli sono 9,5% precisi.^^"; print "I draghi possono bruciare i Nani (forse perch@'e i nani mangiano solo carbone).^^"; print "L'orso (a cui piace il vulcano) @`e troppo pesante per il ponte... e tu puoi tornare in scena dopo essre stato resuscitato.^^"; print "Tu puoi scappare dal serpente nel canyon segreto. il 35% delle volte. E camminare nel buio non @`e poi cos@`i orribile: c'@`e solo il 25% di rischio ddi cadere in una buca.^^"; print "Al vaso non piace essre immerso...^^"; print "Le figure nell'ombra posso gesticolare l'una verso l'altra.^^"; print "Bagnare i cardini della porta la fa arrugginire.^^"; print "Quando la caverna chiude, la grata @`e chiusa a chiave e le chiavi sono buttate via, le creature scappano e il ponte di cristallo svanisce...^^"; print "...e un aiuto completamente inutile @`e scritto sulla conchiglia della gigantesca ostrica, nel gioco finale.^^"; "L'ultimo piccolo punto pu@`o essere vinto... ma no. Ti verr@`a detto."; ]; [ HelpSub; if (deadflag~=2) DoMenu("Ci sono informazioni su:^ ^ Istruzioni per giocare ^ Una prefazione storica ^ Quanto autentica @`e questa edizione?^", HelpMenu, HelpInfo); else DoMenu("Ci sono informazioni su:^ ^ Istruzioni per giocare ^ Una prefazione storica ^ Quanto autentica @`e questa edizione? ^ Lo sapevi che...^", HelpMenu, HelpInfo); ]; [ Amusing; HelpSub(); ]; ! ---------------------------------------------------------------------------- ! Nuovi Verbi (da aggiungere a quelli della libreria) ! ---------------------------------------------------------------------------- [ CatchSub; "Non puoi afferrare ", (the) noun, "."; ]; [ ReleaseSub; "Non puoi liberare ", (the) noun, "."; ]; [ WaterSub; if (bottle in player) <>; "Acqua? Quale Acqua?"; ]; [ OilSub; if (bottle in player) <>; "Olio? Quale olio?"; ]; [ OnSub; if (brass_lantern notin player) "Non hai nessuna lampada da poter accendere."; <>; ]; [ OffSub; if (brass_lantern notin player) "Non hai nessuna lampada."; <>; ]; [ XyzzySub; "Non succede nulla."; ]; [ PlughSub; "Non succede nulla."; ]; [ PloverSub; "Non succede nulla."; ]; [ FeeSub; FthingSub(0); ]; [ FieSub; FthingSub(1); ]; [ FoeSub; FthingSub(2); ]; [ FooSub; FthingSub(3); ]; [ FthingSub i; if (feefie_count~=i) { feefie_count=0; "Fallo bene!"; } if (feefie_count++ == 3) { feefie_count=0; if (golden_eggs in In_Giant_Room) "Non succede nulla."; if ((golden_eggs in player) || (golden_eggs in location)) print "La cesta di uova d'oro @`e svanita!^"; else print "Fatto!"; if (golden_eggs in player) score=score-5; if (golden_eggs in Inside_Building) score=score-golden_eggs.depositpoints; move golden_eggs to In_Giant_Room; if (location==In_Giant_Room) "^^Una grande cesta piena di uova d'oro appare improvvisamente dal nulla!"; } else "Ok."; ]; [ CountSub; if (noun has multitude) "Una moltitudine."; else { if (noun has female) "Io vedo una (1) ", (name) noun, "."; "Io vedo un (1)", (name) noun, "."; } ]; [ UseSub; "Devi essere un p@`o pi@`u esplicito."; ]; [ BlastWithSub; if (second~=black_mark_rod) "Le esplosioni richiedono la dinamite."; "Hai di nuovo mangiato quei divertenti fagioli?"; ]; [ OldMagicSub; "Bella prova, ma questa @`e una vecchia parola magica passata di moda."; ]; [ KickSub; <>; ]; ! For kicking dwarves [ BlastSub; if (location~=At_Sw_End or At_Ne_End) "Deluso, vero?"; if (location==At_Sw_End && parent(black_mark_rod)==At_Ne_End) { score=score+35; deadflag=2; "C'@`e una forte esplosione, e una buca di circa 6 m appare nella parete pi@`u lontana, sotterrando i nani sotto le macerie. Tu attraversi la buca e ti ritrovi nell'entrata principale, dove un gruppo di elfi ti applaude, trasportando il vittorioso avventuriero verso il tramonto."; } if (location==At_Ne_End && parent(black_mark_rod)==At_Sw_End) { score=score+20; deadflag=1; "C'@`e una grossa esplosione, e una buca di circa 6 m appare nella parete pi@`u lontana, sotterrando i serpenti sotto le macerie. Un fiume di lava fusa si riversa nella buca, distruggendo ogni cosa sul suo cammino, incluso te!"; } deadflag=1; "C@`e una forte esplosione, e tu sei improvvisamente scaraventato sulle pareti della stanza."; ]; ! ---------------------------------------------------------------------------- ! Resurrezione ! ---------------------------------------------------------------------------- [ AfterLife o; if (deadflag==3) { deadflag=1; rfalse; } print "^^"; if (caves_closed) "Sembra come se sei morto. Bene, vedendo che comunque siamo quasi all'orario di chiusura, io penso che ci possiamo vedere un altro giorno."; if (deaths==0) print "Oh mamma, sembra che tu ti sia ucciso. Io potrei essere capace ad aiutarti, ma non l'ho mai fatto prima d'ora. Vuoi che provi a farti reincarnare?^^"; if (deaths==1) print "Tu stupido maldestro, l'hai fatto di nuovo! Non so per quanto potr@`o sopportare tutto questo. Vuoi che provi a farti reincarnare di nuovo?^^"; if (deaths==2) print "Ora lo hai fatto veramente! Ho finito il fumo arancione! Mica ti aspetti che io possa fare una reincarnazione decente senza un p@`o di fumo arancione?^^"; print "> "; if (YesOrNo() == false) { switch(deaths) { 0: "Molto bene."; 1: "Probabilmente una scelta saggia."; 2: "Non l'avrei mai pensato!"; } } switch(deaths) { 0: print "OK. Ma non rimproverarmi se qualcosa va ma......^^^^ --- POOF!! ---^^ Sei fagocitato in una nuvola di fumo arancione. Tossendo e boccheggiando, emergi dal fumo e ti ritrovi....^"; 1: print "Okay, ora dove ho messo il mio fumo arancione?.... >POOF!< ^^Tutto scompare in una densa nuvola di fumo arancione.^"; 2: "Okay, se sei cos@`i sveglio e intelligente, fallo da solo! Ci vediamo!"; } deaths++; score=score-10; if (location~=thedark) { while (child(player) ~= nothing) { o=child(player); move o to location; if (o ofclass Treasure) score=score-5; } } else { while (child(player) ~= nothing) move child(player) to real_location; } move brass_lantern to At_End_Of_Road; give brass_lantern ~on ~light; remove dwarf; deadflag=0; PlayerTo(Inside_Building); ]; ! ---------------------------------------------------------------------------- ! Funzioni per testare il gioco: niente nani o pirati, e parole magiche che ! funzionano fin dall'inizio ! ---------------------------------------------------------------------------- #IFDEF TEST_VERSION; [ XdetermSub; StopDaemon(dwarf); StopDaemon(pirate); give In_Debris_Room visited; give At_Y2 visited; give In_Plover_Room visited; ]; #ENDIF; ! ---------------------------------------------------------------------------- ! Grammar: the usual grammar and some extensions ! ---------------------------------------------------------------------------- Include "ItalianG"; Verb "on" * -> On; Verb "off" * -> Off; Verb "cattura" * creature -> Catch * creature "con" held -> Catch; Verb "rilascia" "libera" * creature -> Release; Verb "versare" "mettere" * "acqua" "su" noun -> Water * "olio" "su" noun -> Oil * noun -> Empty; Verb "annaffia" "bagna" * noun -> Water; Verb "olia" "ingrassa" "lubrifica" * noun -> Oil; Verb "plugh" * -> Plugh; Verb "xyzzy" * -> Xyzzy; Verb "plover" * -> Plover; Verb "sesamo" "shazam" "hocus" "abracadabra" "foobar" "apriti-sesamo" "frotz" * -> OldMagic; Verb "fee" * -> Fee; Verb "fie" * -> Fie; Verb "foe" * -> Foe; Verb "foo" * -> Foo; Verb "aiuto" "help" * -> Help; Verb "calcia" * noun -> Kick; Verb "conta" * noun -> Count; Verb "usa" * -> Use; Extend "fai" * "scoppiare" -> Blast * "esplodere" -> Blast * "esplodere" noun "con" held -> BlastWith * "scoppiare" noun "con" held -> BlastWith; Extend "dai" * "calcio" "a" noun -> Kick; #IFDEF TEST_VERSION; Verb "xdeterm" * -> Xdeterm; #ENDIF; ! ----------------------------------------------------------------------------