! La Pietra della Luna ! Avventura Testuale realizzata da Paolo Lucchesi ! da un'idea di Paolo Lucchesi, Andrea Gnesi e Stefano Masi ! Questo prodotto @`e libero, rilasciato sotto licenza GPL (Gnu Public License), ! riportata nel file allegato gpl.txt. ! Questo prodotto @`e distribuito senza alcuna garanzia. L'autore non pu@`o essere ! ritenuto responsabile per qualsiasi danno dovuto direttamente o indirettamente ! all'uso del prodotto. ! ------------------------------------------ ! Il Villaggio di Har Plenais ! ------------------------------------------ ORoom SentieroPalazzo "Sentiero per il palazzo" with description "Un piccolo sentiero in terra battuta si snoda tra la vegetazione brulla di questa zona. Ad est esso conduce verso il palazzo del barone, e andando verso sud si incontrano le prime case del piccolo villaggio.", name 'sentiero' 'vialetto', ne_to DavantiPalazzo, e_to DavantiPalazzo, se_to DavantiPalazzo, ! nel file lunapal.inf w_to PianuraOvest, sw_to PianuraOvest, nw_to PianuraNord, n_to PianuraNord, s_to DavantiEmporio, cant_go "Puoi andare in qualsiasi direzione, ma comunque il villaggio @`e verso sud e il palazzo verso est."; Prop -> "vegetazione" with name 'vegetazione' 'piante' 'erba', description "La vegetazione ai lati del sentiero non sembra troppo rigogliosa.", cant_go "@`E solo semplice vegetazione.", has female; Direction -> "villaggio" with name 'villaggio' 'borgo' 'har' 'plenais' 'case' 'abitazioni' 'costruzioni' 'edifici', dir_to s_obj; Direction -> "palazzo" with name 'palazzo' 'castello' 'edificio' 'costruzione' 'villa', dir_to e_obj; ORoom PianuraOvest "Pianura" with description "La brulla pianura che si stende ad ovest del villaggio ha un aspetto quasi desolante, paragonata alla rigogliosa foresta che occupa quasi tutta la valle.", name 'pianura', e_to SentieroPalazzo, se_to SentieroPalazzo, ne_to PianuraNord, n_to [; print "Attraversi la pianura seguendo la traccia di un vecchio sentiero che da nord curva verso est.^"; return PianuraNord; ], before [; Go: if (noun == w_obj or sw_obj or nw_obj or s_obj) "Non ti sembra ci sia niente di interessante in quella direzione."; ], cant_go "La pianura si stende tutto intorno a te; il palazzo e il villaggio si trovano verso est.", has female; ORoom PianuraNord "Pianura" with description "La brulla pianura che si stende a nord del villaggio e del palazzo ha un aspetto quasi desolante, paragonata alla rigogliosa foresta che, verso est, occupa quasi tutta la valle.", name 'pianura', s_to SentieroPalazzo, sw_to PianuraOvest, nw_to "Non ti sembra ci sia niente di interessante in quella direzione.", se_to ForestaL1, e_to ForestaL1, ne_to ForestaL2, ! nel file lunafor.inf n_to [; print "Un piccolo sentiero tortuoso curva da nord ad est addentrandosi nella parte pi@`u settentrionale della foresta.^"; return ForestaL2; ], w_to [; print "Segui la traccia quasi invisibile di un sentiero che curva da ovest a sud.^"; return PianuraOvest; ], cant_go "La pianura si stende tutto intorno a te; il palazzo e il villaggio si trovano verso sud, e verso est vedi i primi alberi della foresta.", has female; ORoom DavantiEmporio "Il villaggio (davanti a un emporio)" with description "L'acciottolato si snoda fra le piccole costruzioni in legno e pietra, alte mai pi@`u di due piani. Camminando verso nord si esce dal villaggio, andando verso il palazzo, mentre a sud si vede una piazza. Una piccola bottega, probabilmente un emporio, risalta fra le altre case a est della strada.", name 'villaggio' 'borgo' 'har' 'plenais' 'strada', n_to SentieroPalazzo, s_to PiazzaVillaggio, e_to GoEmporio, in_to GoEmporio, cant_go "Puoi andare solo a nord e a sud, o entrare nell'emporio andando ad est.", initial [; LeftPicture(Village_img, -1, -1); ]; Prop -> "case" with name 'case' 'costruzioni' 'abitazioni' 'casa' 'costruzione' 'abitazione' 'edifici', description "Le case qui intorno sono simili a quelle del resto del villaggio, e a quelle di molti altri piccoli villaggi.", cant_go "Sono solo le case degli abitanti del villaggio." has pluralname female static; Direction -> "emporio" with name 'emporio' 'negozio' 'bottega' 'porta' 'edificio', dir_to e_obj, description [; if (night || sunset) "Quando @`e chiuso l'emporio @`e quasi indistinguibile dalle altre case."; "Il piccolo emporio @`e riconoscibile dalla merce, per lo pi@`u di infimo valore, esposta fuori."; ], before [; Open, Unlock, Knock: if ((~~night) && (~~sunset)) "L'emporio @`e aperto."; if (action==##Knock) "Nessuna risposta."; "La porta @`e chiusa a chiave."; ]; Direction -> "piazza" with name 'piazza' 'osteria' 'locanda' 'taverna' 'tempio', dir_to s_obj, has female; Direction -> "palazzo" with name 'palazzo' 'castello' 'villa', dir_to n_obj; Prop -> "merce" with name 'merce' 'merci', description "La merce esposta fuori sembra di pessima qualit@`a e completamente inutile.", cant_go "Lascia perdere. @`E per la maggior parte robaccia inutile.", has female; [GoEmporio; if (night || sunset) "La porta dell'emporio @`e chiusa."; return(Emporio); ]; Object martello "chiodi e martello" with name 'martello' 'chiodi', description "Un piccolo martello e una manciata di chiodi.", before [; Buy: if (player in Emporio) "Non hai bisogno di un altro martello o di altri chiodi."; ], has pluralname; IRoom Emporio "L'emporio" with description "E' difficile farsi strada all'interno dell'emporio, tanto @`e pieno di merce di ogni tipo. Pare infatti che qui venga venduto di tutto: derrate alimentari, utensili, attrezzi da boscaiolo, cordami e altro ancora.", name 'emporio' 'bottega' 'negozio', w_to DavantiEmporio, out_to DavantiEmporio, cant_go "L'uscita @`e a ovest.", has light; Prop -> "merce" with name 'merce' 'merci' 'derrate' 'alimentari' 'casse' 'cassa', description "Le varie merci e oggetti in vendita in questo negozio occupano praticamente tutte le pareti, e anche diverse casse sparse disordinatamente sul pavimento.", cant_go "Lascia perdere. @`E per la maggior parte robaccia inutile.", has female; Object -> utensili "utensili" with name 'utensili' 'attrezzi' 'utensile' 'attrezzo' 'martello' 'chiodi' 'chiodo', description [; if (self has general) "Non vedi niente di particolarmente utile."; "Le uniche cose che ti sembrano di una certa utilit@`a sono un piccolo martello e dei chiodi."; ], before [; Buy, Take: if (self has general) "Hai gi@`a comprato quello che ti serviva."; if (soldi notin player) "Al momento non hai soldi."; move martello to player; give self general; "Acquisti un martello e dei chiodi."; ], has scenery pluralname; Object -> cordami "cordami" with name 'corde' 'corda' 'funi' 'fune' 'cordame' 'cordami', description "Con occhio attendo noti che le corde vendute qui sono tutte di pessima qualit@`a, mal intrecciate e spesso anche marce.", before [; Buy, Take: "Una corda in quello stato non ti potrebbe servire a nulla."; ], has scenery pluralname; NPC -> erlik with short_name [; if (self has proper) print "Erlik"; else print "negoziante"; rtrue; ], name 'erlik' 'negoziante' 'venditore', article "il", description [; if (self has proper) print "Erlik "; else print "Il negoziante "; "si muove in modo concitato, come se non riuscisse a star fermo un minuto. Non @`e ancora giunto alla mezz'et@`a ed @`e di bassa statura. I suoi abiti, tutt'altro che scadenti, sono abbastanza chiassosi."; ], greet false, conversor erliktalk, life [; if (player has invisible) { give player ~invisible; print "L'uomo pare accorgersi ora della tua presenza.^"; } Answer: "Ti sembra che non abbia capito niente."; Give, Show: if (noun == mandato) "Vuoi far sapere a tutto il villaggio cosa sei veramente venuto a fare in questa valle?"; if (noun == soldi) "@<>"; print_ret (The)self, " osserva ", (the)noun, " e dice: @<>"; Kiss: "Non @`e una buona idea..."; ThrowAt, Attack: "Non lo farai..."; !default: "L'uomo ti guarda stupito."; ], lifedefault "L'uomo ti guarda, perplesso.", Orders [; Give: if (noun == utensili) <>; ], rs 0, each_turn [; give m_erlik ~locked; if ((~~self.greet) && player hasnt invisible) { self.greet=true; self.talkto(false); if (iarin in real_location) "^Il negoziante si volge verso di te e dicendo: @<>"; "^Appena varchi la porta, il negoziante si precipita da te dicendo: @<>"; } if (silenceturns > 2 && random(2) == 1 && self in Emporio) { switch(++self.rs) { 2: print_ret "^", (The) self, " cerca, senza risultato, di mettere ordine in una pila di merce."; 5: print_ret "^", (The) self, " si mette distrattamente a contare le casse sul pavimento."; 7: print_ret "^", (The) self, " controlla i cordami e gli utensili con aria da intenditore, annuendo."; 9: print_ret "^", (The) self, " si affaccia un attimo dalla porta, come per controllare se stiano arrivando clienti."; 10: self.rs = 0; } } ], has; Object erliktalk with before [flag; if (flag && easy) { if (erlik.cnumber >= 1 && t_erlik_culti.cnumber == 0) { t_erlik_culti.act(); rtrue; } if (erlik.cnumber >= 1 && t_erlik_triven.cnumber == 0 && m_triven hasnt locked) { t_erlik_triven.act(); rtrue; } if (erlik.cnumber >= 2 && t_erlik_donna.cnumber == 0 && m_donna hasnt locked) { t_erlik_donna.act(); rtrue; } if (erlik.cnumber >= 2 && t_erlik_barone.cnumber == 0) { t_erlik_barone.act(); rtrue; } if (erlik.cnumber >= 2 && t_erlik_naradas.cnumber == 0) { t_erlik_naradas.act(); rtrue; } if (erlik.cnumber >= 2 && t_erlik_culti.cnumber <= 1) { t_erlik_culti.act(); rtrue; } } ], description [; give self proper; "@<>^ @<> risponde lui, @<>"; ] "@<>^ @<>" "Non hai altro da chiedere, e inoltre temi la logorrea di Erlik.", cant_go [; "Sentita la tua domanda ", (the)erlik, " risponde: @<>"; ]; Topic -> with name 'lui' 'egli' 'se' 'stesso', metatopic m_erlik, before [; if (erlik hasnt proper) { give erlik proper; "@<>^ @<>"; } ], description "@<>^ @<>" "@<>^ @<> ti risponde Erlik, @<>" "Non osi chiedere altre informazioni. Potresti ottenerle."; Topic -> t_erlik_barone with metatopic m_barone, description "@<>^ @<>, Erlik ammicca prima di continuare, @<>" "@<>^ @<>" "Non pensi di scoprire altro. Anche il negoziante ti conferma che @`e Naradas a governare il feudo."; Topic -> t_erlik_culti with metatopic m_culti, description [; give m_triven ~locked; "@<>^ @<>"; ] "@<>^ @<>" "Strani canti che si odono di notte nella foresta, e uno studioso di qualche tipo venuto nella valle qualche anno fa. Informazioni interessanti. Non pensi che l'uomo sappia altro."; Topic -> t_erlik_donna with metatopic m_donna, description "@<>^ @<>" [; give vade proper; "@<>^ @<>"; ] "@<>^ @<>" "La donna era molto bella e aveva occhi stupendi, e ha comprato corde e una lanterna; oltre a questo non credi che sappia dirti altro d'interessante."; Topic -> t_erlik_triven with metatopic m_triven, description "@<>^ @<>" "@<>^ L'uomo sembra riflettere un attimo prima di rispondere: @<>." "Non credi che possa dirti di pi@`u; comunque ti ha detto che questo mago era una una specie di studioso o investigatore, e che non abitava al villaggio."; Topic -> t_erlik_naradas with metatopic m_naradas, description "@<>^ @<>" "@<>^ @<>" "Non hai altro da chiedere, e ti ha gi@`a detto che Naradas, pur amministrando saggiamente la valle, non approfitta della sua posizione per arricchirsi, o che per lo meno non lo da a vedere."; Topic -> with metatopic m_tempio, description "@<>^ @<>"; Topic -> with metatopic m_dippin, description "@<>^ @<>" "@<>^ @<>" "Non hai altro da chiedere."; Topic -> with metatopic m_dei, description "@<>^ @<>" "Non credi che ti possa rivelare niente di interessante sull'argomento."; Topic -> with metatopic m_vade, description [; give vade proper; "@<>^ @<>"; ] "@<>^ @<>" "Non pensi di dover credere altro. @`E comunque interessante il fatto che ci siano opinioni discordanti su Vade."; Topic -> with metatopic m_aloe, description "@<>^ @<>" "Non credi possa dirti altro."; Topic -> with metatopic m_osteria, description [; give m_bano ~locked; give bano proper; give m_dippin ~locked; "@<>^ @<>"; ] [; t_erlik_bano.act(); ]; Topic -> t_erlik_bano with metatopic m_bano, description "@<>^ @<>" "@<>^ @<>" "Non hai altre domande da fare sull'oste."; Topic -> with name 'commercio' 'emporio' 'merci' 'merce', description "@<>^ @<>" "Inutile. Sarebbe come chiedere ad un oste come @`e il suo vino. O, nel caso, il suo aceto."; Topic -> with name 'attrezzi' 'utensili' 'chiodi' 'martello', description "@<>^ @<>" "Certo ti direbbe qualsiasi cosa pur di venderteli."; Topic -> with metatopic m_miniere, description "@<>^ @<> risponde lui con un sospiro di nostalgia, prima di continuare: @<>." "@<>^ @<>" "@<>^ @<>" "Le miniere sono esaurite e abbandonate. Non credi che ti sappia dire qualcosa di pi@`u."; !ORoom Vicolo "Il villaggio (un vicolo)" ! with description ! "Le modeste case del villaggio, qui talmente strette da essere separate solo da uno stretto vicolo, andando verso nord si diradano lasciando aria ai campi che circondano il palazzo del barone. Il vicolo procede verso sud, allargandosi di poco, fino ad incrociare una strada pi@`u larga.", ! name 'villaggio' 'vicolo', ! scenic ! 'case' 'costruzioni' 'abitazioni' 'casa' 'costruzione' 'abitazione' 0 "A giudicare dall'aspetto delle case, questa deve essere la parte pi@`u misera del villaggio.", ! n_to SentieroPalazzo, s_to Quadrivio, ! cant_to "Il vicolo conduce da nord a sud."; ORoom PiazzaVillaggio "Piazza del villaggio" with description "Tutte le piccole strade che si dipanano fra le case paiono incontrarsi qui, in questa piccola piazza che sembra essere il centro del villaggio. Verso nord-ovest si erge un piccolo tempio dedicato a Maral, mentre a sud-ovest la porta di una piccola osteria rimane aperta, come un benvenuto per i clienti. Le strade conducono verso nord, verso sud e verso est.", name 'piazza' 'villaggio' 'borgo' 'har' 'plenais', n_to DavantiEmporio, e_to DavantiAlchimista, s_to DavantiForgia, nw_to GoTempio, sw_to GoOsteria, cant_go "Le strade conducono a nord, a est e a sud, mentre a nord-ovest vedi il tempio di Maral e a sud-ovest l'osteria.", each_turn [; give m_dippin ~locked; give m_bano ~locked; ], initial [; AbovePicture(Square_img, -1, -1); ], has female; Prop -> "case" with name 'case' 'costruzioni' 'abitazioni' 'casa' 'costruzione' 'abitazione' 'edifici', description "Le case qui intorno sono simili a quelle del resto del villaggio, e a quelle di molti altri piccoli villaggi.", cant_go "Sono solo le case degli abitanti del villaggio." has pluralname female; Direction -> "emporio" with name 'emporio' 'negozio', dir_to n_obj; Direction -> "bottega dell'alchimista" with pname 'bottega' '.or' 'laboratorio' '.x' 'dell^' '.or' 'del' '.or' 'di' 'alchimista' '.or' 'erborista' '.or' 'medico' '.or' 'cerusico', dir_to e_obj, has female; Direction -> "forgia" with name 'forgia' 'fabbro', dir_to s_obj, has female; Direction -> "tempio" with pname 'tempio' '.or' 'chiesa' '.p' 'portone' '.or' 'porta' '.x' 'principale' '.x' 'del' '.or' 'di' 'tempio', dir_to nw_obj, description "Il tempio @`e piccolo, ma dalla pietra, dai marmi e dal legno usati per la facciata e il portone d'ingresso capisci che non sono state fatte economie nella sua costruzione.", before [; Open, Unlock, Knock: if (~~night) "Il tempio @`e aperto."; if (action==##Knock) "Nessuno risponde al tuo bussare."; "Il portone @`e solido, robusto e chiuso dall'interno con un paletto."; ]; Direction -> "osteria" with pname 'osteria' '.or' 'locanda' '.or' 'taverna' '.or' 'cartello' '.p' 'porta' '.x' 'dell^' '.or' 'della' '.or' 'di' 'osteria' '.or' 'locanda' '.or' 'taverna', dir_to sw_obj, description "Sopra la porta un cartello con l'immagine di un boccale e le parole ~Al vulcano spento~ ti confermano che questa non pu@`o che essere un'osteria.", before [; Open, Unlock, Knock: if ((~~night) || phase>=6) "L'osteria sembra aperta."; if (action==##Knock) "Nessuno risponde."; "La porta dell'osteria @`e robusta e ben chiusa."; ], has female; [GoTempio; if (night) "Il portone principale del tempio @`e chiuso."; return(Tempio); ]; [GoOsteria; if (night && phase<6) "L'osteria @`e chiusa a quest'ora."; return(Osteria); ]; IRoom Tempio "Il Tempio di Maral" with description "All'interno il tempio ha un aspetto ancora pi@`u sfarzoso di quanto appaia all'esterno. Colonne istoriate e statue pregiate creano quasi un corridoio che conduce fino all'altare in marmo immacolato, che a sua volta @`e sovrastato da un arazzo. Dietro l'altare una tenda copre un passaggio verso nord.", name 'tempio' 'chiesa', se_to PiazzaVillaggio, out_to PiazzaVillaggio, n_to AppartamentoTempio, cant_go "L'uscita @`e a sud-est e gli appartamenti del sacerdote sono a nord.", has light; Class Statue with before [; Push, Pull, Turn, Take: "La statue sono troppo pesanti."; Search, LookUnder: <>; Touch: "La pietra @`e fredda al tatto."; ], has scenery female; Prop -> "colonne" with name 'colonne' 'colonna', description "Le colonne, alte e istoriate, sono in marmo pregiato.", has pluralname static female; Statue -> "statue" with name 'statue' 'dei', description "Quattro statue rappresentano gli dei nella loro forma umana. Aran, Irdil, Oster e Maral paiono osservare ogni tuo movimento.", has pluralname; Statue -> "statua di Aran" with pname 'statua' '.x' 'di' 'aran', description "Aran, dio del sole, @`e rappresentato nell'atto di attaccare un nemico con la sua spada."; Statue -> "statua di Irdil" with pname 'statua' '.x' 'di' 'irdil', description "Irdil, dea dell'aria, della magia e dell'artigianato, @`e vista come una donna che regge in mano un piccolo martello d'argento."; Statue -> "statua di Oster" with pname 'statua' '.x' 'di' 'oster', description "Oster, dio del mare e del commercio, @`e rappresentato come un uomo barbuto con un tridente in una mano e una bilancia sull'altra."; Statue -> "statua di Maral" with pname 'statua' '.x' 'di' 'maral', description "La statua di Maral, dea delle messi, @`e ovviamente la pi@`u vicina all'altare. In marmo ella @`e una donna che reca sulle spalle una falce."; Prop -> "altare" with pname 'altare' '.or' 'blocco' '.x' 'di' '.x' 'marmo', description "L'altare @`e un blocco unico di un marmo che sai essere molto pregiato. Su di esso @`e inciso solo il simbolo di una falce.", before [; Search, LookUnder: "L'altare non nasconde niente."; Take, Push, Pull, Turn: "L'altare @`e pesante e ben fissato al pavimento."; Receive: "L'altare non @`e un tavolino su cui appoggiare oggetti, ma un oggetto di culto."; ], !cant_go "L'altare pu@`o essere utile solo per pregare." has supporter; Prop -> "arazzo" with name 'arazzo' 'dipinto' 'scena' 'creazione' 'quadro' 'affresco', description "L'arazzo rappresenta una scena della creazione del mondo, Maral nell'atto di plasmare la terra.", before [; Search, Push, Pull: "L'arazzo non sembra nascondere niente."; Take: "L'arazzo @`e ben fissato alla parete."; ], cant_go "@`E solo un arazzo."; Direction -> "passaggio" with name 'tenda' 'passaggio' 'appartamenti' 'appartamento', dir_to n_obj, description "La tenda di velluto color ocra copre il passaggio che porta all'appartamento del sacerdote."; NPC -> cerdil with short_name [; if (self has proper) print "Cerdil"; else print "giovane accolito"; rtrue; ], name 'cerdil' 'giovane' 'accolito' 'chierichetto', description [; if (self has proper) print "Cerdil "; else print "L'accolito "; "@`e un ragazzo di non pi@`u di vent'anni, alto, quasi allampanato. Nei suoi occhi vedi brillare uno sguardo che hai gi@`a visto in passato in giovani simili a lui, una commistione di idealismo, fede e ingenuit@`a."; ], count 0, vanished FALSE, greet FALSE, conversor cerdiltalk, life [; if (player has invisible) { give player ~invisible; print "Il giovane @`e sorpreso dalla tua improvvisa apparizione.^"; } Answer: "Il giovane ti squadra sospettoso."; Kiss: "Direi di no..."; Show, Give: if (noun == mandato) "Mostri il mandato al giovane e lo legge interessato. I suoi occhi si illuminano mentre dice: @<>."; if (noun == soldi && action==##Give) "Lasci una piccola offerta nelle mani dell'accolito."; if (noun == dlibro or diariotriven) "Non pensi che l'accolito sia la persona giusta a cui far conoscere certe informazioni."; print_ret (The)self, " non sembra interessato."; ThrowAt, Attack: "Non ti ha fatto niente di male... e non credi che ne sar@`a mai capace..."; !default: "Il giovane ti osserva, perplesso."; ], lifedefault "Il giovane ti osserva, perplesso.", rs 0, each_turn [; give m_cerdil ~locked; if (phase==7) { self.count++; if (self.count>=3) { addhint(h_sparizioni); Achieved(28); self.vanished=TRUE; if (iarin.follower) iarin.talk = 10; remove self; print "^D'improvviso "; if (self has proper) print "Cerdil"; else print "il giovane accolito"; print " sparisce nel nulla. Per un'attimo la sua figura diventa scura, come avvolta da una cortina di tenebra, e poi con orrore ti rendi conto di non vederlo pi@`u.^^"; rtrue; } } if ((~~self.greet) && player hasnt invisible) { self.greet=true; self.talkto(false); "^Un giovane, probabilmente un accolito, si rivolge verso di te appena entri, dicendo: @<>"; } if (silenceturns > 2 && random(2) == 1 && self in Tempio) { switch(++self.rs) { 2: print_ret (The) self, " pulisce con uno straccio la superficie gi@`a linda dell'altare."; 5: print_ret (The) self, " si sofferma per un attimo in silenzio davanti alla statua di Maral, evidentemente in preghiera."; 8: print_ret (The) self, " controlla che il pavimento del tempio sia sufficientemente pulito."; 10: self.rs = 0; } } ], react_before [; go: if (noun == n_obj && real_location == Tempio && player hasnt invisible) { if (~~(dippin in AppartamentoTempio)) "Vieni fermato energicamente dal giovane accolito che dice: @<>"; } ], has; Object cerdiltalk with before [flag; if (cerdil hasnt proper) { give dippin proper; give cerdil proper; print "@<>^ @<>^"; pretalked = 1; return flag; } if (flag && easy) { if (t_cerdil_culti.cnumber == 0) { t_cerdil_culti.act(); rtrue; } if (t_cerdil_donna.cnumber <= 1 && m_donna hasnt locked) { t_cerdil_donna.act(); rtrue; } if (t_cerdil_dippin.cnumber == 0) { t_cerdil_dippin.act(); rtrue; } if (t_cerdil_culti.cnumber <= 0) { t_cerdil_culti.act(); rtrue; } } ], description "@<>^ @<>", cant_go [; if (pretalked) print "^"; print_ret (The)cerdil, " ti ascolta e risponde con tono quasi affranto: @<>"; ]; Topic -> with name 'lui' 'egli' 'se' 'stesso', metatopic m_cerdil, before [; if (cerdil hasnt proper) { give cerdil proper; "@<>^ @<>"; } ], description [; give dippin proper; "@<>^ @<>"; ] "@<>^ @<>" "Non hai altro da chiedere."; Topic -> with metatopic m_barone, description "@<>^ @<>" "@<>^ @<>" "Non pensi di aver altro da chiedere."; Topic -> with name 'biblioteca' 'libro' 'libreria' 'libri', description [; give m_biblioteca ~locked; "@<>^ @<>"; ]; Topic -> t_cerdil_culti with metatopic m_culti, before [; if (knowcult && self.cnumber > 0) !era: if (action==##Tell && knowcult) "Ti fidi poco del sacerdote, e questo giovane correrebbe subito a riferirgli tutto. Meglio lasciarlo all'oscuro."; ], description [; give dippin proper; give m_donna ~locked; "@<>^ @<>"; ] "@<>^ @<>" "I rituali si svolgerebbero di notte nella foresta... Quanta originalit@`a... Tanto vale non chiedere altro sull'argomento. @`E per@`o interessante il riferimento a quella profanatrice di templi."; Topic -> t_cerdil_donna with metatopic m_donna, description "@<>^ @<>" "@<>^ @<>" "@<>^ @<>" "Probabilmente l'accolito lavora molto di fantasia, ma questa straniera che entra in un tempio solo per recitare preghiere oscure potrebbe aver qualcosa a che fare con il resto."; Topic -> with name 'tempio' 'edificio' 'costruzione', description "@<>^ @<>" "L'accolito evidentemente non apprezza la ricchezza di questo tempo."; Topic -> with name 'dea' 'maral', description "@<>^ @<>, il tono del giovane si fa pi@`u intenso mentre continua: @<>." "@<> @<>" "L'accolito @`e sicuramente fedele fino all'eccesso, anche se la sua preparazione teologica, per quanto tu ne sappia, lascia un po' a desiderare, ma avr@`a sicuramente tempo di rimediare."; Topic -> with name 'dei' 'dio' 'oster' 'aran' 'irdil' 'statue' 'statua', description "@<>^ @<>" "@<>^ @<>" "Non hai altro da chiedere."; Topic -> with metatopic m_naradas, description "@<>^ @<>" "@<>^ @<>" "Non credi che il ragazzo possa dirti altro."; Topic -> t_cerdil_dippin with metatopic m_dippin, name 'padre', description [; give dippin proper; "@<>^ @<>"; ] [; print "@<>^"; if (dippin in AppartamentoTempio) "@<>"; if (dippin in Tempio) "@<>"; "@<>"; ]; Topic -> with metatopic m_vade, description "@<>^ @<>" [; give dippin proper; "@<>^ @<>"; ] "@<>^ @<>" "Meglio non chiedere altro. Comunque hai scoperto che Dippin non si fida dell'alchimista a causa - dice - della sua professione. Cosa che fra l'altro @`e una grossa sciocchezza, visto che i migliori alchimisti lavorano per i templi di Irdil."; Topic -> with metatopic m_bris, description [; give bris proper; "@<>^ @<>"; ] "@<>^ @<>" "Evidentemente si rammarica del fatto che Bris lavori in una taverna e non sia invece la promessa sposa di un giovane accolito, ma a parte questo non pensi possa dirti qualcosa di veramente interessante su di lei."; Topic -> t_cerdil_bano with metatopic m_bano, description "@<>^ @<>" "Meglio non insistere. L'ultima cosa di cui hai bisogno @`e un accolito che fa un sermone contro il vizio del bere."; Topic -> with metatopic m_osteria, description [; give m_bano ~locked; t_vade_bano.act(); ]; IRoom AppartamentoTempio "Appartamenti del sacerdote" with description "Lo sfarzo del tempio continua nei lussuosi appartamenti del sacerdote. Tutto qui contrasta con la figura del pio e semplice uomo di chiesa tipica del culto di Maral, dal letto a baldacchino allo scrittoio in mogano intagliato, al folto tappeto.", name 'appartamento' 'appartamenti', s_to Tempio, out_to Tempio, cant_to "Puoi solo andare a sud.", each_turn [; if (dippin notin self && cerdil notin self) solved(h_dippin); ], has light; Object -> "letto" with name 'letto' 'cuscino' 'cuscini' 'lenzuolo' 'lenzuola' 'coperta' 'coperte' 'baldacchino', description "Un letto a baldacchino che pare pi@`u comodo di qualsiasi letto tu abbia provato.", react_before [; LieDown: <>; ], before [; Go, Enter, Climb: "Non @`e il tuo letto."; LookUnder: "Non trovi niente sotto il letto."; Push, Pull, Turn: "Il letto @`e troppo pesante."; Open, Search: if (dippin in parent(self)) { addhint(h_dippin); "Non @`e consigliabile, con il sacerdote presente."; } "Cerchi nel letto del sacerdote, ma non trovi niente."; ], has scenery supporter enterable; Prop -> "tappeto" with name 'tappeto', description "Un bellissimo tappeto.", before [; Take, LookUnder, Push, Pull, Turn: "Non credi che nasconda una botola, n@'e altro."; ]; !cant_go "Un bel tappeto, ma inutile."; Object -> scrivaniadippin "scrittoio" with name 'scrivania' 'scrittoio' 'calamaio' 'penna', description [; print "Un prezioso scrittoio in mogano intagliato. Su di esso vedi una penna"; if (letteradippin in parent(self)) ", un calamaio e un foglio di pergamena, probabilmente una lettera."; " e un calamaio."; ], before [; Open, Search: "Lo scrittoio non ha cassetti."; ], has scenery; Object -> letteradippin "lettera" with pname 'lettera' '.or' 'missiva' '.or' 'foglio' '.or' 'pagina' '.x' 'di' '.x' 'pergamena', description [; if (dippin in location || cerdil in location) { addhint(h_dippin); if (player has invisible) "Il foglio di pergamena @`e arrotolato. Anche se sei invisibile, aprirlo rivelerebbe la tua presenza."; "Non oseresti mai sbirciare quella lettera sotto occhi vigili."; } give dippin proper; give m_parnias ~locked; solved(h_dippin); Achieved(7); give m_figli ~locked; "Pare una lettera indirizzata al conte Parnias, signore del feudo confinante.^ @<>^"; ], before [; Take: "Meglio lasciarla dov'@`e..."; ], has scenery female concealed; NPC -> dippin with short_name [; if (self has proper) print "Dippin"; else print "sacerdote"; rtrue; ], name 'dippin' 'sacerdote' 'prete', article "il", description [; if (self has proper) print "Dippin "; else print "Il sacerdote "; "@`e un uomo ancora non anziano, di corporatura robusta e aspetto florido che tradiscono una particolare predilezione per la buona tavola. Indossa una veste talare finemente ricamata e, al collo, una piccola falce d'oro."; ], called 0, conversor dippintalk, life [; if (player has invisible) { give player ~invisible; print "Il sacerdote sobbalza alla tua apparizione.^"; } Answer: "Dall'espressione del sacerdate comprendi che non ti ha compreso."; Show, Give: if (noun == mandato) "Il sacerdote legge la tua lettera d'incarico e poi soggiunge: @<>."; if (noun == soldi && cerdil.vanished) "La ringrazio, ma non credo che un'offerta possa risolvere il problema."; if (noun == soldi) "Se vuol lasciare un'offerta la lasci pure al mio accolito."; if (noun == diariotriven) "Il sacerdote scorre il vecchio diario e poi commenta, rendendotelo: @<>."; if (noun == dlibro) "Non pensi sia una buona idea. Farebbe strane domande sul come te lo sei procurato."; "Non credi che mostrare ", (the)noun, " ", (arta)self, " possa portarti vantaggi."; Greet: self.talkto(true); if (dippintalk.before(true)) rtrue; if (self has proper) print "@<>^"; else print "@<>^"; "@<>"; Kiss: "Meglio di no..."; ThrowAt, Attack: "Non ti ha fatto niente di male."; !default: "Il sacerdote sorride con sguardo condiscendente."; ], lifedefault "Il sacerdote sorride con sguardo condiscendente.", daemon [; !print "Dippin [ ", self.called, " ]^"; if (self.called==2 && real_location == Tempio) { self.called=3; rtrue; } if (self.called==3) { if (real_location == AppartamentoTempio) { self.called==2; rtrue; } if (self in AppartamentoTempio && random(3) == 1) { npcmove(self, s_obj, Tempio, " esce dal suo appartamento.", " esce di passo svelto dai suoi appartamenti.", 2); rtrue; } if (self in Tempio) { npcmove(self, se_obj, PiazzaVillaggio, " attraversa il tempio rivolgendo un cenno di saluto a te e al giovane accolito per poi uscire nella piazza del villaggio.", " esce dal tempio.", 2); rtrue; } if (self in PiazzaVillaggio) { npcmove(self, n_obj, DavantiEmporio, " prende la strada che conduce verso nord.", " arriva dalla piazza del villaggio.", 2); rtrue; } if (self in DavantiEmporio) { npcmove(self, n_obj, SentieroPalazzo, " passa oltre l'emporio, dirigendosi verso nord.", " arriva da sud, dal sentiero che proviene dal villaggio.", 2); rtrue; } if (self in SentieroPalazzo) { npcmove(self, e_obj, DavantiPalazzo, " prende la strada che conduce verso est, verso il palazzo.", " arriva da sud.", 2); rtrue; } if (self in DavantiPalazzo) { npcmove(self, e_obj, Ingresso, " entra all'interno del palazzo del barone rivolgendo un veloce cenno di saluto alle guardie.", 0, 2); rtrue; } if (self in Ingresso) { npcmove(self, e_obj, Scalinata, " attraversa l'ingresso e l'arco verso est.", " arriva dall'ingresso.", 2); rtrue; } if (self in Scalinata) { npcmove(self, u_obj, Pianerottolo, " prende con un po' d'affanno le scale che conducono al piano di sopra.", " arriva dal piano inferiore.", 2); rtrue; } if (self in Pianerottolo) { npcmove(self, s_obj, AnticameraBarone, " pare avere un attimo di esitazione prima di dirigersi verso l'anticamera degli appartamenti del barone.", " arriva da nord.", 2); self.called=4; rtrue; } } if (self.called == 4) { self.called = 5; if (self in real_location) "^Naradas si volge verso Dippin dicendo: @<>"; rtrue; } if (self.called == 5) { self.called = 6; if (self in real_location) "^Dippin risponde: @<>."; rtrue; } if (self.called == 6) { self.called = 7; if (self in real_location) "^@<> continua Naradas, @<>"; rtrue; } if (self.called == 7) { self.called = 8; if (self in real_location) "^@<> Il tono della voce di Dippin @`e molto meno sicuro delle sue parole."; rtrue; } if (self.called == 8) { self.called = 9; if (self in real_location) "^@<<@`E tutto@>> conclude Naradas, @<>"; rtrue; } if (self.called == 9) { if (self in AnticameraBarone) { npcmove(self, n_obj, Pianerottolo, " esce infuriato dalla stanza, dirigendosi verso le scale.", " esce infuriato dall'anticamera degli appartamenti del barone.", 2); rtrue; } if (self in Pianerottolo) { npcmove(self, d_obj, Scalinata, " scende le scale verso il piano inferiore.", " arriva dal piano superiore, irato in volto.", 2); rtrue; } if (self in Scalinata) { npcmove(self, w_obj, Ingresso, " si dirige verso l'ingresso del palazzo.", " arriva da est.", 2); rtrue; } if (self in Ingresso) { npcmove(self, w_obj, DavantiPalazzo, " esce dal palazzo mugugnando qualcosa tra i denti.", " esce dal portone del palazzo a testa bassa.", 2); rtrue; } if (self in DavantiPalazzo) { npcmove(self, w_obj, SentieroPalazzo, " si allontanta dal palazzo verso ovest.", " arriva dal palazzo, cercando malamente di nascondere un'espressione di rabbia sul volto.", 2); rtrue; } if (self in SentieroPalazzo) { npcmove(self, s_obj, DavantiEmporio, " si dirige a sud, verso il villaggio.", " arriva da nord.", 2); rtrue; } if (self in DavantiEmporio) { npcmove(self, s_obj, PiazzaVillaggio, " continua a camminare verso la piazza del villaggio.", " arriva dalla strada che proviene da nord.", 2); rtrue; } if (self in PiazzaVillaggio) { npcmove(self, nw_obj, Tempio, " sale gli scalini di marmo con un'espressione esasperata sul volto, per poi entrare all'interno del Tempio", " entra nel tempio con un'espressione esasperata sul volto.", 2); rtrue; } if (self in Tempio) { npcmove(self, n_obj, AppartamentoTempio, " si dirige sbuffando verso i suoi appartamenti.", " entra di colpo nei suoi appartamenti brontolando qualche offesa molto poco religiosa nei confronti del barone e di Naradas.", 2); self.called=10; StopDaemon(self); rtrue; } } ! self.called=3; ! move self to AnticameraBarone; ! "Il sacerdote esce di passo svelto dai suoi appartamenti e attraversa il tempio rivolgendo un veloce cenno di saluto a te e al suo giovane accolito, per poi uscire nella piazza del villaggio e dirigersi, ti pare, verso nord."; ! } ! if (self.called==3 && real_location==AnticameraBarone && Dippin in AnticameraBarone) { ! move self to Tempio; ! "Entrando incroci il sacerdote del tempio che sta lasciando la stanza dicendo @<>"; ! } ], has; Object dippintalk with before [flag; if (dippin.called >= 4 && dippin.called <=8) "Meglio non interrompere la discussione."; if (self hasnt general) { give self general; if (dippin hasnt proper) print "@<>^"; else print "@<>^"; if (real_location==AppartamentoTempio) print "@<> risponde voltandosi verso di te, @<>^"; else print "@<>^"; pretalked = 1; return flag; } if (flag && easy) { if (t_dippin_culti.cnumber <= 1) { t_dippin_culti.act(); rtrue; } if (t_dippin_barone.cnumber == 0) { t_dippin_barone.act(); rtrue; } if (t_dippin_naradas.cnumber == 0 && dippin.called == 1) { t_dippin_naradas.act(); rtrue; } if (t_dippin_donna.cnumber == 0 && m_donna hasnt locked) { t_dippin_donna.act(); rtrue; } if (t_dippin_vade.cnumber <= 0 && m_vade hasnt locked) { t_dippin_vade.act(); rtrue; } } ], description "@<>^ @<> @`e la risposta, @<>" "Non ti sovviene altro da chiedere.", cant_go [; if (pretalked) print "^"; "Il sacerdote ascolta le tue parole, si sofferma un attimo a pensare e poi risponde: @<>"; ]; Topic -> with name 'lui' 'se' 'stesso' 'egli' 'padre', metatopic m_dippin, before [; if (dippin hasnt proper) { give dippin proper; "@<>^ @<>"; } ], description "@<>^ @<<@`E stata una mia scelta. Ho sentito il bisogno di vita tranquilla.@>> Dal tono della sua voce non sembra convinto; probabilmente questo incarico @`e solo il migliore a cui poteva aspirare." "@<>^ @<>" "Pensi di non dover chiedere altro sull'argomento."; Topic -> t_dippin_barone with metatopic m_barone, description "@<>^ @<> sospira, @<>" "@<>^ @<>" "Pare chiaro che il sacerdote non stimi il barone, al punto di osteggiarlo apertamente anche di fronte a te e ai fedeli."; Topic -> with name 'biblioteca' 'libri' 'libro' 'libreria', description [; give m_biblioteca ~locked; "@<>^ @<>"; ] "@<>^ @<>"; Topic -> t_dippin_culti with metatopic m_culti, before [; if (knowcult) !era: if (action==##Tell && knowcult) "Questo sacerdote ti ispira pochissima fiducia. Meglio lasciarlo all'oscuro."; ], description "@<>^ @<>" "@<>^ @<>" "@<>^ @<>" "@<>^ @<>" "Il sacerdote sembra ben sicuro nel denunciare culti eretici che operano nella foresta, anche se diventa restio quando si parla di prove e insiste un po' troppo nel sottolineare la responsabilit@`a del barone. Sospetto, ma non di meno @`e tua responsabilit@`a indagare fino in fondo su quello che sostiene."; Topic -> t_dippin_figli with metatopic m_figli, description "@<>^ Per un attimo cogli un lampo di esultanza negli occhi del sacerdote, prima che questi ti risponda: @<>" "@<>^ @<>" "@<>^ @<> risponde il sacerdote, con un tono di voce che in qualche modo ti disturba, @<>^" "Il sacerdote ti ha riferito di vaghe testimonianze secondo cui i ~Figli della Valle~ sarebbero fedeli di un culto proibito, i cui riti si svolgono nella foresta. Secondo il suo parere, che ha espresso con gioia e abbondanza di aggettivi, il culto @`e corrotto, malvagio e prospera sotto l'occhio accondiscendente del barone."; Topic -> t_dippin_donna with metatopic m_donna, description [; give cerdil proper; "@<>^ @<>"; ] "@<>^ @<>" "Il sacerdote non crede alla storia di Cerdil. Inutile chiedere altro."; Topic -> t_dippin_naradas with metatopic m_naradas, before [; if (dippin.called==1) { !era: if (self.called==1 && action==##Tell) { dippin.called=2; StartDaemon(dippin); "@<>^ @<>"; } if (dippin.called==2 or 3 && self hasnt general) { !era: if (self.called==2 && action==##Tell) { give self general; "@<>^ @<>"; } ], description "@<>^ @<>" "@<>?^ @<>" "Ti ha detto che Naradas @`e l'uomo che si occupa del governo della valle e ne ha approfittato per parlar male del barone. Non pensi sappia dirti di pi@`u."; Topic -> with name 'tempio' 'edificio' 'costruzione', description "@<>^ @<>" "@<>^ @<>" "Non credi di dover chiedere altro. Evidentemente il sacerdote @`e estremamente soddisfatto dello sfarzo che lo circonda."; Topic -> with name 'dea' 'maral', description "@<>^ @<>" "@<> @<<@`E sempre stato cos@`i@>> il sacerdote sembra pensare alla sua risposta per un attimo: @<>." "@<>^ Non hai da chiedere altro."; Topic -> with name 'dei' 'dio' 'oster' 'aran' 'irdil' 'statue' 'statua', description "@<>^ @<>" "@<>^ @<>" "Non hai altro da chiedere sull'argomento."; Topic -> with metatopic m_cerdil, before [; give cerdil proper; if (cerdil.vanished) { if (self hasnt general) { give self general; "@<>^ @<>"; } "@<>^ @<>"; } ], description "@<> @<>" "@<>^ @<>" "Non credi possa dirti altro su Cerdil."; Topic -> t_dippin_vade with metatopic m_vade, description "@<>^ @<>" "@<>^ @<>" "@<>^ @<>" "Il sacerdote dubita dell'alchimista e ritiene l'alchimia una scienza che confina con l'eresia. A te sembra confuso quanto un accolito, e rimarrebbe molto stupito vedendo i laboratori alchemici del grande tempio di Irdil. Probabilmente vive da troppo tempo lontano dalla civilt@`a."; Topic -> with metatopic m_bano, description [; give bano proper; "@<>^ @<>"; ] "Non ti viene altro da chiedergli."; Topic -> with metatopic m_bris, description [; give bano proper; give bris proper; "@<>^ @<>"; ] "Non credi di aver altro da chiedere."; IRoom Osteria "L'osteria" with description "Quattro gradini scendono fino al pavimento dell'osteria. L'ambiente @`e abbastanza buio e l'odore di mosto e luppolo fermentati corre alle narici. Un lungo bancone di legno si para di fronte all'entrata, mentre rozzi tavoli pi@`u o meno lunghi, sedie e panche riempiono il resto dell'ampio locale.", name 'osteria' 'locanda' 'taverna', ne_to PiazzaVillaggio, out_to PiazzaVillaggio, cant_go "L'uscita @`e a nord-est.", before [; Go: if ((noun == ne_obj or out_obj) && (birra in player || vino in player || liquore in player) && (bano in osteria)) "L'oste ti ferma dicendo: @<>."; Smell: "A giudicare dall'odore il vino e la birra serviti in questo luogo non sono affatto male."; ], has light female; Object -> "bancone" with name 'bancone' 'banco', description "Un bancone in faggio rozzamente intagliato.", before [; Push, Pull, Turn: "@`E troppo pesante."; Search, LookUnder: "Il bancone non nasconde niente."; ], has supporter scenery; Prop -> "tavoli" with name 'tavoli' 'tavolo' 'sedia' 'sedie' 'panca' 'panche', description "I tavoli, le sedie e le panche che costituiscono l'arredamento del locale non saranno il massimo del lusso, ma adempiono pienamente alla propria funzione.", before [; Push, Pull, Turn: "Inutile. Non troveresti niente."; Search, LookUnder: "Non trovi niente."; ], has pluralname; !Object -> bevande "bevande" ! with name "birra" "vino" "da bere" "bevanda" "alcool" "alcol" "bevande" "liquore", ! description "Dietro il bancone fanno mostra di se due barilotti di birra, diversi otri di vino e una bottiglia di liquore.", ! before [; ! Buy: "Dovresti essere pi@`u specifico. Vino, birra o liquore?"; ! ], ! has scenery; [ testbevanda ostefirst; if (soldi notin player) "Non credi che l'oste faccia credito agli stranieri..."; if (birra hasnt scenery || vino hasnt scenery || liquore hasnt scenery) "Forse sarebbe meglio bere quello che gi@`a hai, prima di ordinare di nuovo."; if (bris notin real_location && bano notin real_location) "Strano. Non c'@`e nessuno a cui ordinare da bere."; if (bris notin real_location || ostefirst) print "Ti avvicini al bancone e l'oste ti serve "; else print "La cameriera ti serve subito "; rfalse; ]; Object -> bevande "bevande" with name 'bevanda' 'bevande' 'da' 'bere' 'barile' 'barilotto' 'barili' 'barilotti' 'otre' 'otri' 'bottiglia', description [; if (self in player) "Un boccale di legno traboccante di birra scura."; "Dietro il bancone fanno mostra di se due barilotti di birra, diversi otri di vino e una bottiglia di liquore."; ], before [; Buy, Take: "L'osteria offre birra, vino, oppure un liquore che pare ottimo."; ], has scenery female pluralname concealed; ! Le bevande cambiano aspetto a seconda che abbiano o meno l'attributo scenery Object -> birra "boccale di birra" with name 'boccale' 'di' 'della' 'birra', description [; if (self in player) "Un boccale di legno traboccante di birra scura."; "Dietro il bancone fanno mostra di se due barilotti di birra, diversi otri di vino e una bottiglia di liquore."; ], before [; Buy, Take: if (action==##Take && self hasnt scenery) rfalse; if (testbevanda(0)) rtrue; move self to player; give self ~scenery; print (a) self,".^"; if (action_to_be == ##Take or ##Buy) rtrue; Drink: if (self has scenery) "Forse sarebbe meglio prima ordinare..."; if (drunk_level >= 3) "Hai bevuto abbastanza. Meglio restare lucidi."; drunk_level++; move self to osteria; give self scenery; "Forte e dissetante..."; Empty, EmptyT: "Non servirebbe a nulla. Sarebbe solo uno spreco."; ], has scenery; Object -> vino "bicchiere di vino" with name 'bicchiere' 'di' 'vino', description [; if (self in player) "Un bicchiere pieno di uno scuro vino dal colore leggermente ambrato."; "Dietro il bancone fanno mostra di se due barilotti di birra, diversi otri di vino e una bottiglia di liquore."; ], before [; Buy, Take: if (action==##Take && self hasnt scenery) rfalse; if (testbevanda(0)) rtrue; move self to player; give self ~scenery; print (a) self,".^"; if (action_to_be == ##Take or ##Buy) rtrue; Drink: if (self has scenery) "Forse sarebbe meglio prima ordinare..."; if (drunk_level >= 3) "Hai bevuto abbastanza. Meglio restare lucidi."; drunk_level++; move self to osteria; give self scenery; "Veramente ottimo..."; Empty, EmptyT: "Non servirebbe a nulla. Sarebbe solo uno spreco."; ], has scenery; Object -> liquore "bicchiere di liquore" with name 'bicchiere' 'di' 'liquore', description [; if (self in player) "Un piccolo bicchiere pieno di un liquore quasi trasparente."; "Dietro il bancone fanno mostra di se due barilotti di birra, diversi otri di vino e una bottiglia di liquore."; ], before [; Buy, Take: if (action==##Take && self hasnt scenery) rfalse; if (testbevanda(0)) rtrue; move self to player; give self ~scenery; print (a) self,".^"; if (action_to_be == ##Take or ##Buy) rtrue; Drink: if (self has scenery) "Forse sarebbe meglio prima ordinare..."; if (drunk_level >= 3) "Hai bevuto abbastanza. Meglio restare lucidi."; drunk_level++; move self to osteria; give self scenery; "Forte e secco... L'ideale per queste giornate fredde..."; Empty, EmptyT: "Non servirebbe a nulla. Sarebbe solo uno spreco."; ], has scenery; NPC bano "l'oste" osteria with name 'bano' 'oste' 'locandiere', !article "l'", description "L'oste @`e esattamente come si potrebbe immaginare il proprietario di un'osteria in un feudo sperduto. Alto, robusto, muscoloso e con stampata sul volto un'espressione che @`e a met@`a strada fra l'ira e la giovialit@`a.", conversor banotalk, life [; if (player has invisible) { give player ~invisible; print "L'oste ti squadra sospettoso quando si accorge all'@`improvviso della tua presenza.^"; } Answer: "L'oste ti guarda attonito. Non credi proprio abbbia capito."; Kiss: "Meglio di no..."; Show, Give: if (noun == mandato) "Se l'oste sapesse che sei una spia, probabilmente ti farebbe a pezzi."; if (noun == soldi) "L'oste osserva i tuoi soldi e dice: @<>."; "Non credi che all'oste possa interessare ", (arta)self, "."; ThrowAt, Attack: "Non ci pensi nemmeno. Ti farebbe a pezzi."; !default: "L'oste ti sorride con fare burbero."; ], lifedefault "L'oste ti sorride con fare burbero.", Orders [; Give: if (noun == bevande) "@<>"; if (noun == birra or vino or liquore) { if (testbevanda(1)) rtrue; move noun to player; give noun ~scenery; print_ret (a) noun,"."; } ], rs 0, each_turn [; if (silenceturns > 2 && random(2) == 1) { switch(++self.rs) { 2: print_ret "^L'oste sgombera il bancone e prova a pulirlo con uno straccio, senza grandi risultati."; 5: print_ret "^L'oste controlla le botti e le bottiglie alle sue spalle."; 8: print_ret "^L'oste si sposta da una parte all'altra del bancone."; 10: self.rs = 0; } } ], has proper; Object banotalk with before [flag; if (flag && easy && bano.cnumber >= 1) { if (t_bano_culti.cnumber <= 1) { t_bano_culti.act(); rtrue; } if (t_bano_uomo.cnumber == 1) { t_bano_uomo.act(); rtrue; } } ], description "@<>^ @<>" "@<>^ @<>" "Non ti sovviene altro altro da chiedere all'oste.", cant_go "@<> @`e la secca risposta dell'oste alle tue parole."; Topic -> with name 'egli' 'lui' 'se' 'stesso', metatopic m_bano, description "@<>^ @<>" [; give bano proper; "@<>^ @<>"; ] "L'oste non sembra molto propenso a parlare di se stesso."; Topic -> with metatopic m_osteria, description "@<>^ @<> risponde lui con un sorriso di malcelato orgoglio, @<>" "@<>^ @<>" "Non hai altro da chiedere."; Topic -> with metatopic m_barone, description "@<>^ @<>" "@<>^ @<>" "Non credi possa dirti altro sul barone Inderus"; Topic -> t_bano_culti with metatopic m_culti, description "@<>^ @<>" "@<>^ @<>" "@<>^ @<>" "L'oste ha riferito di storie di luci spettrali, strani animali e segni di riunioni clandestine, ma nemmeno lui ci crede molto."; Topic -> with metatopic m_dippin, name 'tempio' 'templi', description "@<>^ @<>" "@<>^ @<<@`E un buon cliente; non frequenta l'osteria ma apprezza particolarmente il mio vino e se na fa recapitare spesso una botticella o due. Non saprei come giudicare il suo operato come sacerdote, ma un buon bevitore @`e una buona persona.@>>" "Al sacerdote piace il buon vino, a quanto pare. Non credi che l'oste sappia altro."; Topic -> with metatopic m_cerdil, description "@<>^ @<>" "@<>^ @<>" "Non credi che l'oste sappia molto, e tutto sommato non sei molto interessato al suo parere."; Topic -> with metatopic m_vade, description "@<>^ @<>" "@<>^ @<<@`E una delle persone pi@`u sagge e disponibili dell'intero villaggio. In molti si rivolgono a lui se hanno bisogno di un consiglio.@>>" "Non hai altro da chiedere."; Topic -> with metatopic m_iarin, description [; if (iarin in real_location) "@<>^ @<>"; "@<>^ @<>"; ] "Non hai altro da chiedere."; Topic -> with metatopic m_erlik, name 'emporio', description [; give erlik proper; "@<>^ @<>"; ] "@<>^ @<>" "Non pensi di dover chiedere altro, e non credi che il sospetto che Erlik sia un truffatore sia di qualche rilevanza per il tuo incarico."; Topic -> t_bano_olfer with metatopic m_olfer, name 'forgia', description [; give olfer proper; print "@<>^"; if (olfer in osteria) "@<>"; "@<>"; ] "@<>^ @<<@`E un brav'uomo e un bravo fabbro, anche se beve un po' troppo. @`E anche abbastanza scorbutico, quando @`e sobrio.@>>" "Non hai altro da chiedere."; Topic -> with name 'birra' 'vino' 'liquore' 'liquori' 'bevande', description "@<>^ @<>" "Chiedere all'oste come @`e il suo vino generalmente @`e una perdita di tempo."; Topic -> t_bano_uomo with name 'uomo' 'avventore', description [; if (olfer in osteria) { give olfer proper; give m_olfer ~locked; "@<>^ @<>"; } ] [; t_bano_olfer.act(); ]; Topic -> with metatopic m_bris, name 'ragazza', description "@<>^ @<>" "Considerando il tono e la stazza dell'oste @`e meglio non insistere sull'argomento."; Topic -> with metatopic m_rabam, description [; give rabam proper; "@<>^ @<>"; ] "@<>^ @<<@`E sempre stato un brav'uomo e un gran lavoratore. Per il resto non c'@`e molto da dire su di lui, se non che i giardini a palazzo hanno tutto un altro aspetto da quando ci lavora lui.@>>" "Non hai altro da chiedere."; Topic -> with metatopic m_dei, description "@<>^ @<>" "Non sei cos@`i tanto interessato alla fede dell'oste."; NPC bris "" osteria with short_name [; if (self has proper) print "Bris"; else print "cameriera"; rtrue; ], with name 'bris' 'cameriera' 'ragazza', description "Per un attimo ti perdi ad osservare la bellezza non comune di questa giovane ragazza dagli occhi quasi viola e lunghi capelli neri che scendono su di un corpo perfetto, ben evidenziato dall'abito che indossa. Ti chiedi se la tua missione potrebbe permetterti qualche distrazione.", count 0, vanished FALSE, greet FALSE, conversor bristalk, life [; if (player has invisible) { give player ~invisible; print "La ragazza trattiene un'urlo, vedendoti all'improvviso.^"; } Answer: "Non ti pare che la ragazza ti abbia compreso."; Kiss: if (bano in real_location) "Con l'oste presente? Ci tieni troppo, alla tua vita."; "Ti avvicini alla ragazza e le dai un bacio. Lei ti sorride maliziosa."; Show, Give: if (noun == mandato) "Non credi che sia una buona idea mostrarle la tua lettera d'incarico."; if (noun == soldi) "@<> risponde lei osservando la tua borsa, @<>"; "Non pensi che ", (arta)self, " possa interessare ", (the)noun, "."; ThrowAt, Attack: "Non potresti mai far del male ad una ragazza tanto bella."; Greet: if (self hasnt proper) if (bristalk.before(true)) rtrue; self.talkto(true); "@<>^ @<>"; !default: "La ragazza ti sorride."; ], lifedefault "La ragazza ti sorride.", Orders [; Give: if (noun == bevande) "@< 1 && random(2) == 1) { switch(++self.rs) { 3: print_ret (The) self, " riordina le sedie attorno ad un tavolo."; 6: print_ret (The) self, " si sofferma per un attimo a sistemarsi i capelli."; 9: print_ret (The) self, " raccoglie i bicchieri lasciati su di un tavolo e li porta fino al bancone."; 11: self.rs = 0; } } ], has female; Object bristalk with before [flag; if (bris hasnt proper) { give bris proper; print "@<>^ @<>^"; pretalked = 1; return flag; } if (flag && easy && bris.cnumber >= 1) { if (t_bris_culti.cnumber == 0) { t_bris_culti.act(); rtrue; } if (t_bris_triven.cnumber == 0 && m_triven hasnt locked) { t_bris_triven.act(); rtrue; } if (t_bris_uomo.cnumber == 0) { t_bris_uomo.act(); rtrue; } if (t_bris_olfer.cnumber <= 1) { t_bris_olfer.act(); rtrue; } } ], description "@<>^ @<>" "@<<@`E una gradita sorpresa incontrare tanta grazia e dolcezza in questa valle.@>>^ @<> risponde lei, anche se la sua espressione dice tutt'altro." "@<>^ @<>" "Preferisci tenere altre galanterie in serbo per dopo.", cant_go [; if (pretalked) print "^"; "La ragazza ascolta la tua domanda, per poi scuotere graziosamente la testa e rispondere: @<>"; ]; Topic -> with metatopic m_bris, name 'lei' 'se' 'stessa' 'ella', before [; if (bris hasnt proper) { give bris proper; "@<>^ @<>"; } ], description "@<>^ @<>" "@<>^ @<>" "Non hai altro da chiedere o da dire, per ora."; Topic -> with metatopic m_barone, description "@<>^ @<>" "@<>^ @<>" "Non pensi sappia molto a proposito del barone."; Topic -> t_bris_culti, with metatopic m_culti, description "@<>^ @<>" "@<>^ @<>" "Non credi sappia molto, anche se la locanda sembra il punto giusto dove raccogliere informazioni."; Topic -> with metatopic m_donna, description [; give cerdil proper; "@<>^ @<>"; ] "Non credi che sappia niente di pi@`u oltre a quello che le ha detto l'accolito."; Topic -> with metatopic m_dippin, description [; give dippin proper; "@<>^ @<>"; ] "@<>^ @<>" "Secondo la cameriera Dippin @`e un sacerdote comprensivo. Ti chiedi se questo dipenda dall'avvenenza della ragazza o dal vino fornito dall'oste."; Topic -> with metatopic m_cerdil, description "@<>^ @<> risponde lei, @<>" [; give cerdil proper; "@<>^ @<>"; ] "Non hai altro da chiedere."; Topic -> with metatopic m_vade, description "@<>^ @<>" "@<>^ @<>"; Topic -> with metatopic m_iarin, before [; if (iarin in real_location) "@<>^ @<>"; ], description "@<>^ @<>" "Non credi sappia dirti altro."; Topic -> t_bris_triven with metatopic m_triven, description [; give m_olfer ~locked; "@<>^ @<>"; ] "Non pare ne sappia niente, ma ti ha suggerito di parlare con Olfer."; Topic -> t_bris_olfer with metatopic m_olfer, name 'forgia', description [; give olfer proper; if (wtopicword == 'olfer' or 'uomo' or 'avventore') print "@<>^ @<>^ @<>"; ". Era qui fino a poco fa.@>>"; ] "@<>^ @<<@`E molto scorbutico, specialmente con chi non ha in simpatia. Ma ama molto birra, vino e storie da osteria.@>>" "A sentir lei, Olfer @`e la persona giusta a cui chiedere informazioni."; Topic -> t_bris_uomo, with name 'uomo' 'avventore', description [; if (olfer in osteria) { give m_olfer ~locked; give olfer proper; "@<>^ @<>"; } ] [; t_bris_olfer.act(); ]; Topic -> with metatopic m_bano, name 'padre' 'babbo' 'papa' 'pap@`a' 'papa^', description "@<>^ @<>" "@<>^ @<>" "L'oste, il padre della cameriera, @`e molto geloso. Meglio essere prudenti nel fare complimenti alla ragazza."; Topic -> with metatopic m_dei, description "@<>^ @<>" "Non credi di avere altro da chiedere riguardo alla fede della ragazza."; NPC olfer "" osteria with short_name [; if (self has proper) print "Olfer"; else if (real_location == Osteria) print "avventore"; else print "fabbro"; rtrue; ], name 'olfer' 'fabbro' 'avventore' 'uomo', description [; if (real_location == Osteria) "Un uomo robusto, calvo e non troppo alto, siede da solo ad un tavolo in disparte."; if (real_location == Forgia) "Il fabbro @`e un uomo robusto, calvo e non troppo alto. In questo momento sta battendo sull'incudine dei ferri da cavallo. Sembra comunque leggermente alticcio."; "Il fabbro @`e un uomo robusto, calvo e non troppo alto."; ], drunk 0, walk 0, conversor olfertalk, life [; if (player has invisible) { give player ~invisible; print "L'uomo trasale quando si accorge della tua presenza.^"; } Answer: "L'uomo ti guarda in tralice..."; Give: if ((noun == birra or vino or liquore) && noun hasnt scenery) { self.drunk++; move noun to osteria; give noun scenery; switch (self.drunk) { 1: Achieved(6); solved(h_olfer); self.talkto(true); print_ret "L'uomo sembra gradire la tua offerta. Infatti esclama: @<> prima di scolarsi ", (the) noun, "."; 2: print_ret "@<> dice prima di bere ", (the) noun, " tutto d'un fiato."; 3: give m_olfer ~locked; StartDaemon(self); self.walk = 1; print_ret "L'uomo acccetta con piacere la tua offerta dicendo: @<> prima di bere ", (the) noun, "."; default: "@<>"; } } if (noun == mandato) "Meglio di no. Non sai chi sia veramente quest'uomo."; if (noun == mazzuolo) "Potrebbe servirti. Glielo renderai poi..."; "Non credi che sia interessato ", (arta) noun, "."; Show: if ((noun == birra or vino or liquore) && noun hasnt scenery) "L'uomo pare interessato alla tua offerta..."; if (noun == mandato) "Meglio di no. Non sai chi sia veramente quest'uomo."; if (noun == mazzuolo) "Mostrargli qualcosa che gli hai rubato? Meglio non farlo."; "Non credi che sia interessato ", (arta) noun, "."; Kiss: "Lascia perdere..."; ThrowAt, Attack: "Ti ha fatto qualcosa?"; !default: "L'uomo sbuffa e ti guarda storto..."; ], lifedefault "L'uomo sbuffa e ti guarda storto...", daemon [; if (self.walk == 1) { self.walk = 2; rtrue; } if (self.walk == 2) { if (self in Osteria) { npcmove(self, ne_obj, PiazzaVillaggio, " si alza in piedi, fa un cenno di saluto nella tua direzione e in quella dell'oste, e poi esce dalla locanda barcollando.", " esce dalla locanda barcollando.", 2); rtrue; } if (self in PiazzaVillaggio) { npcmove(self, s_obj, DavantiForgia, " si dirige con andatura malferma per la strada che conduce verso sud.", " arriva dalla piazza del villaggio, evidentemente alticcio.", 2); rtrue; } if (self in DavantiForgia) { solved(h_forgia); npcmove(self, w_obj, Forgia, " estrae una chiave da una tasca e, dopo un paio di tentativi, apre la porta della forgia ed entra.", " entra dalla porta.", 2); self.walk == 3; StopDaemon(self); rtrue; } } ], has; Object olfertalk with before [flag; if (~~olfer.drunk) { addhint(h_olfer); "Provi a rivolgere la parola all'uomo, ma lui ti risponde solo con uno sguardo che ti fa comprendere quanto poco egli desideri la tua compagnia."; } if (olfer hasnt proper && flag) { give olfer proper; give m_olfer ~locked; print "@<>^"; if (self in Osteria) print "@<>^"; print "@<>^"; pretalked = 1; return flag; } if (flag && easy && olfer.cnumber >= 1) { if (t_olfer_culti.cnumber == 0) { t_olfer_culti.act(); rtrue; } if (t_olfer_triven.cnumber == 0 && m_triven hasnt locked) { t_olfer_triven.act(); rtrue; } if (t_olfer_donna.cnumber == 0 && m_donna hasnt locked) { t_olfer_donna.act(); rtrue; } if (t_olfer_pietra.cnumber == 0 && m_pietra hasnt locked) { t_olfer_pietra.act(); rtrue; } } ], description [; if (self in Osteria) "@<>^ @<>"; "@<>^ @<>"; ], cant_go [; if (pretalked) print "^"; "Alla tua domanda l'uomo risponde soltanto: @<>"; ]; Topic -> with metatopic m_olfer, name 'avventore' 'lui' 'se' 'stesso' 'egli', before [; if (olfer hasnt proper) { give olfer proper; "@<>^ @<>"; } ], description "@<>^ @<>" "@<>^ @<> risponde lui, @<>" "Non ti viene altro da dire."; Topic -> with metatopic m_barone, description "@<>^ @<>" "@<>^ @<<@`E un buon bicchiere, e questo @`e un punto a sua favore, e per fortuna si disinteressa del governo della valle, invece di mandarci in rovina.@>>" "Non pensi possa dirti molto, oltre al fatto che ritiene il barone un inetto e un gaudente che non si occupa affatto del suo feudo."; Topic -> t_olfer_culti with metatopic m_culti, name 'radura' 'quercia' 'foresta' 'alberi' 'bosco' 'albero', description "@<>^ @<>" "@<>^ @<>" "Non credi possa dirti altro, ma ti ha gia' detto abbastanza: persone che si radunano in segreto in una radura dominata dalla quercia, nella parte est della foresta. Tutto questo merita attenzione."; Topic -> t_olfer_donna with metatopic m_donna, name 'pugnale' 'coltello', description "@<>^ @<>" "@<>^ @<>" "La donna gli ha portato uno strano pugnale ad affilare. Per il resto non credi sappia altro."; Topic -> t_olfer_pietra with metatopic m_pietra, description "@<>^ @<>" "Non credi che sia maledetta come sostiene lui, ma probabilmente @`e nascosta nella foresta pi@`u fitta, ed @`e quasi impossibile trovarla.@>>"; Topic -> t_olfer_triven with metatopic m_triven, name 'capanna' 'casupola' 'baracca', description "@<>^ @<>" "@<>^ @<<@`E una storia che viene raccontata di tanto in tanto, ogni tanto con nuovi dettagli: ad esempio ogni tanto qualcuno sostiene di aver trovato la sua baracca, sul lato sud del fiume.@>>" "Ti ha detto abbastanza: questo studioso viveva in una baracca sul lato sud del fiume e fu assassinato nel sonno."; Topic -> with metatopic m_dippin, description "@<>^ @<>" "@<>^ @<>" "Non hai altro da chiedere."; Topic -> with metatopic m_bris, name 'ragazza', description "@<>^ @<>" "Non pensi di dover chiedere di pi@`u."; Topic -> with metatopic m_bano, description "@<>^ @<> risponde lui ridendo, @<>" "@<>^ @<<@`E un uomo gioviale, anche se un po' rude. Ed @`e l'unico in questa valle che offra un po' di ristoro ad una gola riarsa.@>>" "Non hai altro da chiedere sull'oste."; Topic -> with name 'moglie' 'sposa', description "@<>^ @<>" "Non sei cos@`i interessato a sua moglie."; Topic -> with metatopic m_dei, description "@<>^ @<>" "La fede @`e una questione personale. Ogni domanda ulteriore potrebbe essere offensiva."; ORoom DavantiAlchimista "Il villaggio (a est della piazza)" with description "La strada che corre tra le case @`e molto larga, e le case stesse sembrano di fattura migliore rispetto al resto del villaggio. Guardando verso ovest si vede ancora la piazza principale, mentre verso est le costruzioni si fanno pi@`u rade, come se la strada portasse fuori dal villaggio. Verso nord si apre la porta di un negozio.", name 'strada' 'villaggio' 'borgo' 'har' 'plenais', w_to PiazzaVillaggio, e_to VersoForesta, n_to GoLaboratorio, in_to GoLaboratorio, cant_go "La strada si stende da est a ovest, e il negozio @`e a nord.", initial [; LeftPicture(Village_img, -1, -1); ]; Prop -> "case" with name 'case' 'costruzioni' 'abitazioni' 'casa' 'costruzione' 'abitazione' 'edifici', description "Le case non sono molto dissimili dalle altre, ma qui la maggior parte delle costruzioni sono in pietra, e realizzate con una cura particolare.", cant_go "Sono solo le case degli abitanti del villaggio." has pluralname female; Direction -> "piazza" with name 'piazza' 'locanda' 'osteria' 'taverna' 'tempio', dir_to w_obj, has female; Direction -> "foresta" with name 'foresta' 'alberi' 'bosco' 'boschi', dir_to e_obj, has female; Direction -> "laboratoio" with name 'laboratoio' 'negozio' 'bottega' 'porta' 'edificio', dir_to n_obj, description [; give m_vade ~locked; "Una piccola targa d'ottone accanto alla porta reca incisa una boccetta di vetro. Questo negozio deve essere sicuramente il laboratorio di un alchimista."; ], before [; Open, Unlock, Knock: if (GoLaboratorio(true)>1) "La porta @`e aperta."; if (action==##Knock) "Nessuno viene ad aprire."; "La porta @`e chiusa a chiave."; ], has scenery concealed; [GoLaboratorio sil; if ((night || sunset || vade notin Laboratorio) && phase <6) if (~~sil) "La bottega @`e chiusa."; else rtrue; return(Laboratorio); ]; IRoom Laboratorio "La bottega dell'Alchimista" with description "Questo negozio @`e ben pulito e ordinato, quasi all'eccesso, anche se un odore acre pervade l'aria. Su di una scaffalatura trovano posto fiale e bottigliette, e dall'altra parte della stanza un bancone ospita una buona collezione di erbe e altro, tenute in barattoli ben chiusi. Una piccola porta si apre nella parete nord.", name 'negozio' 'bottega' 'laboratorio' 'stanza', s_to DavantiAlchimista, out_to Laboratorio, n_to PortaLaboratorio, cant_go "L'uscita @`e verso sud, e c'@`e una porta a nord.", before [; smell: "Odor d'ammoniaca e solfuro, mescolati ad altri che non riconosci."; ], each_turn [; give m_vade ~locked; if (vade in self) give vade general; ], has light; Prop -> "fiale" with name 'fiale' 'fiala' 'bottiglia' 'bottiglie' 'scaffali' 'scaffale' 'scaffalatura', description "Le fiale e le bottigliette contengono liquidi di un tenue color ambra, o di un verde carico, o perfettamente cristallini.", before [; Take: "Non sei ferrato in alchimia, e non sapresti come usarli."; Push, Pull, Turn, Search, LookUnder: "Dopo una rapida occhiata ti rendi conto che scaffali e bottigliette non nascondono niente."; ], !cant_go "@`E solo materiale da erboristi." has female pluralname; Prop -> "barattoli" with name 'erbe' 'barattolo' 'barattoli' 'bancone' 'banco', description "Erbe medicinali, probabilmente...", before [; Take: "Non hai la minima idea riguardo al loro uso. Inutile prenderli."; Push, Pull, Turn, Search, LookUnder: "N@'e il bancone n@'e i barattoli nascondono alcunch@'e."; ], !cant_go "@`E solo materiale da erboristi." has pluralname; MyDoor -> PortaLaboratorio "porta" with pname 'porta' '.x' 'verso' '.or' 'a//' '.x' 'nord' '.or' 'n//', description "Una piccola ma robusta porta in legno.", door_to DavantiAlchimista, ! can't happen door_dir n_to, has locked; NPC -> vade with short_name [; if (self in Laboratorio) give self general; if (self has proper) print "Vade"; else if (self has general) print "alchimista"; else print "uomo"; rtrue; ], name 'vade' 'alchimista' 'medico' 'cerusico' 'erborista' 'uomo', !article "l'", description [; if (self has proper) print "Vade @`e"; else if (self has general) print "L'alchimista @`e"; else print "E'"; print " un uomo di mezza et@`a, ma ancora ben prestante. Asciutto di corporatura, di lui ti colpiscono le mani, dalla pelle rovinata dal continuo contatto con le sostanzde con cui lavora, e lo sguardo, che ispira una immediata fiducia."; if (self in Radura) print " E' vestito con una semplice tunica da cerimonia verde scura e regge in mano un pesante bastone di quercia."; ""; ], greet FALSE, conversor vadetalk, life [; if (player has invisible) { give player ~invisible; print "L'uomo @`e sorpreso di vederti all'improvviso.^"; } if (self in Radura) rtrue; Answer: "Non credi che ti abbia capito."; Kiss: "Lasciamo perdere..."; Show, Give: if (noun == mandato) "Meglio restare nell'anonimato. Ti conviene."; if (noun == diariotriven) "L'uomo scorre velocemente il vecchio diario, soffermandosi incredulo a leggere alcuni passaggi. Poi soggiunge, rendendoti il volume, @<>"; if (noun == dlibro) "Non pensi che sia una buona idea. Probabilmente rivendicherebbe sul libro qualche diritto, pretendendolo per se."; print_ret (The)self, " osserva ", (the)noun, " ma non pare molto interessato."; ThrowAt, Attack: "Che ti ha fatto di male?"; !default: "L'uomo ti guarda e abbozza un mezzo sorriso."; ], lifedefault "L'uomo ti guarda e abbozza un mezzo sorriso.", rs 0, each_turn [; if ((~~self.greet) && player hasnt invisible && self in Laboratorio) { self.greet=TRUE; self.talkto(false); "^Come entri, l'uomo si rivolge a te dicendo: @<>"; } if (self in Laboratorio && silenceturns > 2 && random(2) == 1) { switch(++self.rs) { 3: print_ret (The) self, " si ferma per qualche attimo davanti allo scaffale, controllando che le fiale siano messe in ordine."; 6: print_ret "Ti sembra che per un attimo, solo per un attimo,", (the) self, " si soffermi a guardarti in volto, come se volesse capire dal tuo sguardo che tipo di persona tu sia in realt@`a."; 9: print_ret (The) self, " riordina distrattamente i barattoli sul bancone. Hai l'impressione che per@`o ti stia osservando, sorridendo tra s@'e e s@'e."; 11: self.rs = 0; } } ], has; Object vadetalk with before [flag; if (vade hasnt proper) { give vade proper; print "@<>^ @<>^"; pretalked = 1; return flag; } if (flag && easy && vade.cnumber >= 1) { if (t_vade_culti.cnumber <= 1) { t_vade_culti.act(); rtrue; } if (t_vade_triven.cnumber == 0 && m_triven hasnt locked) { t_vade_culti.act(); rtrue; } if (t_vade_pietra.cnumber == 0 && m_pietra hasnt locked) { t_vade_pietra.act(); rtrue; } if (t_vade_donna.cnumber == 0 && m_donna hasnt locked) { t_vade_donna.act(); rtrue; } } ], description "@<>^ @<>" "@<>^ @<>" "Non hai altro da chiedere.", cant_go [; if (pretalked) print "^"; "L'uomo ti ascolta con attenzione ma pu@`o solo rispondere: @<>"; ]; Topic -> with metatopic m_vade, name 'lui' 'se' 'stesso' 'egli', before [; if (vade hasnt proper) { give vade proper; "@<>^ @<>"; } ], description "@<>^ @<> risponde lui, @<>" "Non pensi di aver altro da chiedere."; Topic -> with metatopic m_barone, description "@<>^ @<>" "@<>^ @<>" "Ovviamente non stima il barone, ma almeno @`e molto pi@`u diplomatico di altri."; Topic -> t_vade_culti with metatopic m_culti, before [; if (seguaci.count > 1 && self.cnumber >= 3) { t_vade_figli.act(); rtrue; } ], description "@<>^ @<>" "@<> chiedi ripensando a quello che hai visto ieri sera.^ @<>" "@<>^ @<>" "Credi di aver chiesto abbastanza: la storia di queste creature per met@`a uomini e per met@`a animali sembrerebbe una leggenda, se tu non fossi sicuro di aver visto qualcosa di simile."; Topic -> t_vade_figli with metatopic m_figli, before [; if (seguaci.count == 0) { if (self hasnt general) { give self general; "@<>^ @<> risponde lui dopo un attimo di esitazione, @<>"; } "A quanto pare non ne sa niente."; } ], description "@<>^ @<> ti risponde, @<>" "@<>^ @<>" "@<> @<>" "Difende il suo culto con vigore, cercando allo stesso tempo di proteggere gli altri e assumersi tutte le colpe. Non credi di riuscire ad ottenere altre informazioni da lui."; Topic -> t_vade_donna with metatopic m_donna, description "@<>^ @<>" "@<>^ @<>" "@<>^ @<>" "La donna ha comperato un infuso fatto con le erbe che crescono nella valle, secondo una ricetta portata da lei. Non credi che l'alchimista sappia dirti altro."; Topic -> with metatopic m_naradas, description "@<>^ @<>" "@<>^ @<<@`E freddo e calcolatore, che sono due virt@`u in un amministratore. Non sembra interessato alla ricchezza o al potere, e sembra veramente operare per governare la valle al meglio, e - devo ammettere - con un certo successo. Mi chiedo se nasconda qualcosa.@>>" "Stando a quando dice, Naradas @`e un buon amministratore, capace e non particolarmente avido. Lui infatti si chiede se ci sia qualcosa sotto, e in effetti @`e un dubbio legittimo."; Topic -> with metatopic m_tempio, description [; give m_dippin ~locked; t_vade_dippin.act(); ]; Topic -> t_vade_dippin with metatopic m_dippin, description "@<>^ @<>" "@<>^ @<>" "Non credi che possa o voglia dirti molto altro. Evidentemente non lo stima e sospetta che sia ipocrita e corrotto, ma - per indole o per prudenza - non lo dir@`a mai apertamente."; Topic -> with metatopic m_osteria, description [; give m_bano ~locked; t_vade_bano.act(); ]; Topic -> t_vade_bano with metatopic m_bano, description [; give bano proper; "@<>^ @<>"; ] "Non ti viene altro da chiedere sull'oste."; Topic -> with metatopic m_bris, description [; give bris proper; give bano proper; "@<>^ @<>"; ] "Non credi sappia dirti altro, n@'e sei particolarmente interessato, in fondo."; Topic -> with metatopic m_erlik, name 'emporio', description [; give erlik proper; "@<> @<>"; ] "@<>^ @<>" "Erlik @`e un truffatore simpatico e chiaccherone. Non credi di serva sapere altro."; Topic -> t_vade_triven with metatopic m_triven, description "@<>^ @<>" "@<>^ @<>" "@<>^ @<>" "@`E strano che l'alchimista conosca il nome di questo studioso - Triven. Per il resto ti ha detto che forse era stato inviato dall'accademia, che forse abitava nella foresta e che scomparve misteriosamente."; Topic -> with metatopic m_iarin, name 'ragazza' 'giovane' 'nipote', description "@<>^ @<>" "@<>^ @<>" "Non ti viene altro da domandare a proposito."; Topic -> with metatopic m_aloe, description "@<>^ @<>" "Non ti viene altro da domandare a proposito."; Topic -> with metatopic m_nilis, description [; give nilis proper; give hila proper; give rabam proper; "@<>^ @<>"; ] "Non pensi che sappia o voglia dirti altro su Nilis."; Topic -> with metatopic m_hila, description [; give hila proper; "@<>^ @<>"; ] [; give dippin proper; "@<>^ @<<@`E una brava cuoca, una brava madre e una brava moglie, a dispetto di quello che dice suo marito. Inoltre @`e una persona molto pia, molto devota a Maral; ha addirittura una grossa stima in padre Dippin.@>>"; ] "Non credi che ti dir@`a di pi@`u; a quanto pare Hila @`e una sua cara amica, una brava madre di famiglia e una persona molto religiosa."; Topic -> with metatopic m_rabam, description [; give rabam proper; "@<>^ @<>"; ] "@<>^ @<>" "Non credi che sappia dirti altro d'interessante."; Topic -> with metatopic m_valle, description "@<>^ @<>" "Non hai altro da chiedere."; Topic -> with metatopic m_villaggio, description "@<>^ @<>" "@<>^ @<>" "Non hai altro da chiedere."; Topic -> with metatopic m_miniere, description "@<>^ @<>" "@<>^ @<>" "Non hai altro da chiedere a proposito delle miniere."; Topic -> with metatopic m_fiume, description "@<>^ @<>" "Non hai altro da chiedere, ma tieni a mente il suggerimento di muoversi verso sud-est per uscire dalla foresta."; Topic -> with metatopic m_foresta, description "@<>^ @<>" "@<>^ @<>" "Non credi di avere altro da chiedere sulla foresta."; Topic -> t_vade_pietra with metatopic m_pietra, description "@<>^ @<>" "@<>^ @<>" "Pensi ti abbia detto tutto quello che sa: la pietra @`e stata fatta da qualcuno, tanto tempo fa, ed @`e nascosta nel folto della foresta."; Topic -> with metatopic m_dei, description "@<>^ @<>" "La religione @`e una cosa molto personale. Preferisci non chiedere altro."; Object corpovade with short_name [; print "corpo immobile "; if (vade has proper) print "di Vade"; else print "dell'alchimista"; rtrue; ], pname 'corpo' '.x' 'di' '.or' 'del' '.or' 'dell^' 'vade' 'alchimista' 'medico' 'cerusico' 'erborista' 'uomo', article "il", description [; if (vade has proper) print "Vade "; else print "L'alchimista "; "giace riverso sul pavimento della sua bottega, privo di sensi. Fortunatamente ti rendo conto che respira ancora, debolmente ma in modo regolare. Non ha traccia di ferite o di altro che possa spiegare il suo stato."; ], aura "Il corpo dell'alchimista emana un'aura particolare, come se fosse soggetto ad un incantesimo che lo tiene in questo stato.", before [; Take: "Non riusciresti a sollevarlo."; ], life [; WakeOther: "Provi a rialzare l'uomo e a fargli riprendere conoscenza, ma senza risultato."; Attack, Kiss: "Non ti sembra proprio il caso."; default: "L'uomo non reagisce in alcun modo."; ], has static animate; ORoom DavantiForgia "Il villaggio (a sud della piazza)" with description "Le case del villaggio sembrano pi@`u fitte in questa zona. Da qui la strada porta verso nord, in direzione della piazza, e verso sud, fuori dal villaggio. Ad ovest una piccola costruzione in pietra ospita la forgia del fabbro del villaggio.", name 'villaggio' 'borgo' 'har' 'plenais' 'strada', each_turn [; give m_olfer ~locked; ], n_to PiazzaVillaggio, s_to PonteNord, w_to GoForgia, in_to GoForgia, cant_go "La strada porta a nord e a sud, e la forgia @`e a ovest.", initial [; LeftPicture(Village_img, -1, -1); ]; Prop -> "case" with name 'case' 'costruzioni' 'abitazioni' 'casa' 'abitazione' 'edifici', description "Le case qui intorno sono simili a quelle del resto del villaggio, e a quelle di molti altri piccoli villaggi.", cant_go "Sono solo le case degli abitanti del villaggio." has pluralname female; Direction -> "piazza" with name 'piazza' 'osteria' 'locanda' 'taverna' 'tempio', dir_to n_obj, has female; Direction -> "ponte" with name 'ponte' 'fiume' 'torrente' 'vlis', dir_to s_obj; Direction -> "forgia" with name 'costruzione' 'forgia' 'porta' 'edificio', dir_to w_obj, description "L'insegna sopra la porta rappresenta un'incudine.", before [; Open, Unlock, Knock: if ((~~night) && olfer in Forgia) "La porta @`e aperta."; addhint(h_forgia); if (action==##Knock) "Nessuna risposta..."; if (action==##Unlock && second == leva or spada or stiletto or mazzuolo) "Provi a forzare la porta, senza successo."; "La porta, chiusa a chiave, @`e per di pi@`u rinforzata in ferro."; Attack: "La porta @`e estremamente robusta."; ], has female; [GoForgia; if (night || olfer notin Forgia) { addhint(h_forgia); "La porta @`e chiusa."; } return(Forgia); ]; IRoom Forgia "La forgia" with description "Il calore @`e intenso in questo piccolo ambiente dove il fabbro del villaggio lavora. Il fuoco, caldo abbastanza da fondere il ferro, @`e acceso. Una larga incudine, una vasca d'acqua e decine di attrezzi sono le uniche cose che si possono trovare qui.", name 'forgia', e_to DavantiForgia, out_to DavantiForgia, cant_go "L'uscita @`e a est.", has light female waterhere; Object -> "camino" with name 'camino' 'fuoco' 'forno', description "Caldo... Molto caldo...", before [; SwitchOff: "Non sapresti nemmeno come fare."; SwitchOn: "@`E gi@`a acceso."; Search: "Non credi che possa contenere nulla."; Touch: "@`E caldo, ovviamente."; Receive: <>; ], !cant_go "@`E solo un camino." has container scenery; Prop -> "incudine" with name 'incudine', description "L'incudine pare estremamente pesante.", before [; Take, Push, Pull, Turn, LookUnder: "L'incudine @`e troppo pesante per essere spostata."; ], !cant_go "@`E solo un'incudine." has female; Object -> "vasca" with name 'vasca' 'acqua', description "Una vasca d'acqua fredda, per la tempra.", before [; Search: "Non vedi niente nella vasca."; Receive: print_ret (The) noun, " non @`e un oggetto da temprare."; Touch: "L'acqua @`e abbastanza fredda."; ], has container scenery female; Prop -> "attrezzi" with name 'attrezzo' 'arnese' 'attrezzi' 'arnesi', description "Tutto quello che serve ad un buon fabbro.", before [; Take: "Non ne hai bisogno."; ], cant_go "Puoi anche lasciar stare gli arnesi del fabbro.", has pluralname; Object -> Mazzuolo "mazzuolo" with name 'mazzuolo' 'mazza' 'martello' 'maglio', description "Un robusto e pesante mazzuolo in legno e ferro.", initial "Un mazzuolo giace in un angolo.", after [; Take: if (self hasnt general) { give self general; Achieved(4); "Aspetti che il fabbro si volti e ti impadronisci del mazzuolo."; } ]; !ORoom Quadrivio "Il villaggio (quadrivio)" ! with description ! "Le piccole strade acciottolate che separano le piccole case del villaggio si incrociano in questo punto, formando un quadrivio. La strada a est conduce fuori dal villaggio, verso la foresta.", ! name 'villaggio' 'quadrivio', ! scenic ! 'case' 'costruzioni' 'abitazioni' 'casa' 'costruzione' 'abitazione' 0 "Le case qui intorno sono simili a quelle del resto del villaggio, e a quelle di molti altri piccoli villaggi.", ! n_to Vicolo, s_to DavantiForgia, e_to VersoForesta, w_to DavantiAlchimista, ! cant_go "Le strade portano a nord, a sud, a est e a ovest."; ORoom PonteNord "Il ponte" with description "Un imponente e robusto ponte di pietra, verso sud, supera quasi con un balzo il largo fiume Vlis, e oltre esso la strada conduce verso il passo. Verso nord si stende il piccolo villaggio e a est una piccola scala scende verso gli argini.", name 'strada', before [; Listen: "Senti il fiume Vlis scorrere impetuosamente sotto di te."; ], n_to DavantiForgia, s_to PonteSud, e_to Sponda1, d_to Sponda1,! nel file lunafor.inf cant_go "Puoi solo seguire la strada, andando a nord o a sud, o scendere una piccola scala che porta ad est."; Direction -> "ponte" with name 'ponte', dir_to s_obj, description "Il ponte @`e robusto e massiccio, e sembra essere qui da tempo immemorabile, unico mezzo per superare la furia del Vlis nei periodi di piena. Le sue alte balaustre circondano la larga strada che conduce verso il villaggio e verso il palazzo."; Direction -> "villaggio" with name 'villaggio' 'borgo' 'har' 'plenais' 'case' 'abitazione' 'edifici' 'costruzioni' 'casa' 'abitazione' 'edificio' 'costruzione', dir_to n_obj; Prop -> "fiume" with name 'fiume' 'torrente' 'vlis', description "Il Vlis @`e in piena, in questo periodo.", cant_go "Sei troppo lontano. Dovresti arrivare agli argini."; ORoom PonteSud "Oltre il ponte" with description "Il largo e robusto ponte di pietra scavalca il fiume Vlis dando accesso, verso nord, alla valle di Nigat e al suo unico villaggio. Andando verso sud la strada si inerpica ripida fra le colline, verso il passo che conduce fuori dalla valle.", name 'strada', before [; Listen: "Senti il fiume Vlis scorrere impetuosamente sotto di te."; ], n_to PonteNord, s_to "Non trovi motivi per lasciare la valle, e ancora meno per lasciarla a piedi.", cant_go "Puoi solo seguire la strada, andando a nord o a sud."; Direction -> "ponte" with name 'ponte', dir_to n_obj, description "Il ponte @`e robusto e massiccio, e sembra essere qui da tempo immemorabile, unico mezzo per superare la furia del Vlis nei periodi di piena. Le sue alte balaustre circondano la larga strada che conduce verso il villaggio e verso il palazzo."; Direction -> "villaggio" with name 'villaggio' 'borgo' 'har' 'plenais' 'case' 'abitazione' 'edifici' 'costruzioni' 'casa' 'abitazione' 'edificio' 'costruzione', dir_to n_obj; Prop -> "fiume" with name 'fiume' 'torrente' 'vlis', description "Il Vlis @`e in piena, in questo periodo.", cant_go "Sei troppo lontano. Dovresti arrivare agli argini."; ORoom VersoForesta "Verso la foresta" with description "Le ultime case del villaggio, ad ovest, hanno lasciato solo un piccolo sentiero battuto che si inotra tra gli alberi verso est, e l'immensa foresta che occupa quasi interamente la valle si stende verso est per chilometri.", name 'sentiero' 'viottolo', w_to DavantiAlchimista, e_to SentieroForesta1, ne_to ForestaL1, se_to Sponda1, ! nel file lunafor.inf cant_go "Il villaggio si trova verso ovest, mentre il sentiero conduce verso est. Puoi anche inoltrarti nella foresta andando verso nordest o sudest."; Direction -> "villaggio" with name 'villaggio' 'borgo' 'har' 'plenais' 'case' 'abitazione' 'edifici' 'costruzioni' 'casa' 'abitazione' 'edificio' 'costruzione', dir_to w_obj, description "Guardando verso ovest puoi vedere, a pochi metri, le prime case in legno e pietra del piccolo villaggio."; Direction -> "foresta" with name 'foresta' 'alberi' 'bosco' 'boschi', dir_to e_obj, description "La foresta che si stende ad est @`e immensa, tanto da mettere soggezione.", has female;