! ---------------------------------------------------------------------------- ! Advent 020823 A classic and one of the standard Inform 6 example games ! ! ! Adapted to Inform 5: 17.5.94 to 24.5.94 ! Modernised to Inform 5.5 and library 5/12 or later: 20.12.95 ! Modernised to Inform 6 and library 6/1 or later: 11.11.96 ! A few bugs removed and companion text rewritten: 9.12.96 ! Some very minor bugs indeed removed: 24.2.97 ! And another two: 4.9.97 ! Dutch translation: 23.8.02 ! ---------------------------------------------------------------------------- ! Constant TEST_VERSION; ! Constant DEBUG; Constant Story "AVONTUUR"; Constant Headline "^Het Interactieve Origineel^ Door Will Crowther (1973) en Don Woods (1977)^ In drie stappen gereconstrueerd door:^ Donald Ekman, David M. Baggett (1993) en Graham Nelson (1994)^ In het Nederlands vertaald door Yuri Robbers (2002)^ Oorspronkelijke titel: Adventure^ [In memoriam Stephen Bishop (1820?-1857): GN]^^"; Serial "020822"; Release 8; Constant MAX_CARRIED = 7; Constant MAX_SCORE = 350; Constant MAX_TREASURES = 15; Constant AMUSING_PROVIDED; Include "Parser"; Include "VerbLib"; Attribute nodwarf; Attribute treasure_found; Attribute multitude; Global caves_closed; Global canyon_from; Global treasures_found; Global deaths; Global dark_warning; Global feefie_count; ! ---------------------------------------------------------------------------- ! Rules for treasures, which will be scattered all over the game ! ---------------------------------------------------------------------------- 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; } "Meegenomen!"; Insert: score=score-5; ! (in case put inside the wicker cage) Drop: score=score-5; if (location==Inside_Building) { score=score+self.depositpoints; "Veilig weggeborgen."; } ]; ! ---------------------------------------------------------------------------- ! The outside world ! ---------------------------------------------------------------------------- Class AboveGround has light nodwarf; AboveGround At_End_Of_Road "Aan het Eind van de Weg" with description "Je staat aan het einde van een weg voor een klein stenen gebouwtje. Om je heen is bos. Een beekje stroomt uit het gebouw naar beneden door een geul.", 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 "geul" "weg" "straat" "pad"; Object "bronhuis" with name "bron" "huis" "steen" "gebouw" "klein" "bron" "gebouwtje" "bronhuis", description "Het is een klein stenen gebouwtje. Het lijkt wel een bronhuis", found_in At_End_Of_Road At_Hill_In_Road Inside_Building has scenery neuter; Object Stream "stroom" with name "stroom" "water" "beek" "rivier" "meer" "klein" "vallend" "plonzend" "kabbelend" "stromend" "reservoir", 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: "Je hebt een slokje beekwater genomen. Het smaakt sterk naar minderalen, maar is niet vies. Het is buitengewoon koud."; Take: if (bottle notin player) "Je hebt niets om het water in te doen."; <>; Insert: if (second == bottle) <>; "Je hebt niets om het water in te doen."; Receive: if (noun == ming_vase) { remove ming_vase; move shards to location; score=score-5; "De plotselinge temperatuurverandering was teveel voor het delicate porselein: het is versplinterd."; } if (noun == bottle) <>; remove noun; if (noun ofclass Treasure) score=score-5; print_ret (The) noun, " spoelt mee met de stroom."; ], has scenery male; Object "weg" with name "weg" "straat" "pad" "zand", description "De weg is van zand, niet van gele baksteen.", found_in At_End_Of_Road At_Hill_In_Road In_Forest_2 has scenery male; Object "bos" with name "bos" "boom" "bomen" "eik" "esdoorn" "groep" "den" "spar" "struik" "berk" "es" "zaailingen" "struikjes" "bladeren" "bes" "besjes" "bessenstruiken" "hardhout" "sparretjes", description "De bomen in dit bos zijn grote hardhouten eiken en esdoorns, met af en toe een groep dennen of sparren. Er is behoorlijk wat kreupelhout, grotendeels bestaande uit zaailingen van de berk en de es, plus wat verspreide struikjes van diverse soorten. Deze tijd van het jaar is het zicht beperkt vanwege de vele bladeren, maar wandelen is geen probleem, zolang je, waar nodig, even om de sparretjes en bessenstruiken heenloopt.", found_in At_End_Of_Road At_Hill_In_Road In_A_Valley In_Forest_1 In_Forest_2 has scenery multitude pluralname neuter; AboveGround At_Hill_In_Road "Op een Heuvel op de Weg" with description "Je bent een heuvel opgewandeld, nog steeds in het bos. De weg leidt aan de andere kant weer naar beneden. In de verte ontwaar je een gebouwtje.", e_to At_End_Of_Road, n_to At_End_Of_Road, d_to At_End_Of_Road, s_to In_Forest_1, name "geul" "weg" "straat" "pad"; Object -> "heuvel" with description "Gewoon een doorsnee heuvel.", name "heuvel" "bult" "helling" has scenery male; Object -> "andere kant van de heuvel" with article "de", description "Waarom ga je niet gewoon zelf even kijken?", name "kant" "andere" "van" "zijde" has scenery male; AboveGround Inside_Building "In het Gebouw" with description "Je bent binnenin een gebouw: een bronhuis voor een grote waterbron.", cant_go "De beek stroomt naar buiten door een paar rioolbuizen van dertig centimeter breed. De enige uitgang is west.", before [; Enter: if (noun==Spring or SewerPipes) "De beek stroomt naar buiten door een paar rioolbuizen van dertig centimeter breed. Het zou verstandig zijn de uitgang te gebruiken."; 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 "De buizen zijn te nauw."; Object -> Spring "bron" with name "bron" "grote", description "De beek stroomt naar buiten door een paar rioolbuizen van dertig centimeter breed." has scenery male; Object -> SewerPipes "paar rioolbuizen van dertig centimeter breed" with name "buizen" "pijpen" "dertig" "cm" "centimeter" "diameter" "riool" "rioolbuizen", description "Te nauw. De enige uitgang is in het westen." has scenery male; Object -> set_of_keys "sleutelbos" with description "Gewoon een doodnormale sleutelbos.", initial "Er ligt hier een sleutelbos op de grond.", before [; Count: "Een stuk of twaalf sleutels."; ], name "sleutels" "sleutel" "sleutelbos" "stel" "bos" "set", has male; Object -> tasty_food "smakelijk voedsel" with description "Dat ziet er lekker uit!", article "wat", initial "Hier ligt wat smakelijk voedsel.", name "voedsel" "rantsoen" "rantsoenen" "buik" "lekker" "smakelijk" "lekker" "fijn", after [; Eat: "Heerlijk!"; ], has edible neuter; Object -> brass_lantern "koperen lantaarn" with name "lamp" "koplamp" "hoofdlamp" "lantaarn" "licht" "blinkend" "brons" "koper" "blinkende" "bronzen" "koperen", when_off "Op de grond ligt een blinkend gepoetste koperen lantaarn.", when_on "Je lamp is hier, helder brandend.", 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; "Ik ben maar even zo vrij de batterijen te vervangen."; } ], 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 "De batterijen van je lantaarn zijn leeg."; if (fresh_batteries notin player && location hasnt light) { deadflag=3; " Je kunt geen grotten onderzoeken zonder lantaarn, dus laten we er maar mee ophouden voor vandaag."; } else self.replace_batteries(); new_line; rtrue; } if (t==30) { print "Je lamp begint zwakker te branden."; if (fresh_batteries has general) " Je hebt ook geen nieuwe batterijen meer. Je kunt je maar beter klaarmaken om naar huis te gaan, nu het nog kan."; if (fresh_batteries in VendingMachine && Dead_End_14 has visited) " Je kunt je maar beter klaarmaken om naar huis te gaan nu het nog kan, tenzij je nog nieuwe batterijen kunt vinden. Als ik het me goed herinner staat er een automaat in het doolhof. Zorg dan wel dat je wat muntgeld bij je hebt."; if (fresh_batteries notin VendingMachine or player or location) " Ik zou maar gauw teruggaan voor die batterijen als ik jou was."; new_line; rtrue; } } ], before [; Examine: print "Een blinkend gepoetste koperen lamp"; if (self hasnt on) ". Hij brandt momenteel niet."; if (self.power_remaining < 30) ", flauwtjes brandend."; ", helder brandend."; Burn: <>; Rub: "Het opwrijven van de elektrische lamp opwrijven geeft je niet bijzonder veel voldoening. In ieder geval gebeurt er niets spannends."; SwitchOn: if (self.power_remaining <= 0) "Helaas lijkt het erop dat de batterijen leeg zijn."; Receive: if (noun == old_batteries) "Die batterijen zijn leeg; daar heb je niets meer aan."; if (noun == fresh_batteries) { self.replace_batteries(); rtrue; } "Het enige wat je met enige kans op succes in de lamp kunt stoppen zijn nieuwe batterijen."; ], after [; SwitchOn: give self light; StartDaemon(self); SwitchOff: give self ~light; ], has switchable male; Object -> bottle "kleine fles" with name "fles" "kruik" "klein" "kleine", initial "Er ligt hier een kleine fles.", before [; LetGo: if (noun in bottle) "Dat heb je al in je bezit (in de fles)."; Receive: if (noun == stream or Oil) <>; else "De fles kan alleen vloeistoffen bevatten."; Fill: if (child(bottle) ~= nothing) "De fles is al vol."; if (stream in location || Spring in location) { move water_in_the_bottle to bottle; "De fles is nu gevuld met water."; } if (Oil in location) { move oil_in_the_bottle to bottle; "De fles is nu gevuld met olie."; } "Er is hier niets waarmee je de fles kunt vullen."; Empty: if (child(bottle) == nothing) "De fles is al leeg!"; remove child(bottle); "Je fles is nu leeg en de grond is nat."; ], has container open male; Object water_in_the_bottle "water" with name "gebotteld" "water" "h2o", article "wat", before [; Drink: remove water_in_the_bottle; <>; ], description "Ziet eruit als doodgewoon water, als je het mij vraagt.", has neuter; Object oil_in_the_bottle "olie" with name "oil" "gebotteld" "smeermiddel" "vet", article "wat", before [; Drink: <>; ], description "Ziet eruit als doodnormale olie, volgens mij.", has neuter; AboveGround In_Forest_1 "In het Bos" with description "Je bent in een redelijk open bos, met een vallei aan een kant.", 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 "In het Bos" with description "Je bent in een redelijk open bos, vlakbij een vallei en een weg.", 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 een Vallei" with description "Je bent in een vallei in het bos, en naast je stroomt een beekje klaterend door z'n rotsachtige bedding.", 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 "vallei"; Object -> "bedding" with name "bed" "bedding" "rots" "klein" "rotsachtig" "rotsachtige" "kaal" "droog" has scenery neuter; AboveGround At_Slit_In_Streambed "Bij een Gleuf in de Bedding" with description "Bij je voeten dondert al het water van de beek naar beneden, een vijf centimeter brede gleuf in. Verder stroomafwaarts bestaat de bedding slechts uit kale rotsen.", n_to In_A_Valley, e_to In_Forest_1, w_to In_Forest_1, s_to Outside_Grate, d_to "Je past niet door een vijf centimeter brede gleuf!", in_to "Je past niet door een vijf centimeter brede gleuf!"; Object -> "vijf centimeter brede gleuf" with name "gleuf" "opening" "vijf" "cm" "centimeter" "5", description "Gewoon een vijf centimeter brede gleuf waar de beek doorheen stroomt.", before [; Enter: "Je past niet door een vijf centimeter brede gleuf!"; ], has scenery; AboveGround Outside_Grate "Buiten het Rooster" with description "Je bevindt je in een 6 meter diepe kuil bedekt met niets anders dan kiezels en zand. In het zand zie je een stevig stalen rooster, gevat in beton. Een droge rivierbedding leidt de kuil in.", 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 "(eerst het rooster openend)^"; give Grate open; } return Grate; ]; Object -> "6 meter diepe kuil" with description "Je staat erin.", name "kuil" "depressie" "zand" "kiezels" "zes" "m" "meter" "kaal" "6", has scenery male; Object -> Grate "stalen rooster" with name "rooster" "slot" "doorgang" "gril" "traliewerk" "hekwerk" "hek" "tralie" "tralies" "metaal" "sterk" "stevig" "staal", description "Het ziet eruit zoals een rooster gevat in beton er meestal uitziet.", 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) "^Het rooster staat open."; if (self hasnt locked) "^Het rooster zit dicht, maar is niet op slot."; rtrue; ], found_in Below_The_Grate Outside_Grate has static door openable lockable locked neuter; ! ---------------------------------------------------------------------------- ! Facilis descensus Averno... ! ---------------------------------------------------------------------------- Object Below_The_Grate "Onder het Rooster" with description "Je bevindt je in een kamertje onder een rooster van zo'n 90 bij 90 centimeter dat naar de oppervlakte leidt. Via een lage gang vol keien kun je naar het westen kruipen, dieper de aarde in.", w_to In_Cobble_Crawl, u_to Grate has light; Object "keien" with description "Het zijn gewoon normale keien.", name "kei" "keien" "rots" "rotsen" "stenen" "steen" "kiezel" "kiezels", found_in In_Cobble_Crawl In_Debris_Room Below_The_Grate has scenery multitude pluralname male; Object In_Cobble_Crawl "In de Kruipgang met Keien" with description "Je kruipt over de keien door een lage gang. Er is een flauw licht aan het oostelijke uiteinde van de gang.", e_to Below_The_Grate, w_to In_Debris_Room has light; Object -> wicker_cage "tenen kooitje" with description "Het is een klein tenen kooitje.", initial "Iemand heeft hier een klein tenen kooitje achtergelaten.", name "kooi" "kooitje" "klein" "kleine" "tenen" "rieten" "rotan", after [; Open: if (little_bird notin self) rfalse; print "(het kleine vogeltje vrijlatend)^"; <>; ], has container open openable transparent neuter; Object In_Debris_Room "In de Puinkamer" with description "Je bent in een kamer gevuld met allerlei puin dat vanaf de oppervlakte hierheen gespoeld is. Een lage maar brede gang vol keien raakt hier verstopt met modder en puin, maar een moeilijk begaanbaar ravijn leidt omhoog en naar het westen.^^ Een boodschap op de muur zegt: ~Magisch woord 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 -> "puin" with description "Yuck.", name "puin" "rommel" "modder" has scenery neuter; Object -> "boodschap" with description "De boodschap zegt ~Magisch woord XYZZY~.", name "boodschap" "tekst" has scenery; Object -> black_rod "zwarte staf met een roestige ster aan een uiteinde" with description "Het is een negentig centimeter lange staf met een roestige ster aan een uiteinde.", initial "Er ligt een zwarte staf van een centimeter of negentig lang met een roestige ster aan een uiteinde niet ver bij je voeten vandaan.", name "staf" "ster" "zwart" "roestige" "ster" "negentig" "centimeter" "90" "cm" "ijzer" "ijzeren" "roestig", before [; Wave: if (location==West_Side_Of_Fissure or On_East_Bank_Of_Fissure) { if (caves_closed) "Vreemd. Er gebeurt niets."; if (CrystalBridge notin nothing) { remove CrystalBridge; give CrystalBridge absent; West_Side_Of_Fissure.e_to = 0; On_East_Bank_Of_Fissure.w_to = 0; "De kristallen brug is verdwenen!"; } else { move CrystalBridge to location; give CrystalBridge ~absent; West_Side_Of_Fissure.e_to = CrystalBridge; On_East_Bank_Of_Fissure.w_to = CrystalBridge; "Een kristallen brug overspant de breuk nu."; } } "Er gebeurt niets."; ]; Object In_Awkward_Sloping_E_W_Canyon "Hellend Oost/West Ravijn" with description "Je klautert door een moeilijk begaanbaar Oost/West lopend ravijn.", d_to In_Debris_Room, e_to In_Debris_Room, u_to In_Bird_Chamber, w_to In_Bird_Chamber has nodwarf; ! ---------------------------------------------------------------------------- ! The little bird in its natural habitat ! ---------------------------------------------------------------------------- Object In_Bird_Chamber "Oranje Rivier Kamer" with description "Je bevindt je in een schitterende kamer van negen meter hoog. De muren zijn bevroren rivieren van oranje steen. Via een gevaarlijk ravijn in het oosten en een goed uitziende doorgang in het westen kun je deze kamer weer verlaten.", e_to In_Awkward_Sloping_E_W_Canyon, w_to At_Top_Of_Small_Pit has nodwarf; Object -> little_bird "klein vogeltje" with name "vrolijk" "vrolijke" "bedroefd" "bedroefde" "klein" "kleine" "vogel" "vogeltje", initial "Een vrolijk klein vogeltje zit hier te zingen.", before [; Examine: if (self in wicker_cage) "Het kleine vogeltje ziet er bedroefd uit in het kooitje."; "Het vogeltje zit hier vrolijk te zingen."; Insert: if (second==wicker_cage) <>; else "Stop dat arme vogeltje toch niet in ", (the) second, "!"; Drop, Remove: if (self in wicker_cage) { print "(Het vogeltje vliegt het kooitje uit zodra je het open doet.)^^"; <>; } Take, Catch: if (self in wicker_cage) "Je hebt het kleine vogeltje al. Als je hem uit het kooitje haalt, zal hij waarschijnlijk van je wegvliegen."; if (wicker_cage notin player) "Je kunt het vogeltje wel vangen, maar niet met je meedragen."; if (black_rod in player) "Het vogeltje was niet bang toen je binnenkwam, maar als je nadert wordt hij bang, en je kunt hem niet vangen."; move self to wicker_cage; give wicker_cage ~open; "Je vangt het vogeltje in de tenen kooi."; Release: if (self notin wicker_cage) "Het vogeltje zit helemaal niet in de kooi!"; give wicker_cage open; move self to location; if (Snake in location) { remove Snake; "Het kleine vogeltje valt de groene slang aan, en in een verbazingwekkende strijd op leven en dood maakt de slang dat hij wegkomt."; } if (Dragon in location) { remove self; "Het kleine vogeltje valt de groene draak aan, en in een verbazingwekkende strijd op leven en dood verkoolt het in de vurige adem van de draak. De as dwarrelt langzaam weg op de tocht."; } "Het kleine vogeltje vliegt de vrijheid tegemoet."; ], life [; Give: "Hij heeft geen honger (hij smacht slechts naar de fjorden). Bovendien, ik verwacht eerlijk gezegd dat hij veel liever vogelzaad zou hebben."; Order, Ask, Answer: "Tjiep! Sjirp!"; Attack: if (self in wicker_cage) "Och, laat dat arme kleine vogeltje toch gewoon met rust."; remove self; "Het kleine vogeltje is nu dood. Het lijkje verdwijnt."; ], has animate neuter; Object At_Top_Of_Small_Pit "Bovenaan een Kleine Schacht" with description "Aan je voeten zie je een kleine schacht flarden witte mist uitademen. Een westwaartse gang eindigt hier, en slechts een kleine scheur leidt nog verder in die richting.^^ Ruwe stenen traptreden leiden naar beneden, de schacht in.", e_to In_Bird_Chamber, w_to "De scheur is veel te nauw voor jou om je er doorheen te wurmen.", d_to [; if (large_gold_nugget in player) { deadflag=1; "Je ligt op de bodem van de schacht met een gebroken nek."; } return In_Hall_Of_Mists; ], before [; Enter: if (noun==PitCrack) "De scheur is veel te nauw voor jou om je er doorheen te wurmen."; ], has nodwarf; Object -> "kleine schacht" with description "De schacht ademt flarden witte mist.", name "schacht" "klein" "kleine" has scenery male; Object -> PitCrack "scheur" with description "De scheur is heel nauw -- veel te nauw voor jou om er doorheen te kunnen kruipen.", name "scheur" "klein" "kleine" has scenery male; Object "mist" with description "Mist is een witte damp, meestal water, die van tijd tot tijd waargenomen kan worden in grotten. In principe kun je zoiets overal tegenkomen, maar vaak is het een teken dat er een diepe schacht naar beneden leidt, naar water.", name "mist" "damp" "flard" "flarden" "wit" "witte", 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 male; ! ---------------------------------------------------------------------------- ! The caves open up: The Hall of Mists ! ---------------------------------------------------------------------------- Object In_Hall_Of_Mists "In de Zaal van Mist" with initial [; if (self has general) rfalse; score=score+25; give self general; ], description "Je staat aan @'e@'en uiteinde van een enorme zaal die zich verder dan je kunt zien naar het westen uitstrekt. Aan beide kanten zie je openingen opzij. Vlakbij leidt een stenen trap naar beneden. De zaal is gevuld met flarden witte mist, die langzaam heen en weer drijven, bijna zoals levende wezens dat zouden doen. Een koude wind blaast omhoog vanuit het trapgat. Er is een doorgang bovenin het gewelf achter je.^^ Ruwe stenen traptreden leiden omhoog naar het gewelf.", 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) "Je kunt niet naar het gewelf toeklimmen."; return At_Top_Of_Small_Pit; ]; Object -> "brede stenen trap" with description "De trap leid naar beneden.", name "trap" "trede" "treden" "tredes" "traptrede" "traptreden" "traptredes" "breed" "brede" "steen" "stenen" has scenery male; Object -> "ruwe stenen traptreden" with description "De ruwe stenen traptreden leiden omhoog naar het gewelf.", name "trap" "trede" "treden" "tredes" "traptrede" "traptreden" "traptredes" "ruw" "ruwe" "steen" "stenen" has scenery multitude pluralname; Object -> "gewelf" with name "gewelf", before [; Examine: if (large_gold_nugget in player) "Ik betwijfel of je wel omhoog kunt klimmen met wat je bij je hebt."; "Het lijkt erop dat je er wel naar toe moet kunnen klimmen."; Climb: MovePlayer(u_obj); rtrue; ], has scenery neuter; Object In_Nugget_Of_Gold_Room "Lage Kamer" with description "Dit is een lage kamer met een ruw in de muur gebeitelde boodschap:^^ ~Je krijgt het toch de trap niet op~.", n_to In_Hall_Of_Mists; Object -> "boodschap" with description "De boodschap zegt: ~Je krijgt het toch de trap niet op~.", name "boodschap" "bericht" "ruw" "gebeiteld" has scenery male; Treasure -> large_gold_nugget "grote goudklomp" with description "Het is een enorme schitterende goudklomp!", initial "Er ligt hier een enorme goudklomp te schitteren!", name "goud" "klomp" "goudklomp" "groot" "grote" "enorm" "enorme" "zwaar" "zware"; Class FissureRoom with before [; Jump: if (CrystalBridge hasnt absent) "Met alle respect, maar zou je niet liever de brug nemen dan eroverheen te springen?"; deadflag=1; "Je hebt het niet gehaald."; ], d_to "De kloof is te angstaanjagend!"; FissureRoom On_East_Bank_Of_Fissure "Aan de Oostkant van de Kloof" with description "Je staat aan de oostkant van een kloof die dwars door de zaal heensnijdt. De mist is hier behoorlijk dicht, en de kloof is te breed om eroverheen te springen.", e_to In_Hall_Of_Mists, w_to "De kloof is te breed."; FissureRoom West_Side_Of_Fissure "Westzijde van de Kloof" with description "Je staat aan de westelijke zijde van de kloof in de zaal van mist.", w_to At_West_End_Of_Hall_Of_Mists, e_to "De kloof is te breed.", n_to At_West_End_Of_Hall_Of_Mists, before [; Go: if (location==West_Side_Of_Fissure && noun==n_obj) print "Je bent door een zeer lage gang gekropen, parallel aan en ten noorden van de zaal van mist.^"; ]; Treasure -> "diamanten" with article "een aantal", description "Ze zien eruit alsof ze van de beste kwaliteit zijn!", initial "Er ligt hier een aantal diamanten!", name "diamant" "diamanten" "aantal" "beste" "van" "best" "kwaliteit" has multitude pluralname male; Object CrystalBridge "kristallen brug" with initial "Een kristallen brug overbrugt nu de kloof.", description "Hij overbrugt de kloof, zodat je eroverheen kunt.", 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 "kristal" "kristallen" "brug" "overbrugging" "kristalbrug", found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure has static door open absent male; Object "kloof" with name "breed" "brede" "kloof", description "Die kloof ziet er veel te breed uit om eroverheen te springen.", found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure has scenery male; Object At_West_End_Of_Hall_Of_Mists "Aan het Westelijke Uiteinde van de Zaal van Mist" with description "Je bent aan het westelijke uiteinde van de zaal van mist aangeland. A lage, brede kruipgang gaat verder naar het westen, en een andere leidt naar het noorden. Zuidwaarts zie je een kleine doorgang, zo'n @'e@'en meter tachtig boven de grond.", 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 "Je bent door een zeer lage gang gekropen, parallel aan en ten noorden van de zaal van mist.^"; ]; ! ---------------------------------------------------------------------------- ! Long Hall to the west of the Hall of Mists ! ---------------------------------------------------------------------------- Object At_East_End_Of_Long_Hall "Aan de Oostkant van een Lange Zaal" with description "Je bent aan de oostkant van een enorm lange zaal, zo te zien zonder zijkamers. Naar het oosten helt een lage, brede kruipgang omhoog, en naar het noorden helt een rond, zestig centimeter breed, gat naar beneden.", 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 "Aan de Westkant van een Lange Zaal" with description "Je bevindt je aan het westelijke einde van een zeer lange zaal zonder bijzondere kenmerken. De zaal mondt uit in een smalle noord/zuid-gang.", e_to At_East_End_Of_Long_Hall, s_to Different_Maze_1, n_to Crossover; Object Crossover "N/Z en O/W Kruispunt" with description "Je bevindt je op een kruispunt van een hoge noord/zuid- en een lage oost/west-doorgang.", 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 -> "kruispunt" with description "Je weet op dit punt netzoveel als ik.", name "kruispunt" "kruising" "kruis" has scenery neuter; ! ---------------------------------------------------------------------------- ! Many Dead Ends will be needed for the maze below, so define a class: ! ---------------------------------------------------------------------------- Class DeadEndRoom with short_name "Doodlopend punt", description "Je bent op een doodlopend punt beland.", cant_go "Je zult terug moeten in de richting waar je vandaan kwam."; DeadEndRoom Dead_End_7 with s_to Crossover, out_to Crossover; ! ---------------------------------------------------------------------------- ! The Hall of the Mountain King and side chambers ! ---------------------------------------------------------------------------- Object In_Hall_Of_Mt_King "Zaal van de Bergkoning" with description "Je staat in de zaal van de bergkoning, en in alle richtingen leiden gangen.", cant_go "Hmm... misschien toch niet in alle richtingen.", 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))) "Je kunt niet langs de slang komen."; ]; Object -> Snake "slang" with description "Met hem zou ik me vooral niet inlaten, als ik jou was.", initial "Een enorme groene slang blokkeert je weg!", name "slang" "cobra" "python" "enorm" "enorme" "fel" "groen" "agressief" "giftig" "giftige" "groot" "grote" "moordenaar" "felle" "groene" "agressieve", life [; Order, Ask, Answer: "Siss!"; ThrowAt: if (noun==axe) <>; <>; Give: if (noun==little_bird) { remove little_bird; "De slang heeft je arme vogeltje verorberd."; } "Er is hier niets dat hij lust (behalve jijzelf misschien)."; Attack: "De slang aanvallen lukt niet, en is erg gevaarlijk."; ], before [; Take: deadflag=1; "In plaats daarvan pakt hij jou. Glrp!"; ], has animate female; Object Low_N_S_Passage "Lage N/Z-doorgang" with description "Je staat in een lage noord/zuid-gang, vlakbij een gat in de grond. Het gat leidt neerwaarts naar een oost/west-doorgang.", s_to In_Hall_Of_Mt_King, d_to In_Dirty_Passage, n_to At_Y2; Treasure -> "staven zilver" with description "Ze zijn waarschijnlijk een fortuin waard!", initial "Er liggen hier enige staven zilver!", article "enige", name "zilver" "zilveren" "staaf" "staven" "zilverstaaf" "zilverstaven" "fortuin", has multitude pluralname male; Object In_South_Side_Chamber "In de Kamer aan de Zuidkant" with description "Je bent in de kamer aan de zuidkant.", n_to In_Hall_Of_Mt_King; Treasure -> "kostbare juwelen" with description "De een is nog fraaier dan de ander!", initial "Er liggen hier enkele kostbare juwelen!", article "enkele", name "juweel" "juwelen" "fraai" "fraaie" "kostbaar" "kostbare", has multitude pluralname male; Object In_West_Side_Chamber "In de Kamer aan de Westkant" with description "Je bevindt je in de kamer aan de westkant van de zaal van de bergkoning. Een gang leidt hiervandaan verder naar het westen en omhoog.", w_to Crossover, u_to Crossover, e_to In_Hall_Of_Mt_King; Treasure -> rare_coins "zeldzame munten" with description "De droom van elke numismatist!", initial "Er ligt hier een grote hoeveelheid munten!", article "veel", name "munt" "munten" "zeldzaam" "zeldzame", has multitude pluralname male; ! ---------------------------------------------------------------------------- ! The Y2 Rock Room and environs, slightly below ! ---------------------------------------------------------------------------- Object At_Y2 "Bij ~Y2~" with description "Je bevindt je in een grote kamer, met een opening naar het zuiden, een opening naar het westen, en een soort muur van rotspuin in het oosten. Er staat in enorme letters ~Y2~ op een rots middenin de kamer.", after [; Look: if (random(100)<=25) print "^Een holle stem zegt: ~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 -> "~Y2~ rots" with description "Er staat in enorme letters ~Y2~ op de rots geschilderd.", name "rots" "y2" "letters" has scenery supporter male; Object Jumble_Of_Rock "Warboel van Rotsblokken" with description "Je staat in een puinhoop van rotsblokken, met overal scheuren.", d_to At_Y2, u_to In_Hall_Of_Mists; Object At_Window_On_Pit_1 "Bij een Venster dat Uitziet op een Schacht" with description "Je staat bij een laag venster dat uitzicht biedt op een gigantische schacht. De vloer is juist zichtbaar, zo'n vijftien meter dieper. Flarden witte mist bedekken de bodem van de schacht, en worden naar rechts toe dikker. Sporen in het stof bij het venster getuigen van het feit dat hier onlangs nog iemand geweest is. Recht tegenover je aan de andere kant van de schacht is een soortgelijk venster dat uitzicht biedt op een verlichte kamer. Je ontwaart daar een schimmig figuur dat naar je terugstaart.", before [; WaveHands: "De schimmige figuur zwaait terug!"; ], cant_go "De enige mogelijkheid is terug naar het oosten, naar Y2.", e_to At_Y2; Class PitScenery with found_in At_Window_On_Pit_1 At_Window_On_Pit_2, has scenery; PitScenery "venster" with description "Ziet eruit als een gewoon venster.", name "venster" "raam" "ruit" "laag", has openable neuter; PitScenery "gigantische schacht" with description "Deze schacht is zo diep dat je de bodem maar netaan kunt zien, en de bovenkant is veel te ver weg.", name "schacht" "diep" "diepe" "groot" "grote" "breed" "brede" "hoog" "hoge" "gigantisch" "gigantische", has male; PitScenery "sporen in het stof" with description "Je bent hier duidelijk niet alleen.", name "spoor" "sporen" "stof" has multitude pluralname neuter; PitScenery "schimmige figuur" with description "Het lijkt wel of die schimmige figuur je aandacht probeert te trekken.", name "figuur" "schim" "schimmig" "schimmige" "schaduw" "persoon" "individu" "mysterieus", has male; Object In_Dirty_Passage "Vieze Gang" with description "Je bent in een vieze, half ingestorte gang. Naar het oosten is een kruipruimte. Naar het westen loopt een grote gang. Boven je zit een gat naar een andere gang.", e_to On_Brink_Of_Pit, u_to Low_N_S_Passage, w_to In_Dusty_Rock_Room; Object On_Brink_Of_Pit "Rand van de Schacht" with description "Je zit op de rand van een smalle, schone schacht waar je vrij gemakkelijk in kunt klimmen. Een kruipruimte leidt naar het westen.", w_to In_Dirty_Passage, d_to In_Pit, in_to In_Pit; Object -> "kleine schacht" with description "Het ziet ernaar uit dat je daar met enige moeite wel in af kunt dalen.", name "put" "schacht" "klein" "schoon" "beklimbaar" "beklimbare", before [; Climb, Enter: MovePlayer(d_obj); rtrue; ], has scenery male; Object In_Pit "In een Schacht" with description "Je staat op de bodem van een kleine schacht met een stroompje, dat binnenkomt en verdwijnt door kleine sleuven.", u_to On_Brink_Of_Pit, d_to "Je past niet door de kleine sleuven!" has nodwarf; Object -> "kleine sleuven" with description "De sleuven vormen een complex patroon in de rots.", name "sleuf" "sleuven" "klein" "kleine" "complex" "patroon", has scenery multitude pluralname male; Object In_Dusty_Rock_Room "In de Stoffige Rotskamer" with description "Je bent in een grote kamer vol stoffige rotsen. Er zit een groot gat in de vloer. Overal zijn scheuren en barsten, en een doorgang leidt oostwaarts.", e_to In_Dirty_Passage, d_to At_Complex_Junction; Object -> "stoffige rotsen" with description "Dat zijn gewoon rotsen. (Stoffige, wel te verstaan.)", name "rots" "rotsen" "kei" "keien" "steen" "stenen" "stoffig" "stoffige" "vies" "vieze", before [; Push, Pull, LookUnder: "Daar moet je je eerst een weg doorheen banen met dynamiet."; ], has scenery multitude pluralname male; ! ---------------------------------------------------------------------------- ! A maze of twisty little passages, all alike... ! ---------------------------------------------------------------------------- Class MazeRoom with short_name "Doolhof", description "Je bent in een doolhof van kronkelende kleine paadjes, allemaal hetzelfde.", out_to "Makkelijker gezegd dan gedaan."; 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 "Op het Randje van een Schacht" with description "Je staat op het randje van een negen meter diepe schacht met een massieve oranje zuil langs @'e@'en muur. Je kunt hier naar beneden klimmen, maar dan zul je niet meer terug omhoog kunnen komen. Het doolhof gaat verder op dit niveau.", 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 -> "massieve oranje zuil" with description "Ziet eruit alsof je er wel langs omlaag kunt klimmen.", name "zuil" "massief" "oranje" "groot" "enorm" "massieve" "grote" "enorme", before [; Climb: MovePlayer(d_obj); rtrue; ], has scenery male; Object -> "schacht" with description "Je zult naar beneden moeten klimmen om nog meer te kunnen zien...", name "schacht" "put" "negen" "9" "meter" "m" "9m", before [; Climb: MovePlayer(d_obj); rtrue; ], has scenery male; DeadEndRoom Dead_End_6 with e_to At_Brink_Of_Pit, out_to At_Brink_Of_Pit; ! ---------------------------------------------------------------------------- ! A line of three vital junctions, east to west ! ---------------------------------------------------------------------------- Object At_Complex_Junction "Een Ingewikkeld Knooppunt" with description "Je hebt een ingewikkeld knooppunt bereikt. Een lage handen-en-voeten doorgang vanuit het noorden komt samen met een hogere kruipgang vanuit het oosten om een beloopbare gang naar het westen te vormen. Er is ook nog een grote kamer hierboven. De lucht is hier vochtig.", u_to In_Dusty_Rock_Room, w_to In_Bedquilt, n_to In_Shell_Room, e_to In_Anteroom; Object In_Bedquilt "Bedquilt" with description "Je bent in Bedquilt, een lange oost/west-gang met overal gaten. Om hier op goed geluk verder op onderzoek uit te gaan, kun je noord, zuid, omhoog of omlaag kiezen.", 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) "Je bent door allerlei tunnels en gaten gekropen, en uiteindelijk weer in de hoofdgang terechtgekomen."; if (destiny==0) rfalse; PlayerTo(destiny); rtrue; ]; Object In_Swiss_Cheese_Room "In de Zwitserse Kaaskamer" with description "Je bent in een ruimte waarvan de muren je sterk aan Zwitserse gatenkaas doen denken. Direct zichtbare uitgangen heb je in het westen, oosten, noordoosten, en noordwesten. Een deel van de kamer wordt in beslag genomen door een groot blok keihard gesteente.", 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)) "Je bent door allerlei tunnels en gaten gekropen, en uiteindelijk weer in de hoofdgang terechtgekomen."; ]; Object -> "blok keihard gesteente" with description "Het is niets meer of minder dan een groot steenblok.", name "blok" "keihard" "gesteente" "groot", before [; LookUnder, Push, Pull, Take: "Je maakt een grapje natuurlijk."; ], has scenery neuter; ! ---------------------------------------------------------------------------- ! The Twopit Room area ! ---------------------------------------------------------------------------- ! Possible heights for the plant: ! ---------------------------------------------------------------------------- Constant TINY_P = 0; Constant TALL_P = 1; Constant HUGE_P = 2; Object At_West_End_Of_Twopit_Room "Westeinde van de Tweeschachtenkamer" with description "Je bevindt je aan het westeinde van de tweeschachtenkamer. Er zit een groot gat in de muur boven de schacht aan deze kant van de kamer.", e_to At_East_End_Of_Twopit_Room, w_to In_Slab_Room, d_to In_West_Pit, u_to "Het gat zit te hoog voor je om erbij te kunnen.", before [; Enter: if (noun==HoleAbovePit_1) "Het gat zit te hoog voor je om erbij te kunnen."; ]; Object PlantStickingUp "bonenstaak" with found_in At_West_End_Of_Twopit_Room At_East_End_Of_Twopit_Room, name "plant" "bonenstaak" "staak" "boon" "reus" "reuze" "klein" "kleine" "murmelend" "drie" "meter" "zestig" "3.60" "3.60m" "hoog" "hoge" "groot" "grote" "bulderend" "enorm" "enorme", describe [; if (Plant.height == TALL_P) "De top van een drie meter zestig lange bonenstaak steekt omhoog uit de westelijke schacht."; "Er groeit een enorme bonenstaak uit de westelijke schacht omhoog, tot aan het gat."; ], before [; Examine: RunRoutines(self,describe); rtrue; Climb: if (Plant.height==HUGE_P) <>; ], has absent static male; Object HoleAbovePit_1 "gat boven de schacht" with description "Het gat zit in de muur boven de schacht aan deze kant van de kamer.", name "gat" "groot" "grote" "boven" "schacht", found_in In_West_Pit At_West_End_Of_Twopit_Room has scenery neuter; Object In_West_Pit "In de Westelijke Schacht" with description "je staat op de bodem van de westelijke schacht in de tweeschachtenkamer. Er zit een groot gat in de muur, zo'n zeven-en-een-halve meter boven je.", before [; Climb: if (noun==Plant) rfalse; if (Plant.height == TINY_P) "er is hier niets om in te klimmen. Gebruik ~omhoog~ of ~naar buiten~ om de schacht te verlaten."; ], u_to At_West_End_Of_Twopit_Room has nodwarf; Object -> Plant "plant" with height TINY_P, name "plant" "bonenstaak" "staak" "boon" "reus" "reuze" "klein" "kleine" "murmelend" "drie" "meter" "zestig" "3.60" "3.60m" "hoog" "hoge" "groot" "grote" "bulderend" "enorm" "enorme", describe [; switch(self.height) { TINY_P: "Er staat een klein plantje in de schacht dat mompelt ~Water, water, ...~"; TALL_P: "Er strekt zich een drie meter zestig lange bonenstaak omhoog uit de schacht die dondert ~Water!! Water!!~"; HUGE_P: "Er staat hier een gigantische bonenstaak, die zich uitstrekt tot aan het gat in de muur."; } ], before [; Climb: switch(self.height) { TINY_P: "Het is maar een klein plantje!"; TALL_P: print "Je bent de plant ingeklommen, zo de schacht uit.^"; PlayerTo(At_West_End_Of_Twopit_Room); rtrue; HUGE_P: print "Je klautert de plant in en klimt snel door het gat.^"; PlayerTo(In_Narrow_Corridor); rtrue; } Take: "De plant heeft uitzonderlijk diepe wortels en laat zich niet zomaar lostrekken."; Water: if (bottle notin player) "Je hebt niets om de plant water mee te geven."; switch(child(bottle)) { nothing: "De fles is leeg."; oil_in_the_bottle: remove oil_in_the_bottle; "De plant schudt verontwaardigd de olie van z'n bladeren en vraagt: ~Water?~"; } remove water_in_the_bottle; switch((self.height)++) { TINY_P: print "De plant doormaakt in slechts enkele seconden een enorme groeispurt.^^"; give PlantStickingUp ~absent; TALL_P: print "De plant groeit explosief, de ruimte in de schacht vrijwel geheel opvullend.^^"; HUGE_P: print "Je hebt de plant teveel water gegeven! Hij schrompelt ineen. Hij is, hij is...^^"; give PlantStickingUp absent; remove PlantStickingUp; self.height = TINY_P; } <>; Oil: <>; Examine: self.describe(); rtrue; ]; Object At_East_End_Of_Twopit_Room "Oosteinde van de Tweeschachtenkamer" with description "Je bevindt je aan het oostelijke einde van de tweeschachtenkamer. De vloer is hier bezaaid met dunne rotsplaten, waardoor het gemakkelijk wordt de schacht af te dalen. Er is een pad dat om de twee schachten heenloopt en de uitgangen aan de oost- en westkant van de kamer verbindt. Er zijn overal gaten, maar het enige gat dat groot genoeg is om er doorheen te passen zit in de muur direct boven de westelijke schacht waar je er niet bij kunt.", e_to In_Swiss_Cheese_Room, w_to At_West_End_Of_Twopit_Room, d_to In_East_Pit; Object -> "dunne rotsplaten" with description "Ze vormen haast een natuurlijke trap de schacht in.", name "platen" "plaat" "rotsen" "trap" "treden" "dun" "rots" "rotsen" "rotsplaat" "rotsplaten", before [; LookUnder, Push, Pull, Take: "Je maakt een grapje natuurlijk. Je zou ze op moeten blazen."; ], has scenery multitude pluralname male; Object In_East_Pit "In de Oostelijke Schacht" with description "Je staat op de bodem van de oostelijke schacht in de tweeschachtenkamer. Er licht een plasje olie in een hoek van de schacht.", u_to At_East_End_Of_Twopit_Room has nodwarf; Object -> Oil "plasje olie" with name "plas" "plasje" "poel" "poeltje" "olie" "klein", description "Ziet eruit als gewone olie.", before [; Drink: "Absoluut niet."; Take: if (bottle notin player) "Je hebt niets om de olie in te vervoeren."; <>; Insert: if (second == bottle) <>; "Je hebt niets om de olie in te vervoeren."; ], has scenery neuter; Object "gat boven de schacht" with description "Het gat zit in de muur boven je.", name "gat" "groot" "grote" "boven" "schacht", found_in In_East_Pit At_East_End_Of_Twopit_Room has scenery neuter; Object In_Slab_Room "Plaatkamer" with description "Je bevindt je in een grote maar vrij lage ronde kamer waarvan de vloer bestaat uit een immense plaat die ooit van het plafond is komen vallen (vandaar de naam plaatkamer). In het oosten en westen waren ooit grote gangen, maar die zijn nu geheel opgevuld met rotsblokken. Kleine, lage gangen leiden naar het noorden en zuiden, en die in het zuiden buigt al snel naar het westen om de rotsblokken heen.", s_to At_West_End_Of_Twopit_Room, u_to In_Secret_N_S_Canyon_0, n_to In_Bedquilt; Object -> "plaat" with description "Die plaat vormt hier nu de vloer.", name "plaat" "immens" "rotsplaat" "immense", before [; LookUnder, Push, Pull, Take: "Je maakt zeker een grapje."; ], has scenery male; Object -> "rotsblokken" with description "het zijn doodgewone rotsblokken.", name "blok" "blokken" "rots" "rotsen" "stenen" "steen" "rotsblok" "rotsblokken", has scenery multitude pluralname neuter; ! ---------------------------------------------------------------------------- ! A small network of Canyons, mainly Secret ! ---------------------------------------------------------------------------- Object In_Secret_N_S_Canyon_0 "Geheim N/Z Ravijn" with description "Je bent in een geheim noord/zuid-ravijn, boven een grote kamer.", 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 "Geheim N/Z Ravijn" with description "Je bevindt je in een geheim noord/zuid-ravijn, boven een redelijk grote doorgang.", n_to At_Junction_Of_Three, d_to In_Bedquilt, s_to Atop_Stalactite; Object At_Junction_Of_Three "Kruispunt van drie geheime ravijnen." with description "Je bevindt je in een geheim ravijn bij een kruispint van drie ravijnen, die respectievelijk naar het noorden, zuiden en zuidoosten leiden. Het noordelijke ravijn is ongeveer even groot als de andere twee samen.", se_to In_Bedquilt, s_to In_Secret_N_S_Canyon_1, n_to At_Window_On_Pit_2; Object In_Large_Low_Room "Grote Lage Kamer" with description "Je kruipt een grote, lage kamer in. Je kunt hier in drie richtingen vandaan kruipen: noord, zuidoost en zuidwest.", sw_to In_Sloping_Corridor, se_to In_Oriental_Room, n_to Dead_End_Crawl; Object Dead_End_Crawl "Doodlopende Kruipgang" with description "Dit is een doodlopende gang. Of moet ik zeggen een doodkruipende gang?", s_to In_Large_Low_Room, out_to In_Large_Low_Room; Object In_Secret_E_W_Canyon "Geheim O/W Ravijn Boven een Nauw Ravijn" with description "je bevindt je in een geheim ravijn dat hier van het oosten naar het westen loopt. Hij kruist over een heel nauw ravijn heen, zo'n vier-en-een-halve meter lager. Als je hier naar beneden gaat, is de kans groot dat je niet meer terug omhoog kunt.", 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/Z Ravijn" with description "Je bevindt je op een breed punt in een overigens smal noord/zuid-ravijn.", s_to Canyon_Dead_End, n_to In_Tall_E_W_Canyon; Object Canyon_Dead_End "Doodlopend Ravijn" with description "Het ravijn wordt hier te nauw om verder zuidwaarts te gaan.", n_to In_N_S_Canyon; Object In_Tall_E_W_Canyon "In een Hoog O/W Ravijn" with description "Je bevindt je in een hoog oost/west-ravijn. Een lage, nauwe kruipruimte gaat bijna een meter naar het noorden en lijkt zich dan te verbreden.", e_to In_N_S_Canyon, w_to Dead_End_8, n_to In_Swiss_Cheese_Room; Object Atop_Stalactite "Bovenop een Stalactiet" with description "Een grote stalactiet hangt hier van het plafond naar beneden, bijna tot op de vloer. Je kunt erlangs naar beneden klimmen, en het laatste stukje springen, maar je zou zeker niet meer bij de stalactiet kunnen om er weer langs naar boven te klimmen.", 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 -> "stalactiet" with description "Je kunt er waarschijnlijk wel langs naar beneden klimmen, maar terug omhoog kun je wel vergeten.", name "stalactiet" "stalagmiet" "stalagtiet" "groot" "grote", before [; LookUnder, Push, Take: "Doe toch niet zo raar."; ], has scenery male; ! ---------------------------------------------------------------------------- ! Here be dragons ! ---------------------------------------------------------------------------- Object In_Secret_Canyon "Geheim Ravijn" with description "Je bevindt je in een geheim ravijn met uitgangen in het noorden en oosten.", e_to [; if (canyon_from == In_Secret_E_W_Canyon) return canyon_from; if (Dragon in location) "De draak ziet er nogal gemeen uit. Je kunt beter niet proberen langs haar te glippen."; return In_Secret_E_W_Canyon; ], n_to [; if (canyon_from == In_Secret_N_S_Canyon_0) return canyon_from; if (Dragon in location) "De draak ziet er nogal gemeen uit. Je kunt beter niet proberen langs haar te glippen."; 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; "Gefeliciteerd! Je hebt zojuist met je blote handen een draak verslagen! (ongelofelijk, is het niet?)"; } if (action==##No && Dragon has general) { give Dragon ~general; "Ik dacht al van niet."; } give Dragon ~general; ]; Object -> Dragon "draak" with description "Daar zou ik me maar verre van houden, als ik jou was.", name "draak" "monster" "beest" "hagedis" "groot" "groen" "fel" "schubbig" "enorm" "agressief" "grote" "groene" "felle" "schubbige" "enorme" "agressieve", initial "Een enorme, agressieve, groene draak blokkeert de weg!", life [; Attack: give Dragon general; "Met wat? Je blote handen?"; Give: "De draak is onvermurwbaar."; ThrowAt: if (noun~=axe) "Met je blote handen zou het waarschijnlijk nog beter gaan dan daarmee!"; move axe to location; "De bijl stuitert zonder ook maar enige schade te doen van de schubben van het beest weg."; ], has animate female; Treasure -> "Perzisch tapijt" with name "tapijt" "perzisch" "kleed" "mooi" "mooiste" "draak", depositpoints 14, before [; Take: if (Dragon in location) "Je zult er eerst voor moeten zorgen dat die draak weggaat!"; ], describe [; if (Dragon in location) "De draak ligt languit op het Perzische tapijt!"; "Het Perzische tapijt ligt hier netjes op de vloer."; ], has neuter; Object DragonCorpse "lijk van de draak" with initial "Het lijk van een enorme groene draak ligt hier, een beetje aan de kant", name "draak" "kijk" "dood" "groen" "draak" "lichaam", before [; Attack: "Je hebt al genoeg schade gedaan!"; ], has static female; ! ---------------------------------------------------------------------------- ! And more of the Alike Maze ! ---------------------------------------------------------------------------- DeadEndRoom Dead_End_8 with description "Het ravijn eindigt in een enorme massa rotsblokken -- doodlopend stuk.", 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 "Dit is het doodlopende stuk waar de piraat woont.", initial [; StopDaemon(Pirate); if (treasure_chest in self && treasure_chest hasnt moved) "Je hebt de schatkist van de piraat gevonden!"; ], has nodwarf; Treasure -> treasure_chest "schatkist" with depositpoints 12, description "Dit is de schatkist van de piraat, gevuld met onvoorstelbare rijkdommen!", initial "De schatkist van de piraat staat hier!", name "kist" "koffer" "schat" "rijkdommen" "piraat" "rijkdom" "schatkist"; ! ---------------------------------------------------------------------------- ! Above the beanstalk: the Giant Room and the Waterfall ! ---------------------------------------------------------------------------- Object In_Narrow_Corridor "In een Nauwe Gang" with description "Je bevindt je in een lange, nauwe gang die zich tot buiten je gezichtsveld uitstrekt naar het westen. Aan de oostkant is een gat waardoorheen je een overvloed aan bladeren ontwaart.", d_to In_West_Pit, w_to In_Giant_Room, e_to In_West_Pit, before [; Jump: deadflag=1; "Je valt en breekt je nek!"; ]; Object -> "bladeren" with description "Zo te zien zitten de bladeren vast aan de bonenstaak waar je ingeklommen bent om hier te komen.", article "een hoop", name "blad" "bladeren" "plant" "boom" "staak" "bonenstaak" "overvloed" "blaadjes", before [; Count: "69.105."; ! (I thank Rene Schnoor for counting them) ], has scenery; Object At_Steep_Incline "Steile Helling boven Grote Kamer" with description "Je bevindt je op de top van een steile helling boven een grote kamer. Je kunt hier naar beneden klimmen, maar je zou niet meer in staat zijn terug hierheen omhoog te klimmen. Een gang leidt terug naar het noorden.", n_to In_Cavern_With_Waterfall, d_to In_Large_Low_Room; Object In_Giant_Room "Reuzekamer" with description "Je bevindt je in de reuzekamer. Het plafond hier is te hoog om door je lamp beschenen te worden. Spelonken leiden oost, noord en zuid. Op de westmuur staat een inscriptie gekrabbeld: ~Fee fie foe foo~ [sic].", s_to In_Narrow_Corridor, e_to At_Recent_Cave_In, n_to In_Immense_N_S_Passage; Object -> "gekrabbelde inscriptie" with description "Er staat: ~Fee fie foe foo [sic].~", name "inscriptie" "boodschap" "krabbels" "gekrabbeld" "gekrabbelde" "bericht", has scenery male; Treasure -> golden_eggs "nest met gouden eieren" with depositpoints 14, description "Het nest is gevuld met prachtige gouden eieren!", initial "Er ligt hier een nest, vol gouden eieren!", name "eieren" "ei" "nest" "gouden" "goud" "prachtig" "prachtige", has multitude pluralname neuter; Object At_Recent_Cave_In "Recente Instorting" with description "deze gang is geblokkeerd door een recente instorting.", s_to In_Giant_Room; Object In_Immense_N_S_Passage "Immense N/Z Passage" with description "Je staat aan een uiteinde van een immense noord/zuid-passage.", s_to In_Giant_Room, n_to [; if (RustyDoor has locked) <>; if (RustyDoor hasnt open) { give RustyDoor open; print "(eerst de deur open wrikkend)^"; } return RustyDoor; ]; Object -> RustyDoor "roestige deur" with description "Het is gewoon een grote ijzeren deur.", name "deur" "scharnier" "scharnieren" "massief" "roestig" "roestige" "ijzer" "ijzeren", when_closed "De doorgang naar het noorden wordt geblokkeerd door een massieve, roestige, ijzeren deur.", when_open "De doorgang naar het noorden voert langs een massieve, roestige, ijzeren deur.", door_to In_Cavern_With_Waterfall, door_dir n_to, before [; Open: if (RustyDoor has locked) "De scharnieren zijn vreselijk verroest en de deur wil niet open."; Close: if (RustyDoor has open) "Met alle moeite die het gekost heeft om die deur open te krijgen, lijkt het me beter hem niet meer dicht te doen."; "Geen probleem -- hij is al dicht."; Oil: if (bottle in player && oil_in_the_bottle in bottle) { remove oil_in_the_bottle; give RustyDoor ~locked openable; "De olie heeft de scharnieren weer een klein beetje soepeler gaat, zodat de deur nu bewogen kan worden, alhoewel het je nog steeds wel moeite zal kosten."; } else "Je hebt niets om mee te oli@:en."; Water: if (bottle in player && water_in_the_bottle in bottle) { remove water_in_the_bottle; give RustyDoor locked ~open; "De scharnieren zijn nu flink doorgeroest en laten zich met geen mogelijkheid meer bewegen."; } else "Je hebt niets om mee te bewateren."; ], after [; Open: "Steunend en kreunend zwaait de deur langzaam open, een regen van roestdeeltjes verspreidend."; ], has static door locked; Object In_Cavern_With_Waterfall "In een Spelonk met een Waterval" with description "Je wandelt een schitterende spelonk binnen met een ruisende stroom, die zich als een spetterende waterval naar beneden stort een razende draaikolk in, die door een gat de grond in verdwijnt. Gangen leiden naar het zuiden en westen.", s_to In_Immense_N_S_Passage, w_to At_Steep_Incline; Object -> "waterval" with description "Daar zou ik me liever niet in een regenton vanaf laten vallen!", name "waterval" "draaikolk" "spetterend" "spetterende" "kolkend" "kolkende" "draaiend" "draaiende" "razend" "razende", has scenery male; Treasure -> trident "drietand ingelegd met juwelen" with description "De drietand is overdekt met fabelachtig mooie juwelen!", initial "Er ligt hier een met juwelen ingelegde drietand!", name "drietand" "juwelen" "ingelegd" "ingelegde" "fabelachtig" "fabelachtige" "mooi" "mooie", depositpoints 14 has male; ! ---------------------------------------------------------------------------- ! The caves around Bedquilt ! ---------------------------------------------------------------------------- Object In_Soft_Room "In de Zachte Kamer" with description "Je bent in de zachte kamer. De wanden zijn bedekt met zware gordijnen, en op de vloer ligt een dik, hoogpolig tapijt. Het plafond is helemaal begroeid met zacht mos.", w_to In_Swiss_Cheese_Room; Object -> "tapijt" with description "Het tapijt is gemaakt van een soort pluche.", name "tapijt" "kleed" "pluche" "zwaar" "dik" "zacht" "hoogpolig" "zware" "dikke" "zachte" "hoogpolige", has scenery neuter; Object -> "gordijnen" with description "Zo te horen absorberen ze ieder geluid.", name "gordijn" "gordijnen" "zwaar" "zware" "dik" "dikke", before [; Take: "Ga nou niet meteen de hele kamer overhoop halen!"; LookUnder, Search: "Je vindt niets spannends achter de gordijnen."; ], has scenery multitude pluralname neuter; Object -> "mos" with description "Ziet eruit als typisch, alledaags mos.", name "mos" "typisch" "alledaags" "zacht", before [; Take: "Het verpulvert helemaal in je handen."; ], has scenery edible neuter; Object -> velvet_pillow "fluwelen kussentje" with description "Het is slechts een klein fluwelen kussentje.", initial "Een klein fluwelen kussentje ligt op de vloer.", name "kussen" "kussentje" "fluweel" "fluwelen" "klein", has neuter; Object In_Oriental_Room "Orientaalse Kamer" with description "Dit is de Orientaalse kamer. Antieke oosterse grotschilderingen bedekken de muren. Een zacht glooiende gang leidt omhoog naar het noorden, een andere gang leidt naar het zuidoosten, en een kruipgang waar je nog net op handen en knie#:en doorheen kunt kruipen leidt naar het westen.", w_to In_Large_Low_Room, se_to In_Swiss_Cheese_Room, u_to In_Misty_Cavern, n_to In_Misty_Cavern; Object -> "antieke oosterse schilderingen" with description "Zo te zien zijn het afbeeldingen van mensen en dieren.", name "schilderijen" "schilderingen" "tekeningen" "kunst" "grottekeningen" "grot" "antiek" "oosters" "orientaals" "antieke" "oosterse" "orientaalse" "afbeelding" "afbeeldingen" "mensen" "dieren", has scenery multitude pluralname neuter; Treasure -> ming_vase "ming vaas" with description "Dat is een kwetsbare, kostbare, ming vaas!", name "vaas" "ming" "kwetsbaar" "kwetsbare" "kostbaar" "kostbare", depositpoints 14, after [; Drop: if (velvet_pillow in location) { print "(zachtjes op het fluwelen kussen terecht komend)^"; rfalse; } remove ming_vase; move shards to location; "De ming vaas valt op de grond en barst met een zacht knappend geluid in scherven."; ], before [; Attack: remove ming_vase; move shards to location; "Je hebt de vaas opgepakt en heel zachtjes en subtiel op de grond kapot gesmeten."; Receive: "De vaas is te fragiel om iets te kunnen bevatten."; ]; Object shards "wat waardeloze scherven porselein" with initial "De vloer is bezaaid met waardeloze scherven porselein.", description "Ze lijken de overblijfselen te zijn van wat eens een prachtige vaas geweest moet zijn. Ik vermoed dat een of andere kluns hem uit z'n handen heeft laten vallen.", name "porselein" "scherven" "overblijfselen" "vaas" "waardeloos" "waardeloze" "scherf" "aardewerk", has multitude pluralname male; Object In_Misty_Cavern "Mistige Spelonk" with description "Je volgt een breed pad rond de buitenste rand van een grote spelonk. Ver onder je, door een dichte witte mist heen, bereikt je een kabbelend geluid. De mist rijst door een breuk in het plafond verder omhoog. Paden leiden naar het zuiden en westen.", s_to In_Oriental_Room, w_to In_Alcove; Object -> "breuk" with description "Je kunt niet echt dichtbij genoeg komen voor een nauwkeurig onderzoek.", name "breuk" "plafond" has scenery male; ! ---------------------------------------------------------------------------- ! Plovers and pyramids ! ---------------------------------------------------------------------------- Object In_Alcove "Alcoof" with description "Je staat in een alkoof. Een klein paadje naar het noordwesten lijkt al snel breder te worden. Een bijzonder krappe tunnel leidt oostwaarts. Het ziet eruit of je je er met veel moeite misschien net doorheen zou kunnen persen. Aan de andere kant zie je een luguber licht.", 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; "Iets dat je bij je hebt past niet door de tunnel met je mee. Je kunt het beste je inventaris eens goed bekijken, en iets achterlaten."; ]; Object In_Plover_Room "Kievitskamer" with description "Je bevindt je in een klein vertrek waarin een luguber groen licht schijnt. Een bijzonder nauwe tunnel leidt naar het westen. Een donkere gang naar het noordoosten.", ne_to In_Dark_Room, w_to [ j; j=children(player); if (j==0 || (j==1 && egg_sized_emerald in player)) return In_Alcove; "Iets dat je bij je hebt past niet door de tunnel met je mee. Je kunt het beste je inventaris eens goed bekijken, en iets achterlaten."; ], before [; Plover: if (egg_sized_emerald in player) { move egg_sized_emerald to In_Plover_Room; score = score - 5; } PlayerTo(At_Y2); rtrue; Go: if (noun==out_obj) <>; ], has light; Treasure -> egg_sized_emerald "smaragd zo groot als een kievitsei" with depositpoints 14, article "een", description "Trouwens, kievitseieren zijn behoorlijk groot.", initial "Er ligt hier een smaragd zo groot als een kievitsei!", name "smaragd" "groot" "grote" "ei" "kievit" "kievitsei"; Object In_Dark_Room "De donkere kamer" with description "Je bevindt je in de donkere kamer. Een gang die naar het zuiden leidt is de enige uitgang.", s_to In_Plover_Room has nodwarf; Object -> "stenen tablet" with initial "Op een massieve stenen tablet dat in de muur is ingelegd lees je: ~Gefeliciteerd! Je hebt licht gebracht in de donkere kamer!~", name "tablet" "massief" "stenen" "steen" has static neuter; Treasure -> "platina piramide" with initial "Je ziet hier een platina piramide, met zijden van 20 centimeter!", depositpoints 14, description "De platina piramide heeft zijden van 20 centimeter elk!", name "platina" "piramide" "pyramide"; ! ---------------------------------------------------------------------------- ! North of the complex junction: a long up-down corridor ! ---------------------------------------------------------------------------- Object In_Arched_Hall "Gewelfde Zaal" with description "Je bent in een gewelfde zaal. Een gang van koraal leidde ooit naar het oosten, maar is nu geblokkeerd door puin. Het ruikt hier naar de zee.", d_to In_Shell_Room; Object In_Shell_Room "Schelpenkamer" with description "Je bevindt je in een grote kamer die in het stenen sediment is uitgehakt. De vloer en muren zijn bezaaid met stukjes schelp die in de steen liggen ingebed. Een zacht glooiende gang leidt omlaag en een wat stijlere leidt omhoog. Een lage gang waar je op handen en knie@:en net doorheen zou kunnen kruipen bereikt deze kamer vanuit het zuiden.", u_to In_Arched_Hall, d_to In_Ragged_Corridor, s_to [; if (giant_bivalve in player) { if (giant_bivalve has open) "Je kunt die anderhalve meter grote oester niet door dat kleine gangetje krijgen!"; else "Je kunt die anderhalve meter grote mossel niet door dat kleine gangetje krijgen!"; } return At_Complex_Junction; ]; Object -> giant_bivalve "reuzemossel" with name "reus" "reuze" "reusachtig" "reusachtige""mossel" "oester" "tweekleppige" "bivalv" "bivalve" "reuzemossel" "reuzeoester" "reuze-mossel" "reuze-oester", describe [; if (self has general) "Je ziet hier een enorme oester met z'n schelp stevig dicht."; "Je ziet hier een enorme mossel met z'n schelp stevig dicht."; ], before [; Examine: if (location==At_Ne_End or At_Sw_End) "Interessant. Het lijkt wel alsof er iets geschreven staat op de onderkant van de oester:^^ ~Er is iets vreemds met deze plek, waardoor een van de vervloekingen die ik altijd al gekend heb nu een ander effect heeft.~"; "Een reusachtige."; Open: "Je bent niet sterk genoeg om de mossel met je blote handen open te breken."; Unlock: if (second~=trident) print_ret (The) second, " is niet sterk genoeg om de mossel open te breken."; if (self has general) "De oester gaat krakend en knarsend open, maar er zit niets anders dan oester in. Hij klapt meteen weer dicht."; give self general; move pearl to In_A_Cul_De_Sac; "Er valt een glinsterende parel uit de mossel en rolt weg. Goeie genade, ik denk dat dit eigenlijk toch een oester is. (Ik ben nooit echt goed geweest in het determineren van tweekleppigen>) Wat het ook is, het heeft zichzelf nu weer dichtgeklapt."; Attack: "De schelp is erg sterk en ondoordringbaar ondanks je aanval."; ], has male; Treasure pearl "glinsterende parel" with description "Hij is ongelofelijk groot!", initial "Langs de kant ligt glinsterende parel!", name "parel" "glinsterend" "ongelofelijk" "ongelooflijk" "groot" "grote", depositpoints 14, has male; Object In_Ragged_Corridor "Onregelmatige Galerij" with description "Je loopt door een lange, hellende galerij met scherpe, onregelmatige muren.", u_to In_Shell_Room, d_to In_A_Cul_De_Sac; Object In_A_Cul_De_Sac "Doodlopende Gang" with description "Je bent een doodlopende gang van bijna twee en een halve meter breed ingewandeld.", u_to In_Ragged_Corridor, out_to In_Ragged_Corridor; ! ---------------------------------------------------------------------------- ! Witt's End: Cave under construction ! ---------------------------------------------------------------------------- Object In_Anteroom "In een Voorkamer" with description "Je staat in een voorkamer die uitkomt op een grote gang naar het oosten. Kleine gangetjes leiden naar het westen en omhoog. De sporen van recent graafwerk zijn overduidelijk aanwezig.", u_to At_Complex_Junction, w_to In_Bedquilt, e_to At_Witts_End; Object -> "sign" with initial "Een bordje in de lucht zegt ~Werk in uitvoering voorbij dit punt. Verdergaan op eigen risico. [Raadd Bouwbedrijf]~", name "bord" "raadd" "aannemer" "bedrijf" "bouwbedrijf" "bouw" "bordje", before [; Take: "Het hangt te ver boven je hoofd."; ], has static; Object -> "recente nummers van het ~Speleologisch Dagblad~" with name "recent" "nummer" "nummers" "tijdschrift" "speleologisch" "dagblad" "krant" "dagbladen" "kranten", initial "Er ligt een aantal recente nummers van het ~Speleologisch Dagblad~ op de grond.", description "Ik ben bang dat de tijdschriften in het Dwergs geschreven zijn.", article "een paar", after [; Take: if (location==At_Witts_End) score--; Drop: if (location==At_Witts_End) { score++; "Je bent echt ten einde raad."; } ], has multitude pluralname male; Object At_Witts_End "Ten Einde Raadd" with description "Je bent ten einde Raadd. In *alle* richtingen leiden gangen.", w_to "Je bent door allerlei kieren en gaten gekropen, en bent uiteindelijk op een recente instorting gestuit. Je bent nu terug in de hoofdgang.", before [; Go: if (noun~=w_obj && random(100)<=95) "Je bent door allerlei kieren en gaten gekropen en uiteindelijk weer in de hoofdgang beland."; PlayerTo(In_Anteroom); rtrue; ]; ! ---------------------------------------------------------------------------- ! North of the secret canyons, on the other side of the pit ! ---------------------------------------------------------------------------- Object In_Mirror_Canyon "In het Spiegelravijn" with description "Je bevindt je in een noord/zuid lopend ravijn van zo'n 7,5 meter breed ravijn. De vloer is bedekt met een witte mist die ergens in het noorden komt binnensijpelen. De wanden rijzen meer dan dertig meter omhoog. Van een punt te hoog boven je om het te kunnen zien hangt een enorme tweezijdige spiegel naar beneden, parallel aan en halverwege tussen de wanden van het ravijn.^^ In beide wanden kun je een klein raam onderscheiden, zo'n 15 meter boven je.", s_to In_Secret_N_S_Canyon_0, n_to At_Reservoir; Object -> "hangende spiegel" with description "De spiegel is duidelijk bedoeld om door dwergen gebruikt te worden, want die zijn, zoals je weet, buitengewoon ijdel.", name "spiegel" "enorm" "enorme" "hangend" "hangende" "dwergen" "tweezijdig" "twee" "zijdig" "tweezijdige", initial "De spiegel is duidelijk bedoeld om door dwergen gebruikt te worden, want die zijn, zoals je weet, buitengewoon ijdel.", before [; Attack, Remove: "Je kunt er hiervandaan niet bij."; ], has static male; Object At_Window_On_Pit_2 "Bij een Venster dat Uitziet op een Schacht" with description "Je staat bij een laag venster dat uitzicht biedt op een gigantische schacht. De vloer is juist zichtbaar, zo'n vijftien meter dieper. Flarden witte mist bedekken de bodem van de schacht, en worden naar links toe dikker. Sporen in het stof bij het venster getuigen van het feit dat hier onlangs nog iemand geweest is. Recht tegenover je aan de andere kant van de schacht is een soortgelijk venster dat uitzicht biedt op een verlichte kamer. Je ontwaart daar een schimmig figuur dat naar je terugstaart.", cant_go "De enige mogelijkheid is terug naar het westen, naar de kruising.", w_to At_Junction_Of_Three, before [; Jump: deadflag=1; "Je springt en breekt je nek!"; WaveHands: "De schimmige figuur zwaait terug!"; ]; Object At_Reservoir "Bij het reservoir" with description "Je staat aan de rand van een enorm ondergronds reservoir. Een ondoorzichtige wolk witte mist vult de kamer, en stijgt snel omhoog. Het meer wordt gevoed door een beek, die vanuit een gat in de muur zo'n drie meter boven je hoofd met donderend geraas in het water stort, ergens in de mist. De enige gang hiervandaan is degene terug naar het zuiden.", s_to In_Mirror_Canyon, out_to In_Mirror_Canyon, before [; Swim: "Het water is ijskoud, en je zou snel bevriezen."; ]; ! ---------------------------------------------------------------------------- ! The Chasm and the Troll Bridge ! ---------------------------------------------------------------------------- Object In_Sloping_Corridor "Hellende Gang" with description "Je bevindt je in een lange bochtige gang. Je kunt naar geen van beide kanten ver kijken vanwege de hellingshoek.", d_to In_Large_Low_Room, u_to On_Sw_Side_Of_Chasm, cant_go "De gang helt sterk naar boven en beneden."; Object On_Sw_Side_Of_Chasm "Aan de ZW-kant van de Afgrond" with description "Je staat aan @'e@'en kant van een grote, diepe afgrond. Een zware witte mist die van beneden op komt stijgen ontneemt je elk zicht op de overkant. Een zuidwestelijk pad leidt van de afgrond vandaan een bochtige galerij in.", ne_to CrossRicketyBridge, sw_to In_Sloping_Corridor, d_to In_Sloping_Corridor, cant_go "Het pad slingert naar het zuidwesten.", before [; Jump: if (RicketyBridge in self) "Met alle respect, ik zou willen voorstellen de brug te nemen in plaats van te springen."; deadflag=1; "Je hebt het niet gehaald."; ]; [ CrossRicketyBridge; if (Troll has general || Troll in nothing) { give Troll ~general; if (Bear.following_you) { remove Bear; remove self; give Wreckage ~absent; remove RicketyBridge; give RicketyBridge absent; StopDaemon(Bear); deadflag=1; "Juist als je de andere kant bereikt, buigt de brug door onder het gewicht van de beer, die jou nog steeds volgde. Je krabbelt wanhopig aan de rotswand voor steun, maar als de brug instort, struikel je achteruit en stort je in het ravijn."; } return RicketyBridge; } if (Troll in location) "De trol weigert je te laten oversteken."; move Troll to location; "De trol stapt onder de brug vandaan en blokkeert je weg."; ]; Object -> RicketyBridge "krakkemikkige brug" with description "Ziet eruit als een gewone brug, maar wel een heel krakkemikkige.", describe [; print "Een krakkemikkige brug strekt zich uit over de afgrond, waar hij verdwijnt in de mist.^^ Een bordje op de brug zegt: ~Stop! Betaal de trol!~^"; if (Troll notin location) "De trol is nergens te zien."; rtrue; ], name "brug" "krakkemikkig" "krakkemikkige" "onstabiel" "gammel" "gammele" "bruggetje" "onstabiele" "instabiele" "wankel" "wankele" "touw" "touwbrug", 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 male; Object -> -> Troll "stoere trol" with description "Trollen zijn nauw verwant aan rotsblokken en hebben een huid zo sterk als die van een rhinoceros.", initial "Een stoere trol staat bij de brug en eist dat je hem een schat toewerpt voordat je over mag steken.", name "trol" "stoer" "stoere", life [; Attack: "De trol lacht zich rot om je zielige poging hem te verwonden."; ThrowAt, Give: if (noun ofclass Treasure) { remove noun; move Troll to RicketyBridge; give Troll general; score=score-5; "De trol vangt je schat en snelt weg, buiten zicht."; } if (noun==tasty_food) "Vraatzucht is niet @'e@'en van de ondeugden van de trol. Gierigheid, daarentegen, wel."; "De trol vangt ", (the) noun, " handig op, kijkt er onderzoekend naar, en gooit ", (HijofHet) noun, " terug, terwijl hij zegt: ~Goed vakmanschap, maar niet waardevol genoeg.~"; Order: "Je hoopt op een gelukje?"; Answer, Ask: "Trollen hebben geen ontzettend goede communicatieve vaardigheden."; ], has animate; Object Wreckage "brokstukken van de brug" with initial "Je kunt de brokstukken van de trollenbrug (en een dode beer) zien liggen op de bodem van de afgrond.", name "brokstukken" "brokstuk" "brug" "dood" "dode" "beer", before [; "De brokstukken liggen te diep."; ], found_in On_Sw_Side_Of_Chasm On_Ne_Side_Of_Chasm has static absent multitude pluralname neuter; Object On_Ne_Side_Of_Chasm "Aan de NO-kant van de Afgrond" with description "Je bent aan de overkant van de afgrond. Een noordoostelijk pad leidt weg van deze kant van de afgrond.", sw_to CrossRicketyBridge, ne_to In_Corridor, before [; Jump: if (RicketyBridge in self) "Met alle respect, ik zou willen voorstellen de brug te nemen in plaats van te springen."; deadflag=1; "Je hebt het niet gehaald."; ], has nodwarf; Object In_Corridor "In een Galerij" with description "Je loopt door een lange oost/west-galerij. In de verte hoor je een zacht rommelend geluid.", w_to On_Ne_Side_Of_Chasm, e_to At_Fork_In_Path has nodwarf; ! ---------------------------------------------------------------------------- ! The Volcano ! ---------------------------------------------------------------------------- Object At_Fork_In_Path "Bij een Vertakking in de Weg" with description "Het pad vertakking hier. De linker tak leidt naar het noordoosten. Het doffe gerommel lijkt die kant op luider te worden. De rechter tak leidt naar het zuidoosten, ene zacht glooiende helling af. De hoofdtak komt uithet westen.", 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 "Bij een Driesprong met Warme Muren" with description "De muren zijn hier behoorlijk warm. Vanuit het noorden hoor je een een regelmatig gedreun, zo luid dat de hele grot lijkt te schudden op z'n grondvesten. Een ander pad leidt naar het zuiden, en een lage kruipgang naar het oosten.", 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 "Een Adembenemend Uitzicht" with description "Je bevindt je op een rand met een adembenemend uitzicht. Ver beneden je zie je een actieve vulkaan, waaruit dikke klodders gesmolten lava opwellen, om vervolgens weer de diepten in te storten. De gloeiende rots vult de spelonk tot in de verste uithoeken met een bloedrode gloed en verleent alles een spookachtige, macabere uitstraling. De lucht is vol flakkerende vonken van as en een zwaar aroma van zwavel. De muren zijn heet als je ze aanraakt, en het gebulder van de vulkaan verdrinkt alle andere geluiden. Ingebed in het getande gewelf ver boven je ontwaar je talloze gedraaide formaties, samengesteld uit puur wit albast, die het nevelige licht verstrooien tot sinistere spookverschijningen op de muren. Aan @'e@'en kant is een diepe kloof, gevuld met een bizarre chaos van gefolterde rotsen, die wel door de duivel zelf gecre@:eerd lijken. Een immense rivier van vuur stroomt vanuit de diepten van de vulkaan met donderend geraas neer, brandt zich een weg door de kloof en stort in een bodemloze put ergens ver weg aan je linkerhand. Rechts van je spuit een enorme geiser van vernietigende stoom continu de lucht in vanuit een schraal eilandje middenin het onheilspellend bubbelende zwavelmeer. De wand helemaal rechts staat in vuur en vlam met een gloed van zichzelf, hetgeen nog een extra duivelse pracht verleent aan de van zichzelf al helse aanblik. Een duistere, onheilspellende doorgang leidt naar het zuiden.", s_to At_Junction_With_Warm_Walls, out_to At_Junction_With_Warm_Walls, d_to "Doe niet zo mal!", before [; Jump: <>; ], has light; Object -> "actieve vulkaan" with description "Dikke klodders gesmolten lava wellen op uit de vulkaan, om vervolgens weer de diepten in te storten. De gloeiende rots vult de spelonk tot in de verste uithoeken met een bloedrode gloed en verleent alles een spookachtige, macabere uitstraling.", name "vulkaan" "rots" "actief" "bloed" "rood" "bloedrood" "rode" "bloedrode" "actieve" "gloed" "spookachtig" "spookachtige" "macaber" "macabere" has scenery male; Object -> "vonken van as" with description "De vonken zijn te ver bij je vandaan om ze goed te kunnen bekijken.", name "vonk" "vonken" "as" "lucht" "flakkerend" "flakkerende" "flakkerend" "flakkerende", has scenery multitude pluralname male; Object -> "getande gewelf" with description "Ingebed in het getande gewelf ver boven je ontwaar je talloze gedraaide formaties, samengesteld uit puur wit albast, die het nevelige licht verstrooien tot sinistere spookverschijningen op de muren", name "gewelf" "dak" "plafond" "formaties" "licht" "verschijning" "verschijningen" "spookverschijning" "spookverschijningen" "getand" "getande" "gedraaid" "gedraaide" "nevelig" "nevelige" "sinister" has scenery neuter; Object -> "diepe kloof" with description "De kloof is gevuld met een bizarre chaos van gefolterde rotsen, die wel door de duivel zelf gecre@:eerd lijken.", name "kloof" "chaos" "rots" "rotsen" "diep" "diepe" "bizarre" "gefolterd" "gefolterde" "bizar", has scenery male; Object -> "rivier van vuur" with description "De rivier van vuur stroomt vanuit de diepten van de vulkaan met donderend geraas neer, brandt zich een weg door de kloof en stort in een bodemloze put ergens ver weg aan je linkerhand.", name "rivier" "vuur" "diepte" "diepten" "put" "vurig" "bodemloos" "bodemloze" has scenery; Object -> "immense geiser" with description "De geiser van vernietigende stoom spuit continu de lucht in vanuit een schraal eilandje middenin het onheilspellend bubbelende zwavelmeer.", name "geiser" "stoom" "eiland" "eilandje" "meer" "immense" "immens" "vernietigend" "vernietigende" "schraal" "zwavelmeer" "bubbelende" "zwavel" "meer" "onheilspellend" "onheilspellende" "bubbelend" has scenery; Object In_Chamber_Of_Boulders "In het Vertrek van de Keien" with description "Je bent een klein vetrek gevuld met grote keien binnengekropen. De muren zijn ontzettend warm, waardoor de lucht in de kamer om te smoren zo heet is. De enige uitgang uit deze verstikkende kamer is een kruipgang naar het westen, waardoorheen je een diep gerommel hoort.", w_to At_Junction_With_Warm_Walls, out_to At_Junction_With_Warm_Walls has nodwarf; Object -> "keien" with description "Het zijn doodgewone grote keien. Ze zijn warm.", name "kei" "keien" "rots" "stenen" "groot" "grote", before [; Push, Pull, LookUnder: "Je zou ze op moeten blazen."; ], has scenery multitude pluralname male; Treasure -> "zeldzame specerijen" with name "specerijen" "specerij" "kruid" "kruiden" "zeldzaam" "zeldzame" "exotisch" "exotische", depositpoints 14, article "een selectie", before [; Smell, Examine: "Ze ruiken wonderbaarlijk exotisch!"; ], has multitude pluralname male; Object In_Limestone_Passage "In een Kalkstenen Galerij" with description "Je wandelt door een zachtjes glooiende noord-zuid-galerij met wanden van vreemd gevormde kalksteenformaties.", 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 -> "kalksteenformaties" with description "Zo nu en dan trekt een bijzonder vreemde formatie je aandacht.", name "formaties" "vorm" "vormen" "formatie" "kalksteen" "kalk" "steen" "formaties" "kalksteenformatie" "kalksteenformaties" "gevormd" "gevormde" "vreemd" "vreemdgevormde" "vreemde" "vreemdgevormd" has scenery multitude pluralname male; ! ---------------------------------------------------------------------------- ! If you go down to the woods today... ! ---------------------------------------------------------------------------- Object In_Front_Of_Barren_Room "Voor een Kale Kamer" with description "Je staat bij de ingang van een grote, kale kamer. Een bordje dat boven de ingang hangt, zegt: ~Pas op! Beer in de kamer!~", w_to In_Limestone_Passage, u_to In_Limestone_Passage, e_to In_Barren_Room, in_to In_Barren_Room has nodwarf; Object -> "waarschuwingsbordje" with description "Het bordje zegt: ~Pas op! Beer in de kamer!~", name "bord" "bordje" "kamer" "leeg" "kaal" "kale" "lege" "waarschuwing" "waarschuwingsbord" "waarschuwingsbordje" has scenery neuter; Object In_Barren_Room "In een Kale Kamer" with description "Je bent in een kale kamer aangeland. Het midden van de kamer is volstrekt leeg, op wat stof na. Sporen in het stof leiden naar het verre eind van de kamer. De enige uitgang is de weg waarlangs je binnengekomen bent.", w_to In_Front_Of_Barren_Room, out_to In_Front_Of_Barren_Room has nodwarf; Object -> "stof" with description "Het ziet er precies zo uit als gewoon stof.", name "stof" "sporen" "spoor" has scenery; Object -> Bear "grote holenbeer" with following_you false, angry true, describe [; if (self.following_you) "Je wordt gevolgd door een grote, tamme beer."; if (self.angry) "Een woeste holenbeer staat je aan te staren vanuit de andere kant van de kamer!"; if (location==In_Barren_Room) "Een zachtaardige holenbeer zit rustig in een hoekje."; "Niet ver bij je vandaan wandelt een tevreden uitziende holenbeer rond."; ], name "beer" "groot" "grote" "tam" "tamme" "woest" "woeste" "hol" "holen" "holenbeer", life [; Attack: if (axe in player) <>; if (self.angry == false) "De beer is verward; hij wil alleen maar vriendjes zijn."; "Met wat? Je blote handen? Tegen *zijn* berenhanden??"; ThrowAt: if (noun~=axe) <>; if (self.angry == false) "De beer is verward; hij wil alleen maar vriendjes zijn."; move axe to location; give axe general; "De bijl mist en landt vlakbij de beer waar je er niet bij kunt."; Give: if (noun == tasty_food) { give axe ~general; remove tasty_food; self.angry = false; "De beer schrokt je voedsel gulzig op, waarna hij behoorlijk kalmeert, en zelfs tamelijk vriendelijk wordt."; } if (self.angry == false) "De beer lijkt niet erg ge@:interesseerd in je aanbod."; "Oh-oh -- je aanbod maakt de beer alleen maar bozer!"; Order, Ask, Answer: "Dit is een beer met een erg klein brein."; ], before [; Examine: print "De beer is uitzonderlijk groot, "; if (self.angry == false) "maar ziet er vriendelijk uit."; "en ziet er vervaarlijk uit!"; Take, Catch: if (self.angry) "Je maakt zeker een grapje!"; if (golden_chain has locked) "De beer zit nog aan de muur geketend."; self.following_you = true; StartDaemon(Bear); "Ok, de beer volgt je nu, waar je ook gaat."; Drop, Release: if (self.following_you == false) "Wat?"; self.following_you = false; StopDaemon(Bear); if (Troll in location) { remove Troll; "De beer waggelt log naar de trol toe, die een verbaasde gil slaat, en wegrent. De beer geeft de achtervolging al gauw op en wandelt weer terug."; } "De beer wandelt bij je vandaan."; ], daemon [; if (location==thedark) rfalse; if (self in location) { if (location==At_Breath_Taking_View) "^The beer brult van vreugde."; rfalse; } move self to location; "^The beer waggelt log achter je aan."; ], has animate male; Treasure -> golden_chain "gouden ketting" with depositpoints 14, describe [; if (self has locked) "De beer wordt vastgehouden door een massief gouden ketting."; "Er ligt een massief gouden ketting opgerold op de vloer!"; ], description "De ketting bestaat uit dikke schakels van massief goud!", name "ketting" "schakel" "schakels" "keten" "ketenen" "massief" "goud" "gouden" "dik" "ketens" "massieve", with_key set_of_keys, before [; Take: if (self has locked) { if (Bear.angry) "Hij zit vastgeketend aan de woeste beer!"; "Hij zit vastgeketend aan de vriendelijke beer."; } Unlock: if (Bear.angry) "Er is geen enkele mogelijkheid om langs de beer te komen zodat je de ketting los kunt maken, en dat is waarschijnlijk ook maar beter zo."; Lock: if (self hasnt locked) "Het mechamisme wil niet meer op slot."; ], after [; Unlock: "Je haalt het slot van de ketting, en laat de tamme beer vrij."; ], has lockable locked male; ! ---------------------------------------------------------------------------- ! The Different Maze ! ---------------------------------------------------------------------------- Class DiffMazeRoom with short_name "Doolhof"; DiffMazeRoom Different_Maze_1 with description "Je bent in een doolhof van kronkelende kleine paadjes, allemaal verschillend.", 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 "Je bent in een klein doolhof van kronkelende paadjes, allemaal verschillend.", 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 "Je bent in een doolhof van kronkelende kleine paadjes, allemaal verschillend.", 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 "Je bent in een klein doolhof van kronkelige paadjes, allemaal verschillend.", 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 "Je bent in een kronkelend doolhof van kleine paadjes, allemaal verschillend.", 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 "Je bent in een kronkelend klein doolhof van paadjes, allemaal verschillend.", 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 "Je bent in een kronkelig klein doolhof van paadjes, allemaal verschillend.", 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 "Je bent in een kronkelig doolhof van kleine paadjes, allemaal verschillend.", 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 "Je bent in een klein kronkelig doolhof van paadjes, allemaal verschillend.", 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 "Je bent in een doolhof van kleine kronkelende paadjes, allemaal verschillend.", 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 "Je bent in een doolhof van kleine kronkelige paadjes, allemaal verschillend.", 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 "Doodlopend Pad, Vlakbij een Automaat", description "Je hebt een doodlopend pad bereikt. Er staat hier een imposante automaat.", n_to Different_Maze_2, out_to Different_Maze_2 has nodwarf; Object -> "boodschap in het stof" with description "De boodschap zegt: ~Dit is niet het doolhof waar de piraat zijn schatkist achterlaat.!", name "boodschap" "krabbel" "krabbels" "geschrijf" "geschrift" "bericht" "bloemrijk" "gekrabbeld" "geschreven" "handschrift", initial "Hmmm... er is hier een boodschap in het stof geschreven in een bloemrijk handschrift.", has scenery male; Object -> VendingMachine "automaat" with description "De instructies op de automaat zeggen: ~Stop munten in de gleuf om nieuwe batterijen te krijgen.~", name "machine" "gleuf" "automaat" "imposant" "imposante" "batterij" "batterijen" "munt" "munten", before [; Receive: if (noun==rare_coins) { move fresh_batteries to location; remove rare_coins; "Kort nadat je de munten in de gleuf hebt gestopt, maakt de automaat een krakend geluid, en een stel nieuwe batterijen valt aan je voeten."; } "De automaat lijkt ontworpen om munten te accepteren."; Attack: "De automaat is behoorlijk stevig en overleeft je aanval zonder zelfs maar een krasje op te lopen."; LookUnder: "Je vindt niets onder de automaat."; Search: "Je kunt niet in de automaat komen."; Take: "De automaat is veel te zwaar om hem te kunnen bewegen."; ], has scenery male; Object fresh_batteries "nieuwe batterijen" VendingMachine with description "Ze zien eruit als doodgewone batterijen. (Een grafstem zegt: ~Ze doen het nog!~)", initial "Er liggen hier nieuwe batterijen.", name "batterijen" "batterij" "nieuw" "nieuwe", before [; Count: "Een aantal."; ]; Object old_batteries "opgebruikte batterijen" with description "Ze zien eruit als doodgewone batterijen.", initial "Een paar opgebruikte batterijen liggen hier achtergelaten op de grond.", name "batterijen" "batterij" "gebruikt" "op" "opgebruikt", before [; Count: "Een aantal."; ]; ! ---------------------------------------------------------------------------- ! Dwarves! ! ---------------------------------------------------------------------------- Object dwarf "dreigende kleine dwerg" with name "dwerg" "dreigend" "dreigende" "gemeen" "gemene" "klein" "kleine" "gevaarlijk" "gevaarlijke", description "Het is waarschijnlijk geen goed idee om te dicht bij te komen. Laten we het er maar op houden dat de kleine man behoorlijk agressief is.", initial "Een dreigende kleine dwerg zit verstopt in de schaduwen.", 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--; "Er verschijnt een dwerg, maar met een enkele nonchalante ademstoot vernietigt de draak hem!"; } move dwarf to location; "Er komt een dreigende kleine dwerg tevoorschijn uit de schaduwen!"; } 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 "^De dwerg sluipt achter je aan...^"; } else { remove dwarf; return; } } if (random(100)<=75) { new_line; if (self hasnt general) { move axe to location; give self general; remove self; "De dwerg gooit een gemene kleine bijl naar je, mist, vloekt, en rent weg."; } if (location==In_Mirror_Canyon) "De dwerg bewondert zichzelf in de spiegel."; print "De dwerg gooit een gemeen klein mes naar je, "; if (random(1000)<=95) { deadflag=1; "en raakt!"; } "maar mist!"; } if (random(3)==1) { remove dwarf; "^De dwerg wordt het zat, en glipt weg."; } ], before [; Kick: "Je schopt de dwerg door de kamer. Hij vloekt, staat vervolgens weer op, en stoft zichzelf af. Nu is hij bozer dan ooit!"; ], life [; ThrowAt: if (noun==axe) { if (random(3)~=1) { remove self; move axe to location; self.number--; "Je hebt een kleine dwerg gedood! Het lichaam verdwijnt in wolk vettige zwarte rook."; } move axe to location; "Mis! De dwerg duikt weg uit, en de bijl suist langs hem heen."; } <>; Give: if (noun==tasty_food) "Jij dwaas! Dwergen eten alleen steenkool! Nu heb je hem pas *echt* kwaad gemaakt!"; "De dwerg is in het geheel niet ge@:interesseerd in je aanbod. (De reden is, misschien, dat als hij je doodt hij toch alles wat je hebt kan inpikken.)"; Attack: "Niet met je blote handen. Oh nee."; ], has animate male; Object axe "dwergenbijl" with name "bijl" "klein" "kleine" "dwerg" "dwergen" "dwergenbijl", initial "Er ligt hier een kleine bijl.", description "Het is gewoon een kleine bijl.", before [; if (axe hasnt general) rfalse; Examine: "Hij ligt naast de beer."; Take: "Vergeet het maar. Hij ligt vlak naast de woeste beer, er kan je wel wat overkomen!"; ], has male; ! ---------------------------------------------------------------------------- ! Two brushes with piracy ! ---------------------------------------------------------------------------- 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) "^Er verschijnt een piraat met een woeste baard, maar zodra hij ook maar een glimp van de dwerg opvangt, rent hij weer weg."; 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); "^Er klinken vaag ritselende geluiden uit de duisternis achter je. Als je je ernaar omdraait, zie je een piraat met een woeste baard. Hij draagt een grote kist.^^ ~Alle landrotten in een kraaiennest!~ roept hij, ~Ik ben gezien! Ik kan beter met volle zeilen weg hier naar't doolhof en me kist verbergen!~^^ En daarmee verdwijnt hij het duister in."; } 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; } "^Vanuit de schaduwen achter je sprint een piraat met een woeste baard tevoorschijn! ~Har, har,~ grinnikt hij, ~Ik zal al deze buit maar meenemen en verstoppen in me kist diep in het doolhof!~ Hij kaapt je schat weg en verdwijnt het duister in."; ]; ! ---------------------------------------------------------------------------- ! The cave is closing now... ! ---------------------------------------------------------------------------- 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); "^Een grafstem galmt door de grot en zegt: ~De grot sluit over enkele ogenblikken. Alle avonturiers dienen ogenblikkelijk te vertrekken door het hoofdkantoortje.~"; ]; 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 "^De grafstem intoneert: ~De grot is nu gesloten.~ Als de echo wegsterft is er een verblindende lichtflits (en een klein wolkje oranje rook). . .^^ Als je je ogen weer scherpgesteld krijgt, kijk je rond...^"; PlayerTo(At_Ne_End); ]; ! ---------------------------------------------------------------------------- ! The End Game ! ---------------------------------------------------------------------------- Object At_Ne_End "NO-deel van het Magazijn" with description "Je bevindt je in het noordoostelijke deel van een enorme kamer, nog groter dan de reuzekamer. Het lijkt wel een soort magazijn voor het ~Avontuur~ programma. Enorme toortsen ver boven je hoofd baden de kamer in een rokerig geel licht. Verspreid om je heen zie je een stapel flessen (allemaal leeg), een kwekerij vol jonge bonenstaakjes die zachtjes mompelen, een oesterbed, een bundel zwarte staven met roestige sterren aan een uiteinde, en een collectie koperen lantaarns. Aan @'e@'en kant ligt een enorme horde dwergen te slapen op de vloer, luid snurkend. Een bordje er vlakbij zegt: ~De dwergen niet storen!~", sw_to At_Sw_End has light; Object -> "gigantische spiegel" with description "Het lijkt een gewone, alhoewel enorm grote, spiegel.", name "spiegel" "gigantisch" "gigantische" "groot" "grote" "hangend" "hangende" "ijdel" "ijdelheid" "dwerg" "dwergen" "dwergenspiegel", initial "Een gigantische spiegel hangt aan een van de muren, en strekt zich uit helemaal tot het andere uiteinde van de kamer, waar je allerhande andere objecten vaag in de verte kunt ontwaren.", found_in At_Ne_End At_Sw_End, before [; Attack: print "Je raakt de spiegel met een galmende klap, waarop hij in duizenden kleine scherfjes uit elkaar knalt.^^"; SleepingDwarves.wake_up(); rtrue; ], has static male; Object -> "collectie materialen voor het spel ~Avontuur~" with description "Je hebt alles wat hier ligt al gezien, zij het dan in een wat andere context.", name "spullen" "troep" "materiaal" "materialen" "toortsen" "objecten" "adventure" "magazijn" "enorm" "divers" "diverse" "avontuur" "adventure-spel", before [; Take: "Je realiseert je dat door alle buit hier weg te halen, je het spel voor toekomstige spelers verpest, dus laat je alle ~Avontuur~ materialen gewoon liggen."; ], has scenery male; Object -> SleepingDwarves "slapende dwergen" with description "Ik zou de dwergen niet lastig vallen, als ik jou was.", name "dwerg" "dwergen" "slapend" "slapende" "snurkend" "snurkende" "slapend" "slapende", article "honderden boze", before [; Take: "Wat, allemaal?"; ], life [; WakeOther: print "Je port de dichtsbijzijnde dwerg, die knorrig wakker wordt, @'e@'en blik op je werpt, vloekt, en z'n bijl grijpt.^^"; self.wake_up(); rtrue; Attack: self.wake_up(); rtrue; ], wake_up [; deadflag=1; "Het resulterende rumoer heeft alle dwergen wakker gemaakt. Er zijn nu hordes dreigende kleine dwergen bij je in de ruimte! De meesten gooien messen naar je. Allemaal raken ze je!"; ], has animate scenery multitude pluralname; Object At_Sw_End "ZW-deel van het Magazijn" with description "Je bevindt je in het zuidwestelijke deel van het magazijn. Aan @'e@'en kant is een kuil vol agressieve groene slangen. Aan de andere kant een rij kleine tenen kooitjes, met in elk daarvan een klein pruilend vogeltje. In een hoek zie je een bundel zwarte staven met roestige sterren aan een uiteinde. Een enorm aantal fluwelen kussens ligt verspreid over de vloer. Een gigantische spiegel strekt zich uit richting het noordoosten. Aan je voeten zie je een groot stalen rooster, waarnaast een bordje hangt dat zegt: ~SCHATKAMER. Sleutels in het hoofdkantoor.~", d_to RepositoryGrate, ne_to At_Ne_End has light; Object -> RepositoryGrate "stalen rooster" with name "gewoon" "staal" "stalen" "rooster" "hek", description "Ziet eruit als een gewoon stalen rooster.", when_open "Het rooster is open.", when_closed "Het rooster is dicht.", door_dir d_to, door_to Outside_Grate, with_key 0 has static door locked openable; Object -> "collectie materialen voor het spel ~Avontuur~" with description "Je hebt alles wat hier ligt al gezien, zij het dan in een wat andere context.", name "spullen" "troep" "materiaal" "materialen" "kuil" "objecten" "adventure" "magazijn" "enorm" "divers" "diverse" "avontuur" "adventure-spel" "slangen" "agressief" "groen" "slang", before [; Take: "Je realiseert je dat door alle buit hier weg te halen, je het spel voor toekomstige spelers verpest, dus laat je alle ~Avontuur~ materialen gewoon liggen."; ], has scenery male; Object -> black_mark_rod "zwarte staf met een roestplek aan een uiteinde." with description "Het is een negentig centimeter lange staf met een roestplek aan een uiteinde.", initial "Er ligt hier een negentig centimeter lange staf met een roestplek aan een uiteinde.", name "staf" "zwart" "roestig" "plek" "negentig" "centimeter" "90" "cm" "90cm" "dynamiet" "opblazen", before [; Wave: "Er gebeurt niets."; ]; ! ---------------------------------------------------------------------------- ! Some entry points ! ---------------------------------------------------------------------------- [ Initialise; location=At_End_Of_Road; score = 36; StartDaemon(dwarf); StartDaemon(pirate); StartDaemon(cave_closer); print "^^^^^Welkom bij ~Avontuur~!^^"; ]; [ PrintRank; print ", hetgeen je de rang oplevert van "; if (score >= 348) "Grootmeester der Avonturiers!"; if (score >= 330) "Meester, eerste klas."; if (score >= 300) "Meester, tweede klas."; if (score >= 200) "Junior Meester."; if (score >= 130) "Doorgewinterde Avonturier."; if (score >= 100) "Ervaren Avonturier."; if (score >= 35) "Avonturier."; if (score >= 10) "Beginner."; "Amateur."; ]; [ DarkToDark; if (dark_warning == false) { dark_warning = true; "Het is nu stikdonker. Als je doorgaat is de kans groot dat je in een gat valt."; } if (random(4) == 1) { deadflag = 1; "Je bent in een gat gevallen en hebt ieder bot in je lichaam gebroken."; } rfalse; ]; ! ---------------------------------------------------------------------------- ! Menu-driven help (not really a part of the game itself) ! ---------------------------------------------------------------------------- [ HelpMenu; if (menu_item==0) { item_width=8; item_name="Over Avontuur"; if (deadflag==2) return 4; else return 3; } if (menu_item==1) { item_width=6; item_name="Instructies"; } if (menu_item==2) { item_width=4; item_name="Geschiedenis"; } if (menu_item==3) { item_width=6; item_name="Authenticiteit"; } if (menu_item==4) { item_width=7; item_name="Wist je dat..."; } ]; [ HelpInfo; if (menu_item==1) { print "Ik ken plaatsen, acties en dingen. Je kunt me leiden door commando's te gebruiken die uit volledige zinnen bestaan. Om te bewegen kun je commando's proberen als ~ga naar binnen,~ ~oost,~ ~west,~ ~noord,~ ~zuid,~ ~omhoog,~ ~omlaag,~ ~ga het gebouw in,~ ~klim in de paal,~ etc.^^"; print "Ik ken een aantal speciale objecten, zoals bijvoorbeeld een zwarte staf verborgen in de grot. Deze objecten kunnen gemanipuleerd worden middels enkele acties die ik ken. Doorgaans zul je een werkwoord in combinatie met een zelfstandig naamwoord (tezamen met bijvoeglijke naamwoorden voor zover gewenst), maar soms begrijp ik uit de context wel welk object je bedoelt. Zo begrijp ik soms ook welk werkwoord je bedoelt aan de hand van het lijdend voorwerp dat je gebruikt: als je bijvoorbeeld ~inventaris~ zegt, dan begrijp ik dat je ~neem inventaris~ bedoelt, en geef ik je een lijst van alles wat je bij je hebt. Sommige objecten hebben overigens bijwerkingen: zo is het vogeltje bijvoorbeeld bang voor de staf.^^"; print "Veel commando's hebben afkortingen. Je kunt bijvoorbeeld ~i~ typen in plaats van ~inventaris,~ ~x object~ in plaats van ~onderzoek object,~ ~n~ in plaats van ~noord,~ etc.^^"; print "Gewoonlijk moet je, als je problemen hebt met bewegen, gewoon een paar andere woorden proberen. Heb je daarentegen geen succes met het manipuleren van voorwerpen, dan is het meestal zo dat je iets probeert te doen dat jouw (of mijn!) capaciteiten te boven gaat. Je kunt dan beter iets heel anders proberen.^^"; print "Merk op dat de gangen in de grotten nogal veel draaien. Daardoor is het niet altijd zo dat als je een ruimte naar het noorden verlaten hebt, je de volgende ruimte vanuit het zuiden betreedt.^^"; print "Als je je avontuur voortijdig wilt be@:eindigen, type dan ~einde~. Om je avontuur tijdelijk te onderbreken, zodat je later weer verder kunt, kun je ~opslaan~ typen, en om een opgeslagen spel weer te vervolgen, type je ~inladen~. Om te zien hoe goed je ervoor staat, type je ~score~. Om het volledige aantal punten voor een schat te krijgen, moet je hem veilig achterlaten in het gebouw, maar een deel van de punten krijg je al voor het vinden van de schat. Je verliest punten als je doodgaat of het spel voortijdig be@:eindigt. Van deze twee is doodgaan ernstiger in termen van punten dan ophouden. Je krijgt ook punten gebaseerd op hoeveel van de grot je daadwerkelijk hebt weten te onderzoeken; in het bijzonder krijg je een flinke bonus voor het @:uberhaupt binnengaan van de grot (om de beginners van de rest van de meute te kunnen onderscheiden), en er zijn andere methodes om te bepalen of je je door enkele andere meer pijnlijke stukken hebt weten te slaan.^^"; print "Als je denkt dat je alle schatten gevonden hebt, blijf dan toch nog een tijdje verder verkennen. Als er niets interessants gebeurt, heb je ze nog niet allemaal gevonden. Als er *wel* iets interessants gebeurt, betekent dat dat je een bonus krijgt en een kans om nog meer punten te verzamelen in het stuk voor de meesteravonturiers.^^"; "Veel succes!"; } if (menu_item==2) { print "Vermoedelijk was de eerste avonturier ooit een mulatto slaaf genaamd Stephen Bishop, geboren zo rond 1820: `tenger, gracieus en zeer knap'; een `snelle, dappere, enthousiaste' gids voor de Mammoetgrot (Mammoth Cave) in de Kentucky Karst. Het verhaal van de Grot is een merkwaardige miniversie van de Amerikaanse geschiedenis. Z'n ontdekking is onderwerp van een legende uit de jaren 1790; men zegt dat een jager, John Houchin, een gewonde beer achtervolgde naar een diepe kuil nabij de Groene Rivier (Green River) en "; print "bij toeval de ingang ontdekte. De ingang zat vol vleermuizen, en er werd ten tijde van de Oorlog van 1812 intensief guano geoogst, dat opgelost werd in vaten nitraat om zo salpeter te maken voor de productie van buskruit. Na de oorlog daalden de prijzen, maar de Grot werd een ondergeschikte attractie toen vlakbij een uitgedroogde Indiaanse mummie werd gevonden, rechtop gezeten in een stenen sarcofaag, omringd door talismannen. In 1815 werd Veulenhoef, zoals ze genoemd werd vanwege @'e@'en van de amuletten, meegenomen door een circus, en trok ze door heel Amerika volle zalen (een tour die wel doet denken aan het lied `De Legende van Andrew McCrew' van Don McLean). Zijzelf eindigde in het Smithsonian museum, maar de Grot werd vanaf de jaren 1820 @'e@'en van de wonderen van de wereld genoemd, grotendeels dankzij haar posthume inspanningen.^^"; print "Gedurende de eerste helft van de negentiende eeuw waren de Europese grotten grote toeristische attracties, maar vrijwel niemand bezocht de Mammoet, `wereldwonder' of niet. Ook was het toen nog geen bijzonder uitgestrekt stelsel (de naam was een overblijfsel van de arbeiders die pochten over hun mammoetoogsten guano). In 1838 kocht de eigenaar van Stephen Bishop de grot op. Stephen, zoals hij (gebruikelijk voor slaven) altijd werd genoemd, was hoe je het ook wendde of keerde een bijzonder man: hij had zichzelf Latijn en Grieks geleerd en werd beroemd als de `opperste heerser' van zijn onderaardse rijk. Hij "; print "verkende en benoemde veel van het gangenstelsel in zijn vrije tijd, waardoor de kaart van de bekende delen in een jaar tijd tweemaal zo groot werd. De kenmerkende stijl van de namen van delen van de Grot - half thuisgebakken Amerikaans, half klassiek - begin met Stephen: de Rivier de Styx, de Sneeuwbalkamer, Kleine Vleermuis Galerij, het Reuzengewelf. Stephen vond vreemde blinde vissen, slangen, stille krekels, de overblijfselen van holenberen (woeste, speelse dieren van anderhalve meter lang en @'e@'en meter twintig hoog die aan het eind van de vorige ijstijd uitstierven), eeuwenoude Indiaanse gipsbeelden en almaar meer grot. Zijn kaart uit 1842, geheel uit z'n hoofd getekend, werd veertig jaar later nog steeds gebruikt.^^"; print "Als een toeristenattractie (en, daar Stephen's eigenaar een filantroop was, kortstondig een sanatorium voor tuberculose vanwege een hopeloze medische theorie) werd de Grot big business: decennia lang werden de eigendomsrechten van nabijgelegen grotten woest geclaimd en eindeloos bevochten. De naburige keten, dwars door Houchin's Vallei (Houchin's Valley) in de Vuursteen Bergrug (Flint Ridge) opende de Grote Onyx Grot (Great Onyx Cave) in 1912. In de jaren 1920 waren de Kentucky grottenoorlogen "; print "in volle gang. Rivaliserende eigenaars misleidden toeristen met nep politieagenten, huurden stromannen in om elkaars rondleidingen te verpesten, brandden kaartverkoophuisjes plat, en verspreidden lasterpraat en valse advertenties. Grotonderzoek werd zo gevaarlijk en heimelijk, dat in 1941 de Amerikaanse regering ingreep, en grote delen van het gebied tot Nationaal Park verklaarde, en in effecto grotonderzoek verboden. De Goudkoorts van de toeristen was, toch al, tanende.^^"; print "In de overtuiging dat de Mammoet en Flint Ridge grotten allemaal op elkaar aansloten tot een enorm grottenstelsel probeerden onderzoekers jarenlang geheime ingangen, uiteindelijk zelfs met offici@:ele steun. In de jaren 1960 eindigden alle doorgangen vanuit Flint Ridge tot ieders frustraties in verstoppingen van keien. Een natuurkundige met het `postuur van een rietstengel', Patricia Crowther, boekte de doorbraak in 1972 toen ze door de Nauwe Plek wist te geraken, en een modderige gang aantrof: het was een verborgen gang de Mammoetgrot in.^^"; print "Vanwege de bepalingen in het testament van zijn eigenaar, werd Stephen Bishop in 1856 een vrij man. Op dat moment telde de grot 226 galerijen, 47 gewelven, 23 schachten en 8 watervallen. Hij stierf een jaar later, nog voordat hij zijn vrouw en zoon kon vrijkopen. In de jaren 1970 werd Crowther's modderige doorgang op zijn kaart aangetroffen.^^"; print "De Mammoetgrot is enorm, en zijn totale grootte is nog steeds onderwerp van speculatie (schattingen varieren van 500 tot 800 kilometer). Hoewel dit spel vaak ~Colossal Cave~ genoemd is, is het eigenlijk een simulatie van de Bedquilt Grot regio. Hier is Will Crowther's verhaal over hoe het allemaal zo gekomen is:^^"; print "~Ik was indertijd betrokken geweest bij een computerloos rollenspel genaamd ~Dungeons and Dragons~, en ik ben ook een actief grotonderzoeker geweest - met name de Mammoetgrot in Kentucky. Plotseling raakte ik in echtscheiding, en dat liet me op vele manieren niet onberoerd. Bovenal miste ik mijn kinderen. Ook was ik gestopt met het grottenonderzoek, omdat het te gevaarlijk was geworden, dus besloot ik dat ik wat op de computer zou klooien en een programma schrijven dat mijn grotonderzoek opnieuw zou cre@:eren in een soort fantasie, en meteen ook een spel kon zijn voor de kinderen, misschien zelfs met wat elementen uit mijn ervaring met het spelen van Dungeons and Dragons.^^"; print "Mijn idee was dat dit een computerspel zou worden dat niet intimiderend zou zijn voor niet-computer mensen, en dat was @'e@'en van de redenen dat ik het spel zo maakte, dat de speler het spel met het invoeren van natuurlijke taal bestuurt, in plaats van met meer gestandaardiseerde commando's. Mijn kinderen vonden het erg leuk.~ [Geciteerd in ~Genesis II: Creation and Recreation with Computers~, Dale Peterson (1983).]^^"; print "Crowther's oorspronkelijke FORTRAN programma had iets van vijf schatten, maar geen formeel scoresysteem. De uitdaging was vooral om te onderzoeken, ondanks tegenstand was van bijvoorbeeld een slang. Zoals de echte Bedquilt regio heeft Crowther's spel een kaart van zo'n vier diepteniveaus en is rijk in geologische details. Een goed voorbeeld is de oranje zuil die afdaalt naar de Oranje Riviersteenkamer (waar de vogel woont): de echte zuil is van oranje travertijn, een prachtig mineraal dat in natte kalksteen gevonden wordt.^^"; print "Het taalgebruik van het spel is beladen met verwijzingen naar grotonderzoek, zoals `gewelven' en `schachten'. Een `platte steen kamer', bijvoorbeeld, is een heel oude grot waarvan het plafond is begonnen af te brokkelen in scherpe schilfers die in een vreemdsoortige berg op de grond verspreid liggen. Het gebruik dat het programma van het woord `kamer' maakt voor de meest uiteenlopende soorten grotten en ruimtes doet in het dagelijks taalgebruik wellicht wat onzorgvuldig aan, "; print "maar is wijdverbreid in het wereldje van grotonderzoekers en gaat zeker zover terug als Stephen Bishop: het gebruik van het woord `kamer' in de betekenis `ruimte' of `locatie' is wellicht zelfs zijn erfenis.^^"; print "Het spel zette de beslissende stap naar het oplossen van puzzels toen Don Woods, een student aan de Universiteit van Stanford, de fouten uit het spel haalde, en het uitbreidde. Hij verdrievoudigde het aantal schatten, en voegde alle niet-geologische zones toe: alles vanaf de Trollenbrug en verder, benevens de meeste voorkamertjes op het Bedquilt niveau. Elk van de vele imitaties en uitbreidingen van het originele Adventure zijn in essentie gebaseerd op de 350-punten editie van Woods. (veel opgeblazen, gecorrumpeerde of uitgebreide - het hangt er vanaf hoe je het bekijkt - versies circuleren op het internet, en de meest handige manier om ze te identificeren is middels de hoogst bereikbare score. Er bestaan vele versies met maximumscores van rond de 400 en 500, en een enkele van 1000. Woods zelf brengt ook nog steeds regelmatig nieuwe versies van zijn spel uit; de meeste anderen missen zijn talent.)^^"; print "Alhoewel het spel zich weg van de pure simulatie heeft ontwikkeld, is een groot deel ervan toch nog steeds realistisch. Grotonderzoekers keren daadwerkelijk terug wanneer hun carbidlampen flakkeren; er zijn inderdaad mysterieuze merktekens en initialen te vinden op de muren van de grot, sommige achtergelaten door arbeiders, anderen door Bishop, en weer anderen door onderzoekers uit de jaren 1920. Er is natuurlijk geen actieve vulkaan in centraal Kentucky, en evenmin zijn daar draken en dwergen. Maar zelfs deze verfraai@:ingen zijn, in zekere zin, afgeleid "; print "van tradities: zoals veel van de eerste rollenspellen heeft `Adventure' veel te danken aan J. R. R. Tolkien's `The Hobbit' en de doorgang door de bergen en Moria uit `The Lord of the Rings' (volgens sommigen de meest dramatische en atmospherische passage). Tolkien zelf, de meest succesvolle mythe-maker van de twintigste eeuw, werkte naar voorbeelden van IJslandse, Finse en Welshe sagen.^^"; print "In 1977 circuleerden overal tapes met `Adventure', onder anderen dankzij de Digital gebruikersgroep DECUS: het spel verslond lunchpauzes en weekends waar het ook maar kwam... maar dat is een ander verhaal. (Tracy Kidder's fantastische boek `De ziel van een nieuwe machine', de visie van een journalist op een mainframe ontwikkelgroep, brengt het goed onder woorden.)^^"; "dit is een kopie uit de derde of vierde hand: van Will Crowther's origineel naar Donald Woods' 350-punten editie en via Donald Ekman's PC-versie naar David M. Baggett's uitstekende TADS versie (1993), naar deze mooie Inform-implementatie van Graham Nelson, die ik weer in het Nederlands vertaald heb.^^"; } if (menu_item==3) { print "Deze versie is behoorlijk trouw aan het origineel. De puzzels, voorwerpen en plaatsen van Woods' oorspronkelijke 350-punten versie zijn exact hetzelfde hier.^^"; print "Ik heb hier en daar een paar behulpzame mededelingen toegevoegd zoals ~Dit is een doodlopende gang.~, en een aantal ~initiele positie~ mededelingen van objecten, zoals het (nogal suffe)^ ^ Hier ligt wat smakelijk voedsel.^^ van broncodebestanden die zeker oud zijn, doch niettemin van bedenkelijk allooi. Ze lijken echter uitstekend bij de verdere tekststijl te passen.^^"; print "Het scoresysteem is hetzelfde als het origineel, behalve dat je niet langer 4 punten verliest als je het spel voortijdig be@:eindigt (je krijgt de score namelijk toch niet te zien wanneer je een Inform-spel be@:eindigt, dus dit maakt geen enkel verschil) en, iets controversi@:eler, ik vergeef alvast vijf punten voor het meedragen van een schat, zoals enkele versies uit het begin van de jaren 1980 deden. De enige significante verandering is dat men de magische woorden niet kan gebruiken totdat hun bestemmingen bezocht zijn.^^"; print "De dwergen zijn wat eenvoudiger in hun bewegingen, maar aan de andere kant heb ik weer enkele boodschappen toegevoegd waardoor ze een betere interactie met de rest van het spel hebben. De waarschijnlijkheden zijn hetzelfde als in het oorspronkelijke spel.^^"; print "In het originele spel kan men de naam van een kamer typen om deze te bezoeken: omwille van de bondigheid van de broncode heb ik deze mogelijkheid achterwege gelaten, maar niet zonder enige spijt.^^"; print "De tekst zelf is vrijwel overal intact gehandhaafd, maar ik heb enkele spellings- en grammaticale fouten verbeterd (en enkele totaal misleidende en welhaast magische opmerkingen veranderd). De instructies zijn op enkele punten gewijzigd (de redenen hiervoor lijken me duidelijk) maar zijn in principe zoals ze geschreven waren.^^"; "Een goede bron voor details is de broncode van David Bagget, welke op het internet beschikbaar is."; } print "Wist je dat...^^"; print "De vijf dwergen een kans van 96% hebben om je te volgen, behalve naar het licht, de schachten in of wanneer ze zichzelf bewonderen: en die gemene rotmesjes hebben een trefkans van 9.5%.^^"; print "Draken verbranden dwergen (wellicht doordat dwergen uitsluitend steenkool eten).^^"; print "De beer (die van de vulkaan houdt) is te zwaar voor de brug... en je kunt terug gaan naar de plaats des onheils nadat je weer tot leven gewekt bent.^^"; print "Je kunt langs de slang glippen het geheime Oost/West ravijn in, althans in 35% van de gevallen. En in het donker rondlopen is helemaal niet zo griezelig: je hebt slechts 25% kans in een schacht te pletter te vallen.^^"; print "De vaas vindt het niet leuk om te worden ondergedompeld.^^"; print "Schaduwachtige figuren kunnen naar elkaar zwaaien.^^"; print "Water over de scharnieren van de deur gieten zorgt ervoor dat ze weer vastroesten.^^"; print "Wanneer de grot sluit gaat het rooster op slot, en worden de sleutels weggegooid. De schepsels rennen weg en de kristallen brug verdwijnt...^^"; print "...en een compleet zinloze hint staat geschreven op de schelp van de oester in het eindspel. (Om deze hint iets eerlijker te maken, heb ik @'e@'en woord veranderd, en enkele suggesties elders in het spel geplaatst.)^^"; "Dat laatste stomme punt kun je krijgen door... maar nee. Dan zou ik teveel verklappen."; ]; [ HelpSub; if (deadflag~=2) DoMenu("Er is informatie beschikbaar over de volgende onderwerpen:^ ^ Instructies voor het spelen ^ Een historische inleiding ^ Hoe authentiek is deze versie?^", HelpMenu, HelpInfo); else DoMenu("Er is informatie beschikbaar over de volgende onderwerpen:^ ^ Instructies voor het spelen ^ Een historische inleiding ^ Hoe authentiek is deze versie? ^ Wist je dat...^", HelpMenu, HelpInfo); ]; [ Amusing; HelpSub(); ]; ! ---------------------------------------------------------------------------- ! New verbs (to add to the library stock) ! ---------------------------------------------------------------------------- [ CatchSub; "Je kunt ", (the) noun, " niet vangen."; ]; [ ReleaseSub; "Je kunt ", (the) noun, " vrijlaten."; ]; [ WaterSub; if (bottle in player) <>; "Water? Welk water?"; ]; [ OilSub; if (bottle in player) <>; "Olie? Welke olie?"; ]; [ OnSub; if (brass_lantern notin player) "Je hebt geen lamp."; <>; ]; [ OffSub; if (brass_lantern notin player) "Je hebt geen lamp."; <>; ]; [ XyzzySub; "Er gebeurt niets."; ]; [ PlughSub; "Er gebeurt niets."; ]; [ PloverSub; "Er gebeurt niets."; ]; [ FeeSub; FthingSub(0); ]; [ FieSub; FthingSub(1); ]; [ FoeSub; FthingSub(2); ]; [ FooSub; FthingSub(3); ]; [ FthingSub i; if (feefie_count~=i) { feefie_count=0; "Doe het wel goed, kluns!"; } if (feefie_count++ == 3) { feefie_count=0; if (golden_eggs in In_Giant_Room) "Er gebeurt niets."; if ((golden_eggs in player) || (golden_eggs in location)) print "Het nest gouden eieren is verdwenen!^"; else print "Gedaan!"; 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) "^^Plotseling verschijnt er vanuit het niets een nest vol gouden eieren!"; } else "Ok."; ]; [ CountSub; if (noun has multitude) "Dat zijn er behoorlijk veel."; "Ik zie @'e@'en (1) ", (name) noun, "."; ]; [ UseSub; "Je zult iets explicieter moeten zijn dan je nu bent."; ]; [ BlastWithSub; if (second~=black_mark_rod) "Om iets op te blazen heb je dynamiet nodig."; "Heb je weer van die rare brownies gegeten?"; ]; [ OldMagicSub; "Goede poging, maar dat is een oud, versleten toverwoord."; ]; [ KickSub; <>; ]; ! For kicking dwarves [ BlastSub; if (location~=At_Sw_End or At_Ne_End) "Frustrerend, is het niet?"; if (location==At_Sw_End && parent(black_mark_rod)==At_Ne_End) { score=score+35; deadflag=2; "Er volgt een luide explosie en een zes meter groot gat verschijnt in de muur aan de overkant, de dwergen begravend onder het puin. Je loopt door het gat heen en komt terecht in het hoofdkantoor, waar een juichende groep elfen de zegevierende avonturier wegdragen, de zonsondergang tegemoet."; } if (location==At_Ne_End && parent(black_mark_rod)==At_Sw_End) { score=score+20; deadflag=1; "Er volgt een luide explosie, en een zes meter groot gat verschijnt in de muur aan de overkant, de slangen begravend onder het puin. Een rivier van gesmolten lava stroomt naar binnen door het ontstane gat, en vernietigt alles op z'n pad, inclusief jou!"; } deadflag=1; "Er volgt een luide explosie, en plotseling ben je uitgesmeerd over alle wanden van de ruimte."; ]; ! ---------------------------------------------------------------------------- ! Resurrection ! ---------------------------------------------------------------------------- [ AfterLife o; if (deadflag==3) { deadflag=1; rfalse; } print "^^"; if (caves_closed) "Het ziet ernaar uit dat je dood bent. Nu ja, met het oog op het feit dat het toch bijna sluitingstijd is, denk ik dat we er voor vandaag maar een eind aan moeten maken."; switch(deaths) { 0: print "Oh jee, het lijkt erop dat je jezelf de dood in hebt gejaagd. Ik zou je misschien kunnen helpen, maar ik heb dat eerlijk gezegd nooit eerder gedaan. Wil je dat ik probeer je te re@:incarneren?^^"; 1: print "Jij onhandige kluns! Je hebt het alweer voor elkaar! Ik weet niet hoe lang ik dit vol kan houden. Wil je dat ik je nog een keer probeer te re@:incarneren?^^"; 2: print "Nu heb je het echt voor elkaar! Al m'n oranje rook is op! Je verwacht toch zeker geen fatsoenlijke re@:incarnatie zonder oranje rook, wel?^^"; } print "> "; if (YesOrNo() == false) { switch(deaths) { 0: "Uitstekend."; 1: "Waarschijnlijk een verstandige keuze."; 2: "Ik dacht het niet!"; } } switch(deaths) { 0: print "Goed dan. Maar het is niet mijn schuld als er iets fout g......^^^^ --- POEF!! ---^^ Je wordt overspoeld door een dichte wolk oranje rook. Hoestend en proestend kom je uit de rok tevoorschijn en je ziet dat je....^"; 1: print "Ok, waar heb ik mijn oranje rook ook al weer gelaten?.... >POEF!< ^^Alles verdwijnt in een dichte wolk van oranje rook.^"; 2: "Ok, als je dan zo slim bent, doe het dan maar lekker zelf! Ik ga er vandoor!"; } 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) { o=child(player); move o to real_location; if (o ofclass Treasure) score=score-5; } } move brass_lantern to At_End_Of_Road; give brass_lantern ~on ~light; remove dwarf; deadflag=0; PlayerTo(Inside_Building); ]; ! ---------------------------------------------------------------------------- ! How to cheat in the test version: no dwarves or pirates, and magic words ! working from the beginning ! ---------------------------------------------------------------------------- #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 "GrammarD"; Verb "aan" * -> On; Extend only "uit" replace * -> Off; Verb "vang" "jaag" * creature -> Catch * creature "met" held -> Catch; Verb "bevrijd" "vrij" "laat" * creature -> Release * creature "vrij" -> Release * "vrij" creature -> Release; Verb "giet" "schenk" "doof" * "water" "op"/"in" noun -> Water * "olie" "op"/"in" noun -> Oil * noun -> Empty; Extend only "geef" * "water" "aan" noun -> Water; Verb "water" "bewater" "begiet" * noun -> Water; Verb "olie" "vet" "smeer" * noun -> Oil * noun "in" -> Oil; Verb "plugh" * -> Plugh; Verb "xyzzy" * -> Xyzzy; Verb "plover" "plevier" "kievit" * -> Plover; Verb "sesam" "shazam" "hocus" "abracadabra" "foobar" "sesam-open-u" "frotz" * -> OldMagic; Verb "fee" * -> Fee; Verb "fie" * -> Fie; Verb "foe" * -> Foe; Verb "foo" * -> Foo; Verb "help" * -> Help; Extend only "schop" replace * noun -> Kick; Verb "tel" * noun -> Count; Verb "gebruik" * -> Use; Verb "ontplof" * -> Blast * "op" -> Blast * noun "met" held -> BlastWith * noun "op" "met" held -> BlastWith; Extend only "blaas" * -> Blast * "op" -> Blast * noun "met" held -> BlastWith * noun "op" "met" held -> BlastWith; #IFDEF TEST_VERSION; Verb "xdeterm" * -> Xdeterm; #ENDIF; ! ----------------------------------------------------------------------------