! ---------------------------------------------------------------------------- ! Abent 961209 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 ! Übersetzt ins Deutsche: 5.4.98 ! ---------------------------------------------------------------------------- ! Constant TEST_VERSION; Constant Story "ABENTEUER"; Constant Headline "^Das Interaktive Original^ Von Will Crowther (1973) und Don Woods (1977)^ Rekonstruiert in drei Schritten von:^ Donald Ekman, David M. Baggett (1993) und Graham Nelson (1994)^ @:Ubersetzt ins Deutsche von Toni Arnold (1998)^ [In memoriam Stephen Bishop (1820?-1857): GN]^"; !Serial "990620"; Release 5; 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; Include "./Lib_ext/Dirs_2G.h"; Include "./Lib_ext/goto/gotog.h"; ! ---------------------------------------------------------------------------- ! 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; } "Genommen!"; Drop: score=score-5; if (location==Inside_Building) { score=score+self.depositpoints; "Sicher deponiert."; } ]; ! ---------------------------------------------------------------------------- ! The outside world ! ---------------------------------------------------------------------------- Class AboveGround has light nodwarf; AboveGround At_End_Of_Road "Am Ende der Strasse" with description "Du stehst am Ende einer Strasse vor einem kleinen Backsteinhaus. Rundherum ist Wald. Ein kleiner Bach fliesst aus dem Haus und eine Rinne hinunter.", 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 "gully" "weg" "strasse" "pfad"; Object Brunnenhaus with name "brunnen" "haus" "backstein" "gebaeude" "klein" "brunnenhaus", dekl 4, short_name "Brunnenhaus", description "Es ist ein kleines Geb@:aude aus Backstein. Es sieht aus wie ein Brunnenhaus.", found_in At_End_Of_Road At_Hill_In_Road Inside_Building has neuter scenery; Object Stream with name "bach" "wasser" "fluss" "see" "klein" "gluckernd" "plaetschernd" "rauschend" "blubbernd" "reservoir", short_name "Bach", dekl 1, 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: "Du hast einen Schluck von dem Bach getrunken. Das Wasser schmeckt stark nach Mineralien, aber es ist nicht schlecht. Es ist extrem kalt."; Take: if (bottle notin player) "Du hast nichts worin du das Wasser tragen k@:onntest."; <>; Insert: if (second == bottle) <>; "Du hast nichts worin du das Wasser tragen k@:onntest."; Receive: if (noun == ming_vase) { remove ming_vase; move shards to location; score=score-5; "Durch den pl@:otzlichen Temperaturwechsel ist die empfindliche Vase zersprungen."; } if (noun == bottle) <>; remove noun; if (noun ofclass Treasure) score=score-5; print_ret (gDer) noun, " schwimmt den Bach hinunter."; ], has male scenery; Object Strasse with name "Strasse" "Weg" "Pfad" "Schmutz", dekl 9, short_name "Strasse", description "Die Strasse ist schmutzig und nicht asphaltiert.", found_in At_End_Of_Road At_Hill_In_Road In_Forest_2 has female scenery; Object Wald with name "wald" "waeldchen" "baum" "baeume" "eiche" "ahorn" "kiefer" "fichte" "birke" "esche" "jung" "buesche" "blaetter" "beer" "massiv", dekl 4, short_name "Wald", description "Der Wald besteht haupts@:achlich aus massiven Eichen und Ahorn, dazwischen hat es verstreut Fichten und Birken. Es hat ein wenig Unterholz, vor allem junge Birken und Eschen, und einige unbestimmte B@:usche verschiedenr Sorten. Die Jahreszeit ist gut ersichtlich an all den herumliegenden Bl@:attern, aber ein Durchkommen ist ganz gut m@:oglich, wenn du die Fichten und Beerenb@:usche umgehst.", found_in At_End_Of_Road At_Hill_In_Road In_A_Valley In_Forest_1 In_Forest_2 has male scenery multitude; AboveGround At_Hill_In_Road "Auf einem H@:ugel auf der Strasse" with description "Du bist auf einen H@:ugel hinaufgegangen, immer noch im Wald. Die Strasse f@:allt ab auf die andere Seite des H@:ugels. In der Ferne siehst du ein Geb@:aude.", e_to At_End_Of_Road, n_to At_End_Of_Road, d_to At_End_Of_Road, s_to In_Forest_1; ! name "rinne" "strasse" "weg" "pfad"; Object -> Huegel with description "Es ist ganz einfach ein typischer H@:ugel.", dekl 2, short_name "H@:ugel", name "huegel" "erhebung" "erhoehung" "anhoehe", has male scenery; Object -> Seite with dekl 9, article definit, adj "ander", short_name "Seite", post "des H@:ugels", description "Warum nicht selbst erkunden?", name "seite" "andere" "des" has female scenery; AboveGround Inside_Building "Im Innern des Hauses" with description "Du bist im Innern eines Hauses, ein Brunnenhaus f@:ur eine grosse Quelle.", cant_go "Der Bach fliesst aus einem Paar ungef@:ahr dreissig Zentimeter dicken Wasserrohren. Der einzige Ausgang liegt im Westen.", before [; Enter: if (noun==Spring or SewerPipes) "Der Bach fliesst aus einem Paar ungef@:ahr dreissig Zentimeter dicken Wasserrohren. Es w@:are ratsam, den Ausgang zu benutzen."; 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 "Die Rohre sind zu klein."; Object -> Spring "Quelle" with name "quelle" "gross", dekl 9, description "Der Bach fliesst aus einem Paar ungef@:ahr dreissig Zentimeter dicken Wasserrohren.", has female scenery; Object -> SewerPipes with name "rohr" "ein" "dick" "wasser" "rohr" "wasserrohre", dekl 1, short_name "Wasserrohr", adj "Paar ungef@:ahr dreissig Zentimeter dick", description "Zu klein. Der einzige Ausgang ist im Westen." has neuter scenery; ! Artikel von Paar Object -> set_of_keys with description "Es ist nur ein ganz normaler Schl@:usselbund.", initial "Es liegen hier einige Schl@:ussel am Boden.", before [; Count: "Etwa ein Dutzend Schl@:ussel."; ], dekl 1, short_name "Schl@:usselbund", name "schluessel" "schluesselbund" "bund" has male; Object -> tasty_food with description "Es sieht lecker aus!", dekl 2, short_name "Essen", adj "schmackhaft", article "", initial "Es hat hier schmackhaftes Essen.", name "essen" "ration" "schmackhaft" "lecker" "wunderbar", after [; Eat: "Wunderbar!"; ], has neuter edible; Object -> brass_lantern with name "lampe" "blechlampe" "scheinwerder" "laterne" "licht" "glaenzend" "blech", adj "blechern", short_name "Laterne", dekl 9, when_off "Es hat hier eine gl@:anzende Blechlampe.", when_on "Deine Lampe ist hier. Sie leuchtet hell.", 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; "Ich bin so frei und tausche die Batterien aus."; } ], 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 "Deine Lampe ist ausgegangen."; if (fresh_batteries notin player && location hasnt light) { deadflag=3; " Du kannst die H@:ohle ohne eine Lampe nicht erforschen. Also h@:ore besser damit auf."; } else self.replace_batteries(); new_line; rtrue; } if (t==30) { print "Deine Lampe wird schw@:acher."; if (fresh_batteries has general) " Du hast auch keine Ersatzbatterien mehr. Du solltest besser zusammenpacken."; if (fresh_batteries in VendingMachine && Dead_End_14 has visited) " Du solltest besser einpacken, es sei denn, du findest neue Batterien. Ich m@:ochte dich daran erinnern, dass es einen Automaten gibt im Labyrinth. Nimm einige M@:unzen mit."; if (fresh_batteries notin VendingMachine or player or location) " Du kehrst besser zur@:uck, um diese Batterien zu holen."; new_line; rtrue; } } ], before [; Examine: print "Es ist eine gl@:anzende Blechlampe"; if (self hasnt on) ". Sie ist im Augenblick aus."; if (self.power_remaining < 30) ", die schwach leuchtet."; ", die hell leuchtet."; Burn: <>; Rub: "Die elektrische Lanmpe zu reiben ist nicht besonders lohnend. Wie auch immer, nichts aufregendes passiert.."; SwitchOn: if (self.power_remaining <= 0) "Ungl@:ucklicherweise sieht es so aus als ob die Batterien entladen w@:aren."; Receive: if (noun == old_batteries) "Diese Batterien sind entladen; sie sind zu nichts mehr n@:utze."; if (noun == fresh_batteries) { self.replace_batteries(); rtrue; } "Das einzige, was du sinnvollerweise in die Lampe tun kannst, ist ein neues Paar Batterien."; ], after [; SwitchOn: give self light; StartDaemon(self); SwitchOff: give self ~light; ], has female switchable; Object -> bottle with adj "klein", dekl 9, short_name "Flasche", name "flasche" "flaeschlein" "glas", initial "Es hat hier eine leere Flasche.", before [; LetGo: if (noun in bottle) "Du hast das bereits, und zwar in der Flasche."; Receive: if (noun == stream or Oil) <>; else "Die Flasche ist auschliesslich dazu gedacht, mit Fl@:ussigkeiten gef@:ullt zu werden."; Fill: if (child(bottle) ~= nothing) "Die Flasche ist bereits voll."; if (stream in location || Spring in location) { move water_in_the_bottle to bottle; "Die Flasche ist nun voll Wasser."; } if (Oil in location) { move oil_in_the_bottle to bottle; "Die Flasche ist nun voll @:Ol."; } "Es hat hier nichts um die Flasche zu f@:ullen."; Empty: if (child(bottle) == nothing) "Die Flasche ist schon leer!"; remove child(bottle); "Die Flasche ist nun leer und der Boden ist nass."; ], has female container open; Object water_in_the_bottle with dekl 9, adj "abgef@:ullt", short_name "Wasser", article "", name "abgefuellt" "wasser" "h2o", before [; Drink: remove water_in_the_bottle; <>; ], description "F@:ur mich sieht das aus wie normales Wasser.", has neuter; Object oil_in_the_bottle with dekl 1, adj "abgef@:ullt", article "", short_name "@:Ol", name "oel" "abgefuellt" "schmier" "schmieroel" "fett" "schmierfett", before [; Drink: <>; ], description "F@:ur mich sieht das aus wie normales @:Ol."; AboveGround In_Forest_1 "Im Wald" with description "Du bist mitten im Wald mit einem tiefen Tal auf einer Seite.", 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 "Im Wald" with description "Du bist mitten im Wald in der N@:ahe eines tiefen Tales und einer Strasse.", 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 einem Tal" with description "Du bist in einem Tal im Wald neben einem Bach, welcher ein steiniges Bett hinunterfliesst.", 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 "Tal"; Object -> bachbett with name "bett" "bachbett" "felsig" "fels" "klein" "stein" "steinig" "nackt" "trocken", short_name "Bachbett", dekl 1, has neuter scenery; AboveGround At_Slit_In_Streambed "Ein Spalt im Bachbett" with description "Zu deinen F@:ussen pl@:atschert das ganze Wasser des Baches durch einen f@:unf Zentimeter breiten Spalt im Fels hinunter. Bachabw@:arts ist das Bachbett nackter Felsen.", n_to In_A_Valley, e_to In_Forest_1, w_to In_Forest_1, s_to Outside_Grate, d_to "Du passt nicht durch einen f@:unf Zentimeter breiten Spalt!", in_to "Du passt nicht durch einen f@:unf Zentimeter breiten Spalt!"; Object -> Spalt with dekl 3, adj "f@:unf Zentimeter breit", short_name "Spalt", name "spalt" "fuenf" "zentimeter", description "Es ist bloss ein f@:unf Zentimeter breiter Spalt im Felsen, durch den das Wasser fliesst.", before [; Enter: "Du passt nicht durch einen f@:unf Zentimeter breiten Spalt!"; ], has male scenery; AboveGround Outside_Grate "Vor dem Gitter" with description "Du bist in einer sieben Meter messenden Vertiefung. Der Boden ist mit Dreck bedeckt. Im Dreck steckt ein stabiles Gitter aus Stahl, welches in Beton eingelassen ist. Ein trockenes Bachbett f@:uhrt in die Vertiefung.", e_to In_Forest_1, w_to In_Forest_1, s_to In_Forest_1, n_to At_Slit_In_Streambed, d_to [; if (not_in_goto) { ! omit side effects during goto search if (Grate hasnt locked && Grate hasnt open) { print "(mache zuerst das Gitter auf)^"; give Grate open; } } return Grate; ]; Object -> Vertiefung with dekl 9, short_name "Vertiefung", adj "sieben Meter messend", description "Du stehst darin.", name "vertiefung" "dreck" "sieben" "meter", has female scenery; Object -> Grate with dekl 2, adj "st@:ahlern", short_name "Gitter", name "gitter" "schloss" "tor" "metall" "stabil" "stahl", description "Es sieht aus wie ein ganz normales in Beton eingelassenes Gitter.", 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) "^Das Gitter steht offen."; if (self hasnt locked) "^Das Gitter ist aufgeschlossen, aber zu."; rtrue; ], found_in Below_The_Grate Outside_Grate has neuter static door openable lockable locked; ! ---------------------------------------------------------------------------- ! Facilis descensus Averno... ! ---------------------------------------------------------------------------- Object Below_The_Grate "Unter dem Gitter" with description "Du stehst in einem kleinen Raum unter einem quadratischen st@:ahlernen Gitter oben an der Decke. Ein niedriger Gang, gepflastert mit Kopfsteinen, f@:uhrt hinein in Richtung Westen.", w_to In_Cobble_Crawl, u_to Grate has light; Object Kopfstein with description "Es sind ganz normale Kopfsteine.", name "kopf" "stein" "kopfstein", found_in In_Cobble_Crawl In_Debris_Room Below_The_Grate, short_name "Kopfstein", dekl 1, has male pluralname scenery multitude; Object In_Cobble_Crawl "Im Kopfsteingang" with description "Du kriechst @:uber Kopfsteine durch einen niedrigen Durchgang. Es hat im Osten ein schwaches Licht am Ende des Durchgangs.", e_to Below_The_Grate, w_to In_Debris_Room has light; Object -> wicker_cage with dekl 1, description "Es ist ein kleiner K@:afig aus Weide.", initial "Es hat hier einen kleinen verlassenen Weidenk@:afig.", name "kaefig" "klein" "weide" "kaefig" "weidenkaefig", short_name "Weidenk@:afig", after [; Open: if (little_bird notin self) rfalse; print "(lasse den kleinen Vogel frei)^"; <>; ], has male container open openable transparent; Object In_Debris_Room "In der Schuttkammer", with description "Du bist in der Schuttkammer. Sie ist gef@:ullt mit all dem Zeug, das von der Oberfl@:ache angesp@:ult wurde. Ein niedriger, breiter Durchgang mit Kopfsteinen ist verstopft mit Schutt und Schlamm, aber eine schwierige Klamm f@:uhrt nach oben und nach Westen.^^ Eine Notiz an der Wand lautet ~Magisches Wort 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 -> Schutt with dekl 1, short_name "Schutt", description "Igittigitt.", name "schutt" "zug" "schlamm", has male scenery; Object -> Notiz with dekl 9, short_name "Notiz", description "Die Notiz lautet: ~Magisches Wort XYZZY~.", name "notiz" has female scenery; Object -> black_rod with adj "schwarz", dekl 1, short_name "Stab", post "mit einem rostigen Stern am Ende", description "Es ist ein einen Meter langer Stab mit einem rostigen Stern am Ende.", initial "Ein einen Meter langer Stab mit einem rostigen Stern an einem Ende liegt in der N@:ahe.", name "stab" "stern" "schwarz" "rostig" "ein" "meter" "eisen", before [; Wave: if (location==West_Side_Of_Fissure or On_East_Bank_Of_Fissure) { if (caves_closed) "Eigent@:umlich. Nichts passiert."; if (CrystalBridge notin nothing) { remove CrystalBridge; give CrystalBridge absent; West_Side_Of_Fissure.e_to = 0; On_East_Bank_Of_Fissure.w_to = 0; "Die Kristallbr@:ucke ist verschwunden!"; } else { move CrystalBridge to location; give CrystalBridge ~absent; West_Side_Of_Fissure.e_to = CrystalBridge; On_East_Bank_Of_Fissure.w_to = CrystalBridge; "Eine Kristallbr@:ucke @:uberspannt jetzt die Kluft."; } } "Nichts passiert."; ], has male; Object In_Awkward_Sloping_E_W_Canyon "Kurvige Ost-West-Klamm" with description "Du bist in einer schwierigen, kurvigen Ost-West-Klamm.", 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 "Raum des orangen Flusses" with description "Du bist in einem grossartigen, zehn Meter hohen Raum. Die W@:ande sind gefrorene Fl@:usse aus orangem Stein. Eine schwierige Klamm und eine gute Passage gehen auf der @:ostlichen und auf der westlichen Seite weg von diesem Raum.", e_to In_Awkward_Sloping_E_W_Canyon, w_to At_Top_Of_Small_Pit has nodwarf; Object -> little_bird with adj "klein", dekl 2, short_name "Vogel", name "froehlich" "traurig" "klein" "vogel", initial "Ein fr@:ohlicher kleiner Vogel sitzt hier und singt.", before [; Examine: if (self in wicker_cage) "Der kleine Vogel sieht ungl@:ucklich aus im K@:afig."; "Der fr@:ohliche kleine Vogel sitzt hier und singt."; Insert: if (second==wicker_cage) <>; else "Setze den armen Vogel doch nicht in ", (den) second, "!"; Drop, Remove: if (self in wicker_cage) { print "(Der Vogel ist aus dem K@:afig befreit.)^^"; <>; } Take, Catch: if (self in wicker_cage) "Du hast den kleinen Vogel schon. Wenn du ihn aus dem K@:afig nimmst, wird er vermutlich von dir wegfliegen."; if (wicker_cage notin player) "Du kannst den Vogel fangen, aber du kannst ihn nicht tragen."; if (black_rod in player) "Der Vogel hatte keine Angst, als du hereinkamst, aber wenn du dich ihm n@:aherst, wird er gest@:ort und du kannst ihn nicht fangen."; move self to wicker_cage; give wicker_cage ~open; "Du f@:angst den Vogel im Weidenk@:afig."; Release: if (self notin wicker_cage) "Der Vogel ist jetzt nicht im K@:afig."; give wicker_cage open; move self to location; if (Snake in location) { remove Snake; "Der kleine Vogel greift mit wilder Entschlossenheit die gr@:une Schlange an. Nachdem sich die Staubwolke verzogen hat siehst du, dass er die Schlange davongejagt hat."; } if (Dragon in location) { remove self; "Der kleine Vogel greift mit wilder Entschlossenheit den gr@:unen Drachen an. Nachdem sich die Staubwolke verzogen hat siehst du, dass der Vogel zu einem H@:aufchen Asche verbrannt ist. Die Asche wird weggeblasen."; } "Der kleine Vogel fliegt in die Freiheit."; ], life [; Give: "Er ist nicht hungrig. (Er sehnt sich eher nach den Fjorden). @:Ubrigens, ich vermute, dasss er Vogelfutter bevorzugen w@:urde."; Order, Ask, Answer: "Zwitscher! Tschiep!"; Attack: if (self in wicker_cage) "Oh, lass doch den armen ungl@:ucklichen Vogel in Frieden."; remove self; "Der kleine Vogel ist nun tot. Sein K@:orper verschwindet."; ], has male animate; Object At_Top_Of_Small_Pit "Oberhalb einer kleinen Grube" with description "Zu deinen F@:ussen ist eine kleine Grube, woraus Schwaden weissen Nebels quellen. Eine West-Passage endet hier, mit Ausnahme eines schmalen Spaltes, der weiterf@:uhrt.^^ Grobe, in Stein gehauene Treppenstufen f@:uhren hinuner in die Grube.", e_to In_Bird_Chamber, w_to "Die Spalte ist viel zu schmal als dass du hindurchgelangen k@:onntest.", d_to [; if (not_in_goto) { ! omit side effects during goto search if (large_gold_nugget in player) { deadflag=1; "Du liegst am Boden der Grube mit gebrochenem Genick."; } } return In_Hall_Of_Mists; ], before [; Enter: if (noun==PitCrack) "Die Spalte ist viel zu schmal als dass du hindurchgelangen k@:onntest."; ], has nodwarf; Object -> Grube with adj "klein", short_name "Grube", dekl 9, description "Aus der Grube quellen Schwaden weissen Nebels.", name "grube" "klein" has female scenery; Object -> PitCrack with dekl 3, short_name "Spalt", description "Der Spalt ist sehr schmal -- viel zu schmal als dass du hindurchgelangen k@:onntest.", name "spalt" "schmal" has male scenery; Object Nebel with dekl 2, short_name "Nebel", description "Nebel ist ein weisser Dampf, normalerweise aus Wasser, den man von Zeit zu Zeit in H@:ohlen sieht. Man kann ihn @:uberall antreffen, aber er ist oft ein Hinweis auf eine tiefe Grube, welche hinunter zum Wasser f@:uhrt.", name "nebel" "dampf" "schwaden" "weiss", 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 male scenery; ! ---------------------------------------------------------------------------- ! The caves open up: The Hall of Mists ! ---------------------------------------------------------------------------- Object In_Hall_Of_Mists "In der Nebelhalle" with initial [; if (self has general) rfalse; score=score+25; give self general; ], description "Du stehst an einem Ende einer gewaltigen Halle, welche sich bis ausser Sichtweite nach Westen erstreckt. Es hat @:Offnungen auf alle Seiten. In der N@:ahe f@:uhrt eine breite Steintreppe nach unten. Die Halle ist gef@:ullt mit Schwaden weissen Nebels, welche hin- und herschweben fast wie wenn sie lebendig w@:aren. Ein kalter Wind bl@:ast die Treppe hoch. Es hat eine Passage auf der Spitze einer Kuppe hinter dir.^^ Grobe Steinstufen f@:uhren auf die Kuppe.", 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 (not_in_goto) { ! omit side effects during goto search if (large_gold_nugget in player) "Du kannst die Kuppe nicht hochsteigen."; } return At_Top_Of_Small_Pit; ]; Object -> Steintreppe with adj "breit", short_name "Steintreppe", dekl 9, description "Die Steintreppe f@:uhrt nach unten.", name "treppe" "stein" "steintreppe" "breit", has female scenery; Object -> Steinstufe with adj "grob", short_name "Steinstufe", dekl 9, description "Die groben Steinstufen f@:uhren hoch auf die Kuppe.", name "treppe" "stufen" "steinstufen" "grob" "stein" has female pluralname scenery multitude; Object -> Dom with name "dom", dekl 1, short_name "Dom", before [; Examine: if (large_gold_nugget in player) "Ich bin nicht sichher ob du f@:ahig bist, da hochzugehen mit dem was du tr@:agst."; "Es sieht so aus wie wenn es m@:oglich w@:are, hinaufzuklettern."; Climb: MovePlayer(u_obj); rtrue; ], has male scenery; Object In_Nugget_Of_Gold_Room "Niedriger Raum" with description "Dies ist ein niedriger Raum mit einer seltsamen Notiz an der Wand:^^ ~Du wirst es nicht die Stufen hochbringen~.", n_to In_Hall_Of_Mists; Object -> Notiz2 with description "Die Notiz lautet: ~Du wirst es nicht die Stufen hochkriegen~.", name "notiz" "seltsam", short_name "Notiz", dekl 9, has female scenery; Treasure -> large_gold_nugget with dekl 1, short_name "Goldst@:uck", adj "gross", description "Es ist ein grosses funkelndes Goldst@:uck!", initial "Hier liegt ein grosses funkelndes Goldst@:uck!", name "gold" "stueck" "goldstueck" "gross" "schwer", has neuter; Class FissureRoom with before [; Jump: if (CrystalBridge hasnt absent) "Ich m@:ochte respektvoll vorschlagen, dass du die Br@:ucke @:uberquerst anstatt zu springen."; deadflag=1; "Du hast es nicht geschafft."; ], d_to "Die Kluft ist zu be@:angstigend!"; FissureRoom On_East_Bank_Of_Fissure "Am @:ostlichen Rand der Kluft" with description "Du stehst am @:ostlichen Rand einer Kluft, welche sichtbar die ganze Halle durchschneidet. Der Nebel ist hier ziemlich dicht, und die Kluft ist zu breit, um sie zu @:uberspringen.", e_to In_Hall_Of_Mists, w_to "Die Kluft ist zu breit."; FissureRoom West_Side_Of_Fissure "Westliches Ende der Kluft" with description "Du stehst auf der westlichen Seite der Kluft in der Nebelhalle.", w_to At_West_End_Of_Hall_Of_Mists, e_to "Die Kluft ist zu breit.", n_to At_West_End_Of_Hall_Of_Mists, before [; Go: if (location==West_Side_Of_Fissure && noun==n_obj) print "Du bist durch eine sehr niedrige und breite Passage gekrochen, parallel zur und n@:ordlich der Nebelhalle.^"; ]; Treasure -> Diamant with article "", short_name "Diamant", dekl 6, description "Sie sehen nach Spitzenqualit@:at aus!", initial "Hier sind Diamanten!", name "diamant" "mehrere" "spitzenqualitaet" has male multitude pluralname; Object CrystalBridge "Kristallbr@:ucke" with initial "Eine Kristallbr@:ucke @:uberspannt nun die Kluft.", description "Sie @:uberspannt die Kluft und gibt dir somit den Weg hin@:uber frei.", 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 "kristallbruecke" "kristall" "bruecke", found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure has static door open absent; Object Kluft with dekl 7, name "breit" "kluft", short_name "Kluft", description "Die Kluft sieht viel zu breit aus um sie zu @:uberspringen.", found_in On_East_Bank_Of_Fissure West_Side_Of_Fissure has female scenery; Object At_West_End_Of_Hall_Of_Mists "Am westlichen Ende der Nebelhalle" with description "Du stehst am westlichen Ende der Nebelhalle. Ein niedriger, breiter Kriechgang f@:uhrt weiter nach Westen und ein anderer geht in Richtung Norden. Nach S@:uden f@:uhrt eine kleine Passage, zwei Meter @:uber dem Boden.", 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 "Du bist durch eine sehr niedrige und breite Passage gekrochen, parallel zur und n@:ordlich der Nebelhalle.^"; ]; ! ---------------------------------------------------------------------------- ! Long Hall to the west of the Hall of Mists ! ---------------------------------------------------------------------------- Object At_East_End_Of_Long_Hall "Am @:ostlichen Ende der langen Halle" with description "Du stehst am @:ostlichen Ende einer sehr langen Halle, offenbar ohne Seitenr@:aume. Nach Osten neigt sich ein breiter Kriechgang nach oben. Nach Norden f@:uhrt ein rundes, gut einen halben Meter breites Loch nach unten.", 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 "Am westlichen Ende der langen Halle" with description "Du stehst am westlichen Ende einer sehr langen, leeren Halle. An die Halle schliesst eine schmale Nord/S@:ud-Passage an.", e_to At_East_End_Of_Long_Hall, s_to Different_Maze_1, n_to Crossover; Object Crossover "N/S- und O/W-Kreuzung" with description "Du stehst an einer Kreuzung einer hohen N/S-Passage und einer niedrigen O/W-Passage.", 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 -> Kreuzung with dekl 9, description "Du weisst soviel wie ich an diesem Punkt.", name "kreuz" "kreuzung", short_name "Kreuzung", has female scenery; ! ---------------------------------------------------------------------------- ! Many Dead Ends will be needed for the maze below, so define a class: ! ---------------------------------------------------------------------------- Class DeadEndRoom with short_name "Sackgasse", description "Du bist an eine Sackgasse gelangt.", cant_go "Du wirst wohl oder @:ubel zur@:uckgehen m@:ussen von woher du kamst."; 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 "Halle des Bergk@:onigs" with description "Du bist in der Halle des Bergk@:onigs, mit Passagen weg in allen Richtungen.", cant_go "Nun ja, vielleicht nicht wirklich in alle Richtungen.", 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))) "Du kommst nicht an der Schlange vorbei."; ]; Object -> Snake with dekl 9, short_name "Schlange", description "Ich w@:urde nicht mit ihr herumspielen, wenn ich dich w@:are.", initial "Eine riesige gr@:une grimmige Schlange blockiert den Weg!", name "schlange" "kobra" "natter" "riesig" "grimmig" "gruen" "wild" "giftig" "gross" "killer", life [; Order, Ask, Answer: "Psss!"; ThrowAt: if (noun==axe) <>; <>; Give: if (noun==little_bird) { remove little_bird; "Nun hat die Schlange deinen Vogel verschlungen."; } "Es gibt hier nichts wass sie essen w@:urde (ausser dir vielleicht)."; Attack: "Die Schlange anzugreifen geht erstens nicht und ist zweitens sehr gef@:ahrlich."; Take: deadflag=1; "Sie nimmt statt dessen dich. Glrp!"; ], has female animate; Object Low_N_S_Passage "Niedrige N/S-Passage" with description "Du stehst in einer niedrigen N/S-Passage bei einem Loch im Boden. Das Loch f@:uhrt hinunter zu einer O/W-Passage.", s_to In_Hall_Of_Mt_King, d_to In_Dirty_Passage, n_to At_Y2; Treasure -> Silberstab with dekl 1, short_name "Silberst@:ab", description "Sie sind vermutlich ein Verm@:ogen wert!", initial "Es hat hier Silberst@:abe!", article "", name "silber" "stab" "staeb" "silberstab" "silberstaebe", has pluralname male; Object In_South_Side_Chamber "Im Raum auf der s@:udlichen Seite" with description "Du bist im Raum auf der s@:udlichen Seite.", n_to In_Hall_Of_Mt_King; Treasure -> Juwelen with dekl 3, adj "kostbar", short_name "Juwel", description "Sie sind alle sehr exquisit!", initial "Es hat hier kostbare Juwelen!", article "", name "juwel" "juwelen" "kostbar" "exquisit", has neuter pluralname; Object In_West_Side_Chamber "Im Raum auf der westlichen Seite" with description "Du bist im Raum auf der westlichen Seite der Halle des Bergk@:onigs. Eine Passage f@:uhrt hier weiter nach Westen und nach oben.", w_to Crossover, u_to Crossover, e_to In_Hall_Of_Mt_King; Treasure -> rare_coins with short_name "M@:unze", dekl 9, adj "viel" "selten", description "Sie sind der Traum eines jeden Numismatikers!", initial "Es hat hier viele M@:unzen!", article "", name "muenzen" "muenze" "selten", has female pluralname multitude; ! ---------------------------------------------------------------------------- ! The Y2 Rock Room and environs, slightly below ! ---------------------------------------------------------------------------- Object At_Y2 "In ~Y2~" with description "Du stehst in einem grossen Raum, mit einer Passage nach S@:uden, einer Passage nach Westen und einer Mauer aus gebrochenem Fels im Osten. Ein grosses ~Y2~ steht auf einem Felsen in der Mitte des Raums.", after [; Look: if (random(100)<=25) print "^Eine hohle Stimme sagt: ~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 -> y2fels with dekl 6, short_name "~Y2~ Fels", description "Ein grosses ~Y2~ ist auf den Felsen gemalt.", name "fels" "y2" has male scenery supporter; Object Jumble_Of_Rock "Durcheinander von Felsen" with description "Du bist in einem Durcheinander von Felsen. @:Uberall hat es Spalten.", d_to At_Y2, u_to In_Hall_Of_Mists; Object At_Window_On_Pit_1 "Am Fenster in der Grube" ! # goto with description "Du stehst an einem niedrigen Fenster und @:uberblickst eine riesige Grube, welche nach Oben ausser Sichtweite f@:uhrt. Der Boden ist undeutlich sichtbar, mehr als zwanzig Meter weiter unten. Spuren von weissem Nebel bedecken den Boden und die Grube. Der Nebel wird nach rechts dichter. Zeichen im Staub rund um das Fenster sehen so aus als ob jemand vor kurzem hier gewesen w@:are. Direkt gegen@:uber in der Grube und etwa zehn Meter entfernt ist ein @:ahnliches Fenster zu einem erleuchteten Raum. Man kann eine schattenhafte Figur sehen, welche zu dir zur@:uckstarrt.", before [; WaveHands: "Die schattenhafte Figur winkt dir zur@:uck!"; ], cant_go "Die einzige Passage f@:uhrt zur@:uck nach Osten zu Y2.", e_to At_Y2; Class PitScenery with found_in At_Window_On_Pit_1 At_Window_On_Pit_2, has scenery; PitScenery Fenster with description "Es sieht aus wie ein ganz normales Fenster.", name "fenster" "niedrig", short_name "Fenster", dekl 2, has neuter openable; PitScenery Grube4 with dekl 9, short_name "Grube", adj "riesig", description "Sie ist so tief dass du kaum den Boden unten ausmachen kannst, und die Decke ist @:uberhaupt nicht sichtbar.", name "grube" "tief" "gross" "riesig", has female; PitScenery Zeichen with dekl 2, short_name "Zeichen", post "im Staub", description "Offensichtlich bist du hier nicht alleine.", name "zeichen" "staub", has neuter pluralname multitude; PitScenery Figur with adj "schattenhaft", dekl 9, short_name "Figur", description "Die schattenhafte Figur sieht so aus als ob sie versuchte, deine Aufmerksamkeit zu erregen.", name "figur" "schatten" "schattenhaft" "person" "individuum" "mysterioes", has female; Object In_Dirty_Passage "schmutzige Passage" with description "Du bist in einer schmutzigen. eingebrochenen Passage. Im Osten ist ein Kriechgang. Nach Westen f@:uhrt eine grosse Passage. @:Uber dir ist ein Loch zu einer anderen Passage.", e_to On_Brink_Of_Pit, u_to Low_N_S_Passage, w_to In_Dusty_Rock_Room; Object On_Brink_Of_Pit "Rand der Grube" with description "Du stehst am Rande einer kleinen, sauberen, erkletterbaren Grube. Ein Kriechgang f@:uhrt nach Westen.", w_to In_Dirty_Passage, d_to In_Pit, in_to In_Pit; Object -> Grube2 with dekl 9, short_name "Grube", adj "klein", description "Sie sieht so aus wie wenn es m@:oglich w@:are, hinunterzuklettern.", name "Grube" "klein" "sauber", before [; Climb, Enter: MovePlayer(d_obj); rtrue; ], has female scenery; Object In_Pit "In der Grube" with description "Du stehst auf dem Grund einer kleinen Grube mit einem kleinen Bach, welcher herein- und hinausfliesst durch winzige Spalten.", u_to On_Brink_Of_Pit, d_to "Du passt nicht durch diese winzigen Spalten!" has nodwarf; Object -> Spalt2 with adj "winzig", dekl 3, short_name "Spalt", description "Die Spalten formieren sich zu einer komplizierten Struktur im Felsen.", name "spalt" "winzig" has male pluralname scenery multitude; Object In_Dusty_Rock_Room "Im staubigen Felsenraum" with description "Du stehst in einem grossen Raum gef@:ullt mit staubigen Felsen. Es jat ein grosses Loch im Boden. @:Uberall sind Spalten, und eine Passage f@:uhrt nach Osten.", e_to In_Dirty_Passage, d_to At_Complex_Junction; Object -> Fels with dekl 3, short_name "Fels", adj "staubig", description "Es sind bloss Felsen. (staubige, das ist zu sagen.)", name "fels" "bloeck" "block" "stein" "staub" "staubig", has male pluralname scenery multitude; ! ---------------------------------------------------------------------------- ! A maze of twisty little passages, all alike... ! ---------------------------------------------------------------------------- Class MazeRoom with short_name "Labyrinth", description "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, eine wie die andere.", out_to "Leichter gesagt als getan."; 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 "Am Rand einer Grube" with description "Du stehst am Rand einer zehn Meter tiefen Grube mit einer massiven orangen S@:aule, die eine Wand hinunterf@:uhrt. Du k@:onntest hier hinunterklettern, aber du w@:urdest nicht mehr zur@:uck hinaufkommen. Das Labyrinth setzt sich auf derselben H@:ohe fort.", 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 -> Saeule with adj "massiv" "orange", short_name "S@:aule", description "Sie sieht aus wie wenn du an ihr hinunterklettern k@:onntest.", name "saeule" "massiv" "orange" "gross" "riesig", before [; Climb: MovePlayer(d_obj); rtrue; ], has female scenery; Object -> Grube3 with dekl 9, short_name "Grube", description "Du m@:usstest hinunterklettern um mehr herauszufinden...", name "grube" "zehn" "meter", before [; Climb: MovePlayer(d_obj); rtrue; ], has female scenery; 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 "An einer komplizierten Kreuzung" with description "Du stehst an einer komplizierten Kreuzung. Eine niedrige H@:ande-und-Knie-Passage von Norden m@:undet in einen h@:oheren Kriechgang aus dem Osten und ergibt damit einen Spazierweg in Richtung Westen. Es hat auch einen grossen Raum dar@:uber. Die Luft ist feucht hier.", u_to In_Dusty_Rock_Room, w_to In_Bedquilt, n_to In_Shell_Room, e_to In_Anteroom; Object In_Bedquilt "Steppdecke" with description "Du bist in der Steppdecke, eine lange Ost-West-Passage mit L@:ochern @:uberall. Um sie mittels Zufallstechnik zu erkunden w@:ahle n@:ordlich, s@:udlich, rauf oder runter.", 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) "Du bist in einigen kleinen L@:ochern herumgekrochen und nun zur@:uckgekehrt zur Hauptpassage."; if (destiny==0) rfalse; PlayerTo(destiny); rtrue; ]; Object In_Swiss_Cheese_Room "Im Schweizer K@:ase" with description "Du bist in einem Raum, dessen W@:ande einem Schweizer K@:ase gleichen. Offensichtliche Passagen gehen nach Westen, Osten, NO und NW. Ein Teil des Raumes ist belegt mit einem grossen Block aus Grundgestein.", 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)) "Du bist in einigen kleinen L@:ochern herumgekrochen und nun zur@:uckgekehrt zur Hauptpassage."; ]; Object -> Block with dekl 1, short_name "Block", post "aus Grundgestein", description "Es ist nur ein riesiger Block.", name "block" "grundgestein" "gestein" "stein" "gross" "riesig", before [; LookUnder, Push, Pull, Take: "Du machst bestimmt Witze."; ], has male scenery; ! ---------------------------------------------------------------------------- ! 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 "Am westlichen Ende des Zweigrubenraums" with description "Du bist am westlichen Ende des Zweigrubenraums. Es hat ein grosses Loch in der Wand @:uber der Grube an diesem Ende des Raums.", e_to At_East_End_Of_Twopit_Room, w_to In_Slab_Room, d_to In_West_Pit, u_to "Es ist f@:ur dich zu weit oben und damit unerreichbar.", before [; Enter: if (noun==HoleAbovePit_1) "Es ist f@:ur dich zu weit oben und damit unerreichbar."; ]; Object PlantStickingUp with dekl 2, short_name "Bohnenstengel", found_in At_West_End_Of_Twopit_Room At_East_End_Of_Twopit_Room, name "pflanze" "bohnenstengel" "stengel" "bohne" "gigantisch" "winzig" "klein" "murmelnd" "vier" "meter" "hoch" "bruellend", describe [; if (Plant.height == TALL_P) "Die Spitze des vier meter hohen Bohnenstengels ragt aus der westlichen Grube."; "Es hat hier einen riesigen Bohnenstengel, der aus der westlichen Grube aus dem Loch herausw@:achst."; ], before [; Examine: RunRoutines(self,describe); rtrue; Climb: if (Plant.height==HUGE_P) <>; ], has male absent static; Object HoleAbovePit_1 with dekl 4, post "@:uber der Grube", short_name "Loch", description "Das Loch ist in der Wand @:uber der Grube an diesem Ende des Raums.", name "loch" "gross" "ueber" "grube", found_in In_West_Pit At_West_End_Of_Twopit_Room has neuter scenery; Object In_West_Pit "In der westlichen Grube" with description "Du stehst auf dem Grund der westlichen Grube im Zweigrubenraum. Es hat ein grosses Loch in der Wand etwa acht Meter @:uber dir.", before [; Climb: if (noun==Plant) rfalse; if (Plant.height == TINY_P) "Es hat hier nichts wo du hinaufklettern k@:onntest. Benutze ~rauf~ oder ~runter~ um die Grube zu verlassen."; ], u_to At_West_End_Of_Twopit_Room has nodwarf; Object -> Plant with dekl 9, short_name "Pflanze", height TINY_P, name "pflanze" "bohnenstengel" "stengel" "bohne" "gigantisch" "winzig" "klein" "murmelnd" "vier" "meter" "hoch" "bruellend", describe [; switch(self.height) { TINY_P: "Es hat hier eine winzig kleine Pflanze in der Grube. Sie murmelt ~Wasser, Wasser, ...~"; TALL_P: "Es hat hier einen vier Meter hohen Bohnenstengel, welcher sich oben aus der Grube streckt. Er br@:ullt ~Wasser!! Wasser!!~"; HUGE_P: "Es hat hier einen gigantischen Bohnenstengel, welcher sich die ganze H@:ohe hinauf zum Loch streckt."; } ], before [; Climb: switch(self.height) { TINY_P: "Es ist nur eine kleine Pflanze!"; TALL_P: print "Du bist die Pflanze hochgeklettert und gelangst aus der Grube hinaus.^"; PlayerTo(At_West_End_Of_Twopit_Room); rtrue; HUGE_P: print "Du kletterst die Pflanze hoch und hastest durch das Loch an der Decke.^"; PlayerTo(In_Narrow_Corridor); rtrue; } Take: "Die Pflanze hat ausnehmend tiefe Wurzeln und kann nicht herausgezogen werden."; Water: if (bottle notin player) "Du hast nichts um die Pflanze damit zu giessen."; switch(child(bottle)) { nothing: "Die Flasche ist leer."; oil_in_the_bottle: remove oil_in_the_bottle; "Die Pflanze sch@:uttelt emp@:ort das @:Ol von ihren Bl@:attern und fragt: ~Wasser?~"; } remove water_in_the_bottle; switch((self.height)++) { TINY_P: print "Die Pflanze w@:achst in Sekundenschnelle st@:urmisch in die H@:ohe.^^"; give PlantStickingUp ~absent; TALL_P: print "Die Pflanze w@:achst explosionsartig und f@:ullt den Grund der Gurbe beinahe aus.^^"; HUGE_P: print "Du hast die Pflanze ertr@:ankt! Sie beginnt zu welken! Sie ist, sie ist...^^"; give PlantStickingUp absent; remove PlantStickingUp; self.height = TINY_P; } <>; Oil: <>; Examine: self.describe(); rtrue; ], has female; Object At_East_End_Of_Twopit_Room "Am @:ostlichen Ende des Zweigrubenraums" with description "Du bist am @:ostlichen Ende des Zweigrubenraums. Der Boden hier ist @:ubers@:at mit mit d@:unnen Felsplatten, welche es erleichtern, die Gruben hinunterzusteigen. Es hat hier einen Weg an den Gruben vorbei, welcher die Passagen von Osten nach Westen verbindet. Es hat @:uberall L@:ocher, aber das einzige grosse Loch ist an der Wand direkt @:uber der westlichen Grube, wohin du nicht gelangen kannst.", e_to In_Swiss_Cheese_Room, w_to At_West_End_Of_Twopit_Room, d_to In_East_Pit; Object -> Felsplatte with adj "klein", dekl 9, short_name "Felsplatte", description "Sie bilden praktisch nat@:urliche Treppen die Gruben hinunter.", name "platte" "fels" "treppe" "klein" "stein", before [; LookUnder, Push, Pull, Take: "Du machst sicher Witze."; ], has female pluralname scenery multitude; Object In_East_Pit "In der @:ostlichen Grube" with description "Du stehst auf dem Grund der @:ostlichen Grube im Zweigrubenraum. Es hat hier ein kleines Bassin voll @:Ol in einer Ecke der Grube.", u_to At_East_End_Of_Twopit_Room has nodwarf; Object -> Oil with dekl 5, short_name "Bassin", post "voll @:Ol", name "bassin" "oel" "klein", description "Es sieht aus wie normales @:Ol.", before [; Drink: "Ganz bestimmt nicht."; Take: if (bottle notin player) "Du hast nichts worin du das @:Ol tragen k@:onntest."; <>; Insert: if (second == bottle) <>; "Du hast nichts worin du das @:Ol tragen k@:onntest."; ], has neuter scenery; Object Loch2 with dekl 4, short_name "Loch", post "@:uber der Grube", description "Das Loch ist in der Wand @:uber dir.", name "loch" "gross" "ueber" "grube" "mir", found_in In_East_Pit At_East_End_Of_Twopit_Room has neuter scenery; Object In_Slab_Room "Tafelraum" with description "Du stehst in einer grossen, niedrigen, runden Kammer, deren Boden von einer immensen, von der Decke gefallenen Tafel gebildet wird (Tafelraum). @:Ostlich und westlich von hier waren einmal grosse Passagen, aber die sind jetzt aufgef@:ullt mit Felsbl@:ocken. Niedrige kleine Passagen f@:uhren nach Norden und nach S@:uden, und die nach S@:uden biegt sofort nach Westen ab, um die Bl@:ocke herum.", s_to At_West_End_Of_Twopit_Room, u_to In_Secret_N_S_Canyon_0, n_to In_Bedquilt; Object -> Tafel with dekl 9, short_name "Tafel", description "Die ist jetzt der Boden hier.", name "tafel" "immens", before [; LookUnder, Push, Pull, Take: "Du machst sicher Witze."; ], has female scenery; Object -> Felsblock with dekl 1, short_name "Felsbl@:ock", description "Es sind nur ganz normale Felsbl@:ocke.", name "block" "bloecke" "fels" "steine" "felsblock" "felsbloecke", has male pluralname scenery multitude; ! ---------------------------------------------------------------------------- ! A small network of Canyons, mainly Secret ! ---------------------------------------------------------------------------- Object In_Secret_N_S_Canyon_0 "Geheime N/S-Klamm" ! # goto with description "Du bist in einer geheimen N/S-Klamm @:uber einem grossen Raum.", 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 "Geheime N/S-Klamm" with description "Du bist in einer geheimen N/S-Klamm @:uber einer ziemlich grossen Passage.", n_to At_Junction_Of_Three, d_to In_Bedquilt, s_to Atop_Stalactite; Object At_Junction_Of_Three "Kreuzung dreier geheimer Klammen" with description "Du stehst in einem geheimen Durchgang an einer Kreuzung von drei Klammen, welche nach Norden, nach S@:uden und nach SO f@:urhen. Die n@:ordliche ist so gross wie die anderen beiden zusammen.", se_to In_Bedquilt, s_to In_Secret_N_S_Canyon_1, n_to At_Window_On_Pit_2; Object In_Large_Low_Room "Grosser niedriger Raum" with description "Du bist in einem grossen niedrigen Raum. Kriechg@:ange f@:uhren nach Norden, SO und SW.", sw_to In_Sloping_Corridor, se_to In_Oriental_Room, n_to Dead_End_Crawl; Object Dead_End_Crawl "Sackgassen-Kriechgang" with description "Dieser Kriechgang ist eine Sackgasse.", s_to In_Large_Low_Room, out_to In_Large_Low_Room; Object In_Secret_E_W_Canyon "Geheime O/W-Klamm @:uber einer engen Klamm" with description "Du bist in einer geheimen Klamm, welche hier von Osten nach Westen verl@:auft. Sie kreuzt sich mit einer sehr engen Klamm f@:unf Meter weiter unten. Wenn du hinuntergehst, gelangst du vielleicht nicht mehr zur@:uck.", e_to In_Hall_Of_Mt_King, w_to In_Secret_Canyon, before [; Go: if (noun==w_obj) canyon_from=self; ], d_to In_N_S_Canyon; Object In_N_S_Canyon "N/S-Klamm" with description "Du bist an einer breiten Stelle in einer sehr schmalen N-S-Klamm.", s_to Canyon_Dead_End, n_to In_Tall_E_W_Canyon; Object Canyon_Dead_End "Sackgassen-Klamm" with description "Die Klamm wird hier zu schmal, um weiter nach S@:uden zu gelangen.", n_to In_N_S_Canyon; Object In_Tall_E_W_Canyon "In der grossen O/W-Klamm" with description "Du bist in einer grossen O/W-Klamm. Ein niedriger enger Kriechgang f@:uhrt einen Meter nach Norden und scheint sich dann zu erweitern.", e_to In_N_S_Canyon, w_to Dead_End_8, n_to In_Swiss_Cheese_Room; Object Atop_Stalactite "Oben am Stalaktit" with description "Ein grosser Stalaktit h@:angt an der Decke und reicht fast bis an den Boden hinunter. Du k@:onntest an ihm hinunterklettern und dann zum Boden springen, aber nachher k@:onntest du ihn nicht mehr erreichen um wieder hochzuklettern.", 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 -> Stalaktit with dekl 6, short_name "Stalaktit", description "Du k@:onntest vermutlich an ihm hinunterklettern, aber du kannst vergessen, wieder hochzukommen.", name "stalaktit" "stalagmit" "gross", before [; LookUnder, Push, Take: "Nimm dich zusammen."; ], has male scenery; ! ---------------------------------------------------------------------------- ! Here be dragons ! ---------------------------------------------------------------------------- Object In_Secret_Canyon "Geheime Klamm" with description "Du bist in einer geheimen Klamm. Die Ausg@:ange sind im Norden und im Osten.", e_to [; if (canyon_from == In_Secret_E_W_Canyon) return canyon_from; if (not_in_goto) { ! omit side effects during goto search if (Dragon in location) "Der Drachen sieht eher widerlich aus. Du solltest besser nicht versuchen, vorbeizukommen."; } return In_Secret_E_W_Canyon; ], n_to [; if (canyon_from == In_Secret_N_S_Canyon_0) return canyon_from; if (not_in_goto) { ! omit side effects during goto search if (Dragon in location) "Der Drachen sieht eher widerlich aus. Du solltest am besten nicht versuchen, vorbeizukommen."; } 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; "Gratuliere! Du hast soeben einen Drachen mit blossen H@:anden bezwungen! (Unglaublich, nicht wahr?)"; } if (action==##No && Dragon has general) { give Dragon ~general; "Ich denke eher nicht."; } give Dragon ~general; ]; Object -> Dragon with dekl 2, short_name "Drachen", description "Ich w@:urde nicht mit ihm herumspielen wenn ich dich w@:are.", name "drachen" "monster" "biest" "eidechse" "riesig" "gruen" "wild" "grimmig" "schuppig" "gigantisch" "fuerchterlich", initial "Ein riesiger, gr@:uner, grimmiger Drachen versperrt den Weg!", life [; Attack: give Dragon general; "Womit? Mit blossen H@:anden?"; Give: "Der Drachen ist unerbittlich."; ThrowAt: if (noun~=axe) "Du w@:urdest vermutlich besser fahren, wenn du deine blossen H@:ande benutzen w@:urdest anstatt dieses Ding!"; move axe to location; "Die Axt springt harmlos von den dicken Schuppen des Drachens ab."; ], has male animate; Treasure -> Perserteppich with dekl 1, short_name "Perserteppich", name "teppich" "perser" "perserteppich" "fein" "feinst" "drachens", depositpoints 14, before [; Take: if (Dragon in location) "Du solltest zuerst den Drachen in Bewegung bringen!"; ], describe [; if (Dragon in location) "Der Drachen l@:ummelt auf dem Perserteppich herum!"; "Der Perserteppich ist hier auf dem Boden ausgebreitet."; ], has male; Object DragonCorpse with dekl 1, short_name "K@:orper", post "des Drachens", initial "Der K@:orper eines riesigen, gr@:unen, toten Drachens liegt auf einer Seite.", name "drachen" "koerper" "tot" "drachenkoerper", before [; Attack: "Du hast schon genug Unheil angerichtet!"; ], has male static; ! ---------------------------------------------------------------------------- ! And more of the Alike Maze ! ---------------------------------------------------------------------------- DeadEndRoom Dead_End_8 with description "Die Klamm f@:uhrt in ein Durcheinander von Felsbl@:ocken -- Sackgasse.", 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 "Dies ist die Sackgasse des Piraten.", initial [; StopDaemon(Pirate); if (treasure_chest in self && treasure_chest hasnt moved) "Du hast die Schatztruhe des Piraten gefunden!"; ], has nodwarf; Treasure -> treasure_chest with dekl 9, short_name "Schatztruhe", depositpoints 12, description "Es ist die Schatztruhe des Piraten, gef@:ullt mit Reicht@:umern aller Art!", initial "Die Schatztruhe des Piraten ist hier!", name "truhe" "kasten" "kiste" "schatz" "reichtum" "reichtuemer" "pirat" "schatztruhe", has female; ! ---------------------------------------------------------------------------- ! Above the beanstalk: the Giant Room and the Waterfall ! ---------------------------------------------------------------------------- Object In_Narrow_Corridor "In einem engen Korridor" with description "Du bist in einem langen, engen Korridor, welcher sich bis ausser Sichtweite nach Westen erstreckt. Am @:ostlichen Ende ist ein Loch, durch welches du eine Unmenge von Bl@:attern erblickst.", d_to In_West_Pit, w_to In_Giant_Room, e_to In_West_Pit, before [; Jump: deadflag=1; "Du f@:allst hin und brichst dir das Genick!"; ]; Object -> Blatt with dekl 4, short_name "Bl@:att", description "Die Bl@:atter sehen aus als ob sie am Bohnensstengel, den du hochgeklettert bist um hierherzukommen, befestigt w@:aren.", article "einige", name "blatt" "blaett" "pflanze" "baum" "unmenge", before [; Count: "69,105."; ! (I thank Rene Schnoor for counting them) ], has neuter pluralname scenery; Object At_Steep_Incline "Steiles Gef@:alle @:uber dem grossen Raum" with description "Du stehst oben an einem steilen Gef@:alle @:uber einem grossen Raum. Du k@:onntest hier hinunterklettern, aber du w@:arest nicht f@:ahig, wieder hochzuklettern. Es hat eine Passage, welche zur@:uck nach Norden f@:uhrt.", n_to In_Cavern_With_Waterfall, d_to In_Large_Low_Room; Object In_Giant_Room "Gigantischer Raum" with description "Du bist im gigantischen Raum. Die Decke hier ist zu hoch f@:ur deine Lampe um sie zu beleuchten. Tiefe Passagen f@:uhren nach Osten, Norden und S@:uden. Im Westen ist die Inschrift ~Fee fie foe foo~ [sic] hingekritzelt.", s_to In_Narrow_Corridor, e_to At_Recent_Cave_In, n_to In_Immense_N_S_Passage; Object -> Inschrift with adj "hingekritzelt", dekl 9, short_name "Inschrift", description "Sie lautet: ~Fee fie foe foo [sic].~", name "inschrift" "schrift" "kritzelei" "gekritzelt" "hingekritzelt" has female scenery; Treasure -> golden_eggs with dekl 4, post "mit goldenen Eiern", short_name "Nest", depositpoints 14, description "Das Nest ist gef@:ullt mit sch@:onen goldenen Eiern!", initial "Es hat hier ein grosses Nest, voll von goldenen Eiern!", name "ei" "nest" "golden" "gold" "schoen", has neuter multitude; Object At_Recent_Cave_In "k@:urzlicher Einsturz" with description "Die Passage hier ist blockiert von einem k@:urzlichen Einsturz.", s_to In_Giant_Room; Object In_Immense_N_S_Passage "Immense N/S-Passage" with description "Du stehst an einem Ende einer immensen Nord/S@:ud-Passage.", s_to In_Giant_Room, n_to [; if (not_in_goto) { ! omit side effects during goto search if (RustyDoor has locked) <>; if (RustyDoor hasnt open) { give RustyDoor open; print "(wuchte zuerst die T@:ur auf)^"; } } return RustyDoor; ]; Object -> RustyDoor with adj "rostig", dekl 9, short_name "T@:ure", description "Es ist nur eine grosse, eiserne T@:ure.", name "tuer" "angel" "scharnier" "massiv" "rostig" "eisen" "eisern", when_closed "Der Weg nach Norden ist versperrt von einer massiven, rostigen, eisernen T@:ure.", when_open "Der Weg nach Norden f@:uhrt durch eine massive, rostige, eiserne T@:ure.", door_to In_Cavern_With_Waterfall, door_dir n_to, before [; Open: if (RustyDoor has locked) "Die Scharniere sind total durchgerostet und werden sich nicht bewegen."; Close: if (RustyDoor has open) "Mit all der Anstrengung, die es gekostet hat, die T@:ure zu @:offnen, w@:urde ich nicht vorschlagen, sie erneut zu schliessen."; "Kein Problem -- sie ist schon zu."; Oil: if (bottle in player && oil_in_the_bottle in bottle) { remove oil_in_the_bottle; give RustyDoor ~locked openable; "Das @:Ol hat die Scharniere geschmiert, so dass sie sich nun bewegen wird, auch wenn es einige Anstrengung kostet."; } else "Du hast nichts um sie damit zu @:olen."; Water: if (bottle in player && water_in_the_bottle in bottle) { remove water_in_the_bottle; give RustyDoor locked ~open; "Die Scharniere sind nun total durchgerostet und werden sich nicht bewgen."; } else "Du hast nichts um sie damit zu w:assern."; ], after [; Open: "Die T@:ure schwingt wuchtig auf; du bekommst eine Rostdusche ab."; ], has female static door locked; Object In_Cavern_With_Waterfall "In der H@:ohle mit dem Wasserfall" with description "Du stehst in einer wunderbaren H@:ohle mit einem rauschenden Bach, der @:uber einen glitzernden Wasserfall hinunterf@:allt in einen donnernden Strudel und durch ein Loch im Boden verschwindet. Passagen f@:uhren nach S@:uden und nach Westen.", s_to In_Immense_N_S_Passage, w_to At_Steep_Incline; Object -> Wasserfall with dekl 1, short_name "Wasserfall", description "M@:ochte nicht in einem Fass da hinunterschwimmen!", name "wasserfall" "strudel" "glitzernd" "strudeln" "strudelnd" has male scenery; Treasure -> trident "Dreizack mit Juwelen" with description "Der Dreizack ist bedeckt mit fabelhaften Juwelen!", initial "Hier hat es einen mit Juwelen @:uberzogenen Dreizack!", name "dreizack" "juwelen" "@:uberzogen" "bedeckt" "fabelhaft", depositpoints 14; ! ---------------------------------------------------------------------------- ! The caves around Bedquilt ! ---------------------------------------------------------------------------- Object In_Soft_Room "Im weichen Raum" with description "Du bist im weichen Raum. Die W@:ande sind bedeckt mit schweren Vorh@:angen, der Boden mit einem dicken samtenen Teppich. Moos bedeckt die Decke.", w_to In_Swiss_Cheese_Room; Object -> Teppich with dekl 1, short_name "Teppich", description "Der Teppich ist sehr vornehm.", name "teppich" "vornehm" "schwer" "dick" has male scenery; Object -> Vorhaenge with dekl 7, short_name "Vorh@:ange", description "Sie scheinen Schall sehr gut zu absorbieren.", name "vorhang" "vorhaenge" "schwer" "dick", before [; Take: "Jetzt mach nicht die Atmosph@:are des Orts kaputt!"; LookUnder, Search: "Du findest nichts aufregendes hinter den Vorh@:angen."; ], has female pluralname scenery; Object -> Moos with dekl 1, short_name "Moos", description "Es sieht ganz wie typisches, allt@:agliches Moos aus.", name "moos" "typisch" "alltaeglich", before [; Take: "Es zerf@:allt in deiner Hand zu Nichts."; ], has neuter scenery edible; Object -> velvet_pillow with adj "samten", dekl 1, short_name "Kissen", description "Es ist nur ein kleines, samtenes Kissen.", initial "A small velvet pillow lies on the floor.", name "pillow" "velvet" "small", has neuter; Object In_Oriental_Room "Orientalisches Zimmer" with description "Dies ist das orientalische Zimmer. Alte orientalische H@:ohlenmalereien bedecken die W@:ande. Eine leicht gewundene Passage f@:uhrt nach oben in Richtung Norden, eine andere Passage f@:uhrt nach S@:udosten, und ein H@:ande-und-Knie-Kriechgang f@:uhrt nach Westen.", w_to In_Large_Low_Room, se_to In_Swiss_Cheese_Room, u_to In_Misty_Cavern, n_to In_Misty_Cavern; Object -> Malerei with dekl 9, short_name "Malerei", adj "alt" "orientalisch", description "Sie scheinen Menschen und Tiere abzubilden.", name "malerei" "zeichnung" "kunst" "hoehle" "alt" "orientalisch" has pluralname scenery multitude; Treasure -> ming_vase with dekl 9, short_name "Ming-Vase", description "Es ist eine zerbrechliche, kostbare Ming-Vase!", name "vase" "ming" "ming-vase" "zerbrechlich" "kostbar", depositpoints 14, after [; Drop: if (velvet_pillow in location) { print "(pass auf, zerbrechlich, auf das samtene Kissen)^"; rfalse; } remove ming_vase; move shards to location; "Die Ming-Vase f@:allt runter und zerbricht."; ], before [; Attack: remove ming_vase; move shards to location; "Du hast die Vase genommen und auf den Boden geschleudert. Sie ist zerbrochen."; Receive: "Die Vase ist zu empfindlich um als Beh@:alter benutzt zu werden."; ], has female; Object shards with article "einige", dekl 9, short_name "Porzellanscherbe", adj "wertlos", initial "Der Boden ist @:ubers@:at mit wertlosen Porzellanscherben.", description "Sie sehen aus wie der Rest von was einmal eine sch@:one Vase war. Ich vermute, irgend ein L@:ummel muss sie fallengelassen haben.", name "porzellan" "scherben" "ueberrest" "rest" "vase" "wertlos", has female pluralname multitude; Object In_Misty_Cavern "Neblige H@:ohle" with description "Du folgst einem breiten Pfad um den @:ausseren Rand einer grossen H@:ohle herum. Weit unten, durch den dichten weissen Nebel, ist ein seltsames Platschen zu h@:oren. Der Nebel steigt auf durch eine Spalte in der Decke. Die Pfade f@:uhren hinaus nach S@:uden und Westen.", s_to In_Oriental_Room, w_to In_Alcove; Object -> Spalte3 with dekl 9, short_name "Spalte", description "Du kommst nicht wirklich nah genug heran um sie zu untersuchen.", name "spalt" "decke" has female scenery; ! ---------------------------------------------------------------------------- ! Plovers and pyramids ! ---------------------------------------------------------------------------- Object In_Alcove "Nische" with description "Du bist in einer Nische. Ein kleiner nordwestlicher Pfad scheint sich nach kurzer Distanz zu erweitern. Ein extrem enger Tunnel f@:uhrt nach Osten. Er sieht aus wie wenn er dich zerquetschen wollte. Ein unheimliches Licht ist am anderen Ende zu sehen.", 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; "Irgend etwas was du tr@:agst scheint nicht mit dir durch den Tunnel zu passen. Du machst am besten Inventar und l@:asst irgend etwas hier."; ]; Object In_Plover_Room "Kiebitz-Raum" with description "Du bist in einem kleinen Raum, der von einem unheimlichen gr@:unen Licht erleuchtet ist. Ein extrem schmaler Tunnel f@:uhrt hinaus nach Westen. Ein dunkler Korridor f@:uhrt nach Nordosten.", ne_to In_Dark_Room, w_to [ j; j=children(player); if (j==0 || (j==1 && egg_sized_emerald in player)) return In_Alcove; "Irgend etwas was du tr@:agst scheint nicht mit dir durch den Tunnel zu passen. Du machst am besten Inventar und l@:asst irgend etwas hier."; ], before [; Plover: if (egg_sized_emerald in player) move egg_sized_emerald to In_Plover_Room; PlayerTo(At_Y2); rtrue; Go: if (noun==out_obj) <>; ], has light; Treasure -> egg_sized_emerald with dekl 2, short_name "Smaragt", post "von der Gr@:osse eines Kiebitz-Eis", depositpoints 14, article "einen", description "Kiebitz-Eier sind @:ubrigens ziemlich gross.", initial "Es hat hier einen Smaragt von der Gr@:osse eines Kiebitz-Eis!", name "kiebitz" "eiergross" "ei" "groesse" "kiebitz-ei" "smaragt", has male; Object In_Dark_Room "Der dunkle Raum" with description "Du bist im dunklen Raum. Ein Korridor, der nach S@:uden f@:uhrt, ist der einzige Ausgang.", s_to In_Plover_Room has nodwarf; Object -> Steintafel with dekl 9, short_name "Steintafel", initial "Eine massive, in die Wand eingelassene Tafel ist beschriftet mit: ~Gratulation daf@:ur, dass du Licht in den dunklen Raum gebracht hast!~", name "tafel" "massiv" "stein" "steintafel", has female static; Treasure -> Platinpyramide with dekl 9, short_name "Platinpyramide", initial "Es hat hier eine Pyramide aus Platin mit 20 cm Seitenl@:ange!", depositpoints 14, description "Die Platinpyramide hat 20 cm Seitenl@:ange!", name "platin" "pyramide" "platinpyramide" "seitenlaenge" "cm" "20" "mit", has female; ! ---------------------------------------------------------------------------- ! North of the complex junction: a long up-down corridor ! ---------------------------------------------------------------------------- Object In_Arched_Hall "Gew@:olbte Halle" with description "Du stehst in einer gew@:olbten Halle. Eine Korallenpassage f@:uhrte einmal weiter nach oben und nach Osten, aber sie ist jetzt von Tr@:ummern blockiert. Die Luft riecht nach Meerwasser.", d_to In_Shell_Room; Object In_Shell_Room "Muschelraum" with description "Du bist in einem grossen Raum, der aus Sedimentgestein herausgehauen wurde. Der Boden und die W@:ande sind @:ubers@:at mit Muschelst@:ucken, die in den Stein eingebettet sind. Eine flache Passage geht weiter nach unten, und eine irgendwie steilere f@:uhrt nach oben. Eine niedrige H@:ande-und-Knie-Passage f@:uhrt vom S@:uden her herein.", u_to In_Arched_Hall, d_to In_Ragged_Corridor, s_to [; if (not_in_goto) { ! omit side effects during goto search if (giant_bivalve in player) { if (giant_bivalve has open) "Du kriegst diese Eineinhalb-Meter-Auster nicht durch diese kleine Passage!"; else "Du kriegst diese Eineinhalb-Meter-Venusmuschel nicht durch diese kleine Passage!"; } } return At_Complex_Junction; ]; Object -> giant_bivalve with adj "gigantisch", short_name "Venusmuschel", dekl 9, name "gigantisch" "venus" "muschel" "venusmuschel" "auster" "zweischalig", describe [; if (self has general) "Es hat hier eine enorme Auster. Ihre Schale ist fest geschlossen."; "Es hat hier eine enorme Venusmuschel. Ihre Schale ist fest geschlossen."; ], before [; Examine: if (location==At_Ne_End or At_Sw_End) "Interessant. Es scheint, als ob etwas auf der Unterseite der Auster geschrieben steht:^^ ~Irgend etwas ist seltsam an diesem Ort, so wie wenn ein Wort, das ich immer wusste, jetzt eine neue Wirkung h@:atte.~"; "Irgend etwas gigantisches,zweischaliges."; Open: "Du bist nicht stark genug, um die Venusmuschel mit blossen H@:anden zu @:offnen."; Unlock: if (second~=trident) print (Gder) trident, " ist nicht stark genug, um die Venusmuschel zu @:offnen."; if (self has general) "Die Auster bricht auf, aber du entdeckst nichts als Auster im Innern. Sie schnappt gleich wieder zu."; give self general; move pearl to In_A_Cul_De_Sac; "Eine gl@:anzende Perle f@:allt aus der Venusmuschel und rollt weg. Meine G@:ute, dies muss wirklich eine Auster sein. (Ich war nie besonders stark im Identifizieren von Zweischaligem.) Was immer es auch ist, es ist nun wieder zugeschnappt."; Attack: "Die Schale ist sehr stabil. Es ist ihr mit Angriffen nicht beizukommen."; ], has female; Treasure pearl with dekl 9, short_name "Perle", adj "gl@:anzend", description "Sie ist unglaublich gross!", initial "An der Seite liegt eine gl@:anzende Perle!", name "perle" "glaenzend" "unglaublich" "gross", depositpoints 14, has female; Object In_Ragged_Corridor "Zerkl@:ufteter Korridor" with description "Du bist in einem langen, gewundenen Korridor mit scharf zerkl@:ufteten W@:anden.", u_to In_Shell_Room, d_to In_A_Cul_De_Sac; Object In_A_Cul_De_Sac "Sackgasse" with description "Du bist in einer etwas drei Meter breiten Sackgasse.", u_to In_Ragged_Corridor, out_to In_Ragged_Corridor; ! ---------------------------------------------------------------------------- ! Witt's End: Cave under construction ! ---------------------------------------------------------------------------- Object In_Anteroom "Im Vorraum" with description "Du bist in einem Vorraum, welcher zu einer grossen Passage im Osten f@:uhrt. Kleine Passagen gehen nach Westen und hinauf. Die Spuren von k@:urzlichen Grabungen sind offensichtlich.", u_to At_Complex_Junction, w_to In_Bedquilt, e_to At_Witts_End; Object -> Schild with dekl 4, short_name "Schild", initial "Auf einem Schild in der Luft hier steht geschrieben ~H@:ohle noch in Arbeit hinter dieser Stelle. Weitergehen auf eigenes Risiko. [Gripskonstruktionsgesellschaft]~", name "schild" "grips" "gesellschaft" "konstruktion" "gripskonstruktion" "konstruktionsgesellchaft" "gripskonstruktionsgesellschat", before [; Take: "Es h@:angt weit @:uber deinem Kopf."; ], has neuter static; Object -> Ausgaben with adj "letzte", article "ein paar", short_name "Ausgaben", post "von ~Hobby H@:ohlenforschen heute~", dekl 8, name "magazin" "zeitschrift" "ausgabe" "letzt" "hobby" "hoehlenforscher" "heute", initial "Es hat hier einige der letzten Ausgaben der Zeitschrift ~Hobby H@:ohlenforschen heute~.", description "Es tut mir leid, die Zeitschriften sind geschrieben in Zwergisch.", after [; Take: if (location==At_Witts_End) score--; Drop: if (location==At_Witts_End) { score++; "Du bist wirklich am Ende der Weisheit."; } ], has female pluralname multitude; Object At_Witts_End "Am Ende der Weisheit" with description "Du bist am Ende der Weisheit. Passagen f@:uhren weg in *alle* Richtungen.", w_to "Du bist in einigen kleinen L@:ochern herumgekrabbelt und fandest den Weg blockiert durch einen k@:urzlichen Einsturz. Du bist nun zur@:uck in der Hauptpassage.", before [; Go: if (noun~=w_obj && random(100)<=95) "Du bist in einigen kleinen L@:ochern herumgekrabbelt und auf gewundenen Wegen in die Hauptpassage zur@:uckgekehrt."; PlayerTo(In_Anteroom); rtrue; ]; ! ---------------------------------------------------------------------------- ! North of the secret canyons, on the other side of the pit ! ---------------------------------------------------------------------------- Object In_Mirror_Canyon "In der Spiegelklamm" with description "Du bist in einer etwa acht Meter messenden Nord-S@:ud-Klamm. Der Boden ist bedeckt mit weissem Nebel, der von Norden hereinquiltt. Die W@:ande sind @:uber dreissig Meter hoch. An einem unsichtbaren Punkt weit @:uber dir aufgeh@:angt ist ein enormer zweiseitiger Spiegel. Er h@:angt in der Mitte parallel zu den Klammw@:anden.^^ In jeder Wand sieht man ein kleines Fenster, etwa f@:unfzehn Meter weit oben.", s_to In_Secret_N_S_Canyon_0, n_to At_Reservoir; Object -> Spiegel with dekl 2, short_name "Spiegel", adj "aufgeh@:angt", description "Der Spiegel ist offenbar f@:ur die Zwerge da, die, wie du weisst, extrem eitel sind.", name "spiegel" "massiv" "enorm" "haengend" "aufgehaengt" "zwerg" "zweiseitig" "zwei" "seitig" "zwei-seitig", initial "Der Spiegel ist offenbar f@:ur die Zwerge da, die, wie du weisst, extrem eitel sind.", before [; Attack, Remove: "Du kannst ihn von hier aus nicht erreichen."; ], has male static; Object At_Window_On_Pit_2 "Am Fenster in der Grube" with description "Du stehst an einem niedrigen Fenster, von wo aus du eine riesige Grube @:uberblickst, die bis ausser Sichtweite reicht. Der Boden ist undeutlich sichtbar, @:uber f@:unfzehn Meter weiter unten. Schwaden von weissem Nebel bedecken den Grund der Grube. Sie werden dichter auf der linken Seite. Zeichen im Staub um das Fenster herum sehen aus als ob k@:urzlich jemand hier gewesen w@:are. Direkt gegen@:uber dir und etwa acht Meter weg ist ein @:ahnliches Fenster, welches in einen erleuchteten Raum blickt. Eine schattenhafte Figur ist sichtbar, welche zu dir zur@:uckstarrt.", cant_go "Die einzige Passage ist im Westen, zur Kreuzung.", w_to At_Junction_Of_Three, before [; Jump: deadflag=1; "Du springst und brichst dir das Genick!"; WaveHands: "Die schattenhafte Figur winkt dir zur@:uck!"; ]; Object At_Reservoir "Beim Reservoir" with description "Du stehst am Rand eines grossen unterirdischen Reservoirs. Eine undurchsichtige Wolke weissen Nebels f@:ullt den Raum und bewegt sich schnell nach oben. Der See wird von einem Bach gef@:ullt, welcher aus einem Loch in der Wand etwa drei Meter oberhalb st@:urzt und ger@:auschvoll ins Wasser pl@:atschert, irgendwo im Nebel. DIe einzige Passage geht zur@:uck nach S@:uden.", s_to In_Mirror_Canyon, out_to In_Mirror_Canyon, before [; Swim: "Das Wasser ist eiskalt, und du w@:urdest bald erfrieren."; ]; ! ---------------------------------------------------------------------------- ! The Chasm and the Troll Bridge ! ---------------------------------------------------------------------------- Object In_Sloping_Corridor "Gewundener Korridor" with description "Du bist in einem langen, kurvigen Korridor, welcher sich auf beide Seiten bis ausser Sichtweite windet.", d_to In_Large_Low_Room, u_to On_Sw_Side_Of_Chasm, cant_go "Der Korridor windet sich steil rauf und runter."; Object On_Sw_Side_Of_Chasm "Auf der SW-Seite der Kluft" with description "Du stehst auf einer Seite einer langen, tiefen Kluft. Ein schwerer weisser Nebel, welcher von unten aufsteigt, verdunkelt die Sicht auf die weit entfernte andere Seite. Ein s@:udwestlicher Pfad f@:uhrt weg von der Kluft in einen gewundenen Korridor.", ne_to CrossRicketyBridge, sw_to In_Sloping_Corridor, d_to In_Sloping_Corridor, cant_go "Der Pfad windet sich s@:udwestlich.", before [; Jump: if (RicketyBridge in self) "Ich schlage respektvoll vor, dass du die Br@:ucke @:uberquerst anstatt zu springen."; deadflag=1; "Du hast es nicht geschafft."; ]; [ CrossRicketyBridge; if (Troll has general || Troll in nothing) { give Troll ~general; if (Bear has general) { remove Bear; remove self; give Wreckage ~absent; remove RicketyBridge; give RicketyBridge absent; StopDaemon(Bear); deadflag=1; "Gerade als du die andere Seite erreichst biegt sich die Br@:ucke unter dem Gewicht des B@:aren, welcher dir immer noch folgte. Du tastest verzweifelt nach Halt, aber in dem Augenblick, wo die Br@:ucke zusammenbricht, stolperst du zur@:uck und f@:allst in die Kluft."; } return RicketyBridge; } if (Troll in location) "Der Troll l@:asst dich nicht vorbei."; move Troll to location; "Der Troll macht einen Schritt neben der Br@:ucke hervor und blockiert deinen Weg."; ]; Object -> RicketyBridge with adj "wacklig", short_name "Br@:ucke", dekl 9, description "Sie sieht ganz wie eine gew@:ohnliche, aber unstabile Br@:ucke aus.", describe [; print "Eine wacklige Holzbr@:ucke erstreckt sich @:uber die Kluft. Sie verschwindet im Nebel.^^ Auf einem Schild, das an die Br@:ucke geheftet ist, steht: ~Halt! Bezahle den Troll!~^"; if (Troll notin location) "Der Troll ist nirgends zu sehen."; rtrue; ], name "bruecke" "wacklig" "unstabil" "instabil" "seil" "wackelnd", 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 female static door open; Object -> -> Troll with dekl 1, short_name "Troll", adj "stramm", description "Trolle sind nahe Verwandte der Felsen und haben eine Haut wie ein Rhinozeros.", initial "Ein strammer Troll steht neben der Br@:ucke und besteht darauf, dass du ihm eine Kostbarkeit zuwirfst, bevor du die Br@:ucke @:uberqueren darfst.", name "troll" "stramm", life [; Attack: "Der Troll lacht laut @:uber deinen peinlichen Versuch, ihn zu verletzen."; ThrowAt, Give: if (noun ofclass Treasure) { remove noun; move Troll to RicketyBridge; give Troll general; score=score-5; "Der Troll nimmt deine Kostbarkeit und hastet damit weg ausser Sichtweite."; } if (noun==tasty_food) "V@:ollerei ist kein Laster des Trolls. Habgier, wie auch immer, ist eines."; "Der Troll nimmt behende ", (den) noun, ", untersucht ", (ihn) noun, " genau und wirft ", (ihn) noun, " zur@:uck, konstatierend: ~Gutes Handwerk, aber es ist nicht wertvoll genug.~"; Order: "Du w@:arst gl@:ucklich du k@:onntest."; Answer, Ask: "Trolle machen nur kl@:agliche Konversation."; ], has male animate; Object Wreckage with dekl 2, short_name "@:Uberrest", post "der Br@:ucke", initial "Die @:Uberreste der Br@:ucke des Trolls (und ein toter B@:ar) sind auf dem Grund der Kluft zu sehen.", name "ueberrest" "rest" "bruecke" "tot" "baer", before [; "Die @:Uberreste sind zu weit unten."; ], found_in On_Sw_Side_Of_Chasm On_Ne_Side_Of_Chasm has male pluralname static absent; Object On_Ne_Side_Of_Chasm "Auf der NO-Seite der Kluft" with description "Du bist auf der weiter entfernetn Seite der Kluft. Ein nord@:ostlicher Pfad f@:uhrt weg von der Kluft auf dieser Seite.", sw_to CrossRicketyBridge, ne_to In_Corridor, before [; Jump: if (RicketyBridge in self) "Ich schlage dir respektvoll vor, dass du die Br@:ucke @:uberquerst anstatt zu springen."; deadflag=1; "Du hast es nicht geschafft."; ], has nodwarf; Object In_Corridor "Im Korridor" with description "Du bist in einem langen Ost/West-Korridor. Ein schwaches Grollen ist von weit her zu h@:oren.", w_to On_Ne_Side_Of_Chasm, e_to At_Fork_In_Path has nodwarf; ! ---------------------------------------------------------------------------- ! The Volcano ! ---------------------------------------------------------------------------- Object At_Fork_In_Path "An einer Wegverzweigung" with description "Der Pfad verzweigt sich hier. Die linke Abzweigung f@:uhrt nach Nordosten. Ein dumpfes Grollen scheint in dieser Richtung lauter zu werden. Die rechte Abzweigung f@:uhrt s@:udwestlich eine leichte Kurve hinunter. Der Hauptkorridor f@:uhrt herein aus dem 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 "An der Verzweigung mit warmen W@:anden" with description "Die W@:ande sind hier ziemlich warm. Von Norden her ist ein konstantes Donnern zu h@:oren, so laut, dass die ganze H@:ohle zu zittern scheint. Eine andere Passage f@:uhrt s@:udw@:arts und ein niedriger Kriechgang geht ostw@:arts.", 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 "Beim atemberaubenden Anblick" with description "Du stehst am Rande eines atemberaubenden Anblicks. Weit unter dir ist ein aktiver Vulkan, aus dem riesige Mengen geschmolzener Lava herauswogen und wieder in die Tiefe zur@:uckschwappen. Der gl@:uhende Fels erf@:ullt die entlegensten Winkel der H@:ohle mit einem blutroten Feuerschein, der allem eine unheimliche, makabre Erscheinung verleiht. Die Luft ist erf@:ullt von flackernden Funken aus Asche und dem schweren Geruch von Schwefel. Die W@:ande sind zu heiss, um sie zu ber@:uhren, und das Donnern des Vulkans @:ubert@:ont alle anderen Ger@:ausche. Eingebettet in die zerkl@:uftete Decke weit @:uber dir sind Myriaden von verschlungenen Formationen aus reinem, weissem Alabaster, welche das d@:ustere Licht zu finsteren Erscheinungen auf den W@:anden zerstreuen. Auf einer Seite hat es eine tiefe Schlucht, gef@:ullt mit einem bizarren Chaos aus grotesk geformten Felsen, die aussehen, als h@:atte der Teufel h@:ochstselbst sie gehauen. Ein immenser Feuerfluss kracht aus den Tiefen des Vulkans, brennt seinen Weg durch die Schlucht und st@:urzt eine bodenlose Grube hinunter, weit links von dir. Auf der rechten Seite eruptiert ein immenser Geysir aus gl@:uhendem Dampf kontinuierlich aus einer kahlen Insel in der Mitte eines schwefligen Sees, der omin@:os blubbert. Die weit entfernte rechte Wand gl@:uht flammend in einem eigenen, fluoreszierenden Licht, welches der sowieso schon h@:ollischen Szene zus@:atzliche infernalische Pracht verleiht. Eine dunkle, unheimliche Passage f@:uhrt s@:udlich hinaus.", s_to At_Junction_With_Warm_Walls, out_to At_Junction_With_Warm_Walls, d_to "Don't be ridiculous!", before [; Jump: <>; ], has light; Object -> Vulkan with adj "aktiv", dekl 1, short_name "Vulkan", description "Riesige Mengen geschmolzener Lava wogen heraus aus dem Vulkan und schwappen zur@:uck in die Tiefen. Der gl@:uhende Fels erf@:ullt die entlegensten Winkel der H@:ohle mit einem blutroten Feuerschein, der allem eine unheimliche, makabre Erscheinung verleiht.", name "vulkan" "fels" "aktiv" "gluehend" "blut" "blutrot" "rot" "unheimlich" "makaber" has male scenery; Object -> Funke with post "aus Asche", short_name "Funke", dekl 6, description "Die Funken sind zu weit entfernt von dir, um sie genauer untersuchen zu k@:onnen.", name "funke" "asche" "luft" "flackernd" has male scenery multitude; Object -> Decke with dekl 9, short_name "Decke", adj "zerkl@:uftet", description "Eingebettet in die zerkl@:uftete Decke weit @:uber dir sind Myriaden von verschlungenen Formationen aus reinem, weissem Alabaster, welche das d@:ustere Licht zu finsteren Erscheinungen auf den W@:anden zerstreuen.", name "decke" "formation" "licht" "erscheinung" "zerklueftet" "verschlungen" "duester" "finster" has female scenery; Object -> "Schlucht" with adj "tief", dekl 7, description "Die schlucht ist gef@:ullt mit einem bizarren Chaos aus grotesk geformten Felsen, die aussehen, als h@:atte der Teufel h@:ochstselbst sie gehauen.", name "Schlucht" "chaos" "fels" "tief" "bizarr" "grotesk" "geformt" has female scenery; Object -> Feuerfluss with dekl 1, short_name "Feuerfluss", description "Der Feuerfluss kracht aus den Tiefen des Vulkans, brennt seinen Weg durch die Schlucht und st@:urzt eine bodenlose Grube hinunter, weit links von dir.", name "fluss" "feuer" "feuerfluss" "tiefe" "grube" "bodenlos" "feurig" has male scenery; Object -> Geysir with adj "immens", short_name "Geysir", description "Der Geysir aus gl@:uhendem Dampf eruptiert kontinuierlich aus einer kahlen Insel in der Mitte eines schwefligen Sees, der omin@:os blubbert.", name "geysir" "dampf" "insel" "see" "immens" "gluehend" "kahl" "schweflig" "kontinuierlich" "schwefelig" "blubbert" "blubbernd" "ominoes" "mitt" has male scenery; Object In_Chamber_Of_Boulders "Im Felsenraum" with description "Du bist in einem kleinen Raum gef@:ullt mit grossen Felsen. Die W@:ande sind sehr warm. Die Luft in dem Raum wird durch die Hitze zum Ersticken dr@:uckend. Der einzige Ausgang ist ein nach Westen f@:uhrender Kriechgang, durch den ein tiefes Grollen ert@:ont.", w_to At_Junction_With_Warm_Walls, out_to At_Junction_With_Warm_Walls has nodwarf; Object -> Fels2 with dekl 3, short_name "Fels", description "Es sind ganz normale Felsen. Sie sind warm.", name "fels" "stein" "gross" has male pluralname scenery multitude; Treasure -> Gewuerz with adj "selten", dekl 1, short_name "Gew@:urz", name "gewuerz" "selten" "exotisch", depositpoints 14, article "eine Auswahl ", before [; Smell, Examine: "Sie riechen wunderbar exotisch!"; ], has neuter pluralname multitude; Object In_Limestone_Passage "In der Kalksteinpassage" with description "Du gehst entlang einer leicht gewundenen Nord/S@:ud-Passage, die ausgekleidet ist mit eigenartig geformten Kalksteinformationen.", 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 -> Kalksteinformation with dekl 9, short_name "Kalksteinformation", description "Immer wieder springt dir eine speziell fremdartige Form ins Auge.", name "formation" "form" "stein" "kalk" "kalkstein" "kalksteinformation" "fremdarig" "speziell" "eigenartig" "geformt" "form" has female pluralname scenery multitude; ! ---------------------------------------------------------------------------- ! If you go down to the woods today... ! ---------------------------------------------------------------------------- Object In_Front_Of_Barren_Room "Vor dem leeren Raum" with description "Du stehst am Eingang eines grossen, leeren Raums. Auf einem @:uber dem Eingang befestigten Schild steht: ~Vorsicht! B@:ar im Raum!~", w_to In_Limestone_Passage, u_to In_Limestone_Passage, e_to In_Barren_Room, in_to In_Barren_Room has nodwarf; Object -> Warnschild with description "Auf dem Schild steht: ~Vorsicht! B@:ar im Raum!~", name "schild" "leer" "raum" "warnschild" "warnung", short_name "Warnschild", dekl 4, has neuter scenery; Object In_Barren_Room "Im leeren Raum" with description "Du bist im leeren Raum. Die mitte des Raums ist v@:ollig leer mit Ausnahme von ein wenig Staub. Spuren im Staub f@:uhren weit weg ans Ende des Raums. Der einzige Ausgang ist der Weg von wo du hereinkamst.", w_to In_Front_Of_Barren_Room, out_to In_Front_Of_Barren_Room has nodwarf; Object -> Staub with dekl 1, short_name "Staub", description "Er sieht aus wie normaler Staub.", name "staub" "spur" has male scenery; Object -> Bear with dekl 3, short_name "H@:ohlenb@:ar", adj "gross", following_you false, angry true, describe [; if (self.following_you) "Ein grosser, zahmer B@:ar folgt dir nach."; if (self.angry) "Ein grimmiger H@:ohlenb@:ar be@:augt dich vom weit entfernten anderen Ende des Raums!"; if (location==In_Barren_Room) "Ein freundlicher H@:ohlenb@:ar sitzt gelassen in einer Ecke."; "Ein zufrieden aussehender B@:ar spaziert in der N@:ahe umher."; ], name "baer" "gross" "zahm" "grimmig" "hoehle" "hoehlenbaer", life [; Attack: if (axe in player) <>; if (self.angry == false) "Der B@:ar ist verwirrt; er will nur dein Freund sein."; "Womit? Mit deinen blossen H@:anden? Gegen *seine* B@:arenh@:ande??"; ThrowAt: if (noun~=axe) <>; if (self.angry == false) "Der B@:ar ist verwirrt; er will nur dein Freund sein."; move axe to location; give axe general; "Die Axt verfehlt ihn und landet neben dem B@:ar, wo du sie nicht holen kannst."; Give: if (noun == tasty_food) { give axe ~general; remove tasty_food; self.angry = false; "Der B@:ar schlingt gierig dein Essen hinunter. Danach scheint er sich betr@:achtlich zu beruhigen und wird sogar ziemlich freundlich."; } if (self.angry == false) "Der B@:ar scheint an deinem Angebot nicht sehr interessiert zu sein."; "Uh-oh -- dein Angebot mach den B@:ar nur noch w@:utender!"; Order, Ask, Answer: "Dies ist ein B@:ar mit sehr wenig Grips."; ], before [; Examine: print "Der B@:ar ist extrem gross, "; if (self.angry == false) "aber er scheint freundlich zu sein."; "und er sieht recht grimmig aus!"; Take, Catch: if (self.angry) "Du machst sicher Witze!"; if (golden_chain has locked) "Der B@:ar ist immer noch an die Wand gekettet."; self.following_you = true; StartDaemon(Bear); "In Ordnung, der B@:ar folgt dir nun umher."; Drop, Release: if (self.following_you == false) "Was?"; self.following_you = false; StopDaemon(Bear); if (Troll in location) { remove Troll; "Der B@:ar tapst zum Troll, welcher einen erschreckten Schrei ausst@:osst und davonhastet. Der B@:ar gibt die Verfolgung bald auf und schlendert zur@:uck."; } "Der B@:ar schlendert weg von dir."; ], daemon [; if (location==thedark) rfalse; if (self in location) { if (location==At_Breath_Taking_View) "^Der B@:ar brummt vergn@:ugt."; rfalse; } move self to location; "^Der B@:ar tapst hinter dir her."; ], has male animate; Treasure -> golden_chain with adj "golden", short_name "Kette", dekl 9, depositpoints 14, describe [; if (self has locked) "Der B@:ar wird zur@:uckgehalten von einer massiven goldenen Kette."; "Eine massive goldene Kette liegt aufgewickelt auf dem Boden!"; ], description "Die Kette hat dicke Glieder aus massivem Gold!", name "kette" "glied" "fessel" "massiv" "gold" "golden" "dick", with_key set_of_keys, before [; Take: if (self has locked) { if (Bear.angry) "Sie ist am grimmigen B@:ar festgeschlossen!"; "Sie ist am freundlichen B@:ar festgeschlossen."; } Unlock: if (Bear.angry) "Es gibt keinen Weg am B@:ar vorbei um die Kette aufzuschliessen, was vermutlich auch besser so ist."; Lock: if (self hasnt locked) "Der Mechanismus wird sich nicht wieder schliessen."; ], after [; Unlock: "Du schliesst die Kette auf und befreist den zahmen B@:ar."; ], has female lockable locked; ! ---------------------------------------------------------------------------- ! The Different Maze ! ---------------------------------------------------------------------------- Class DiffMazeRoom with short_name "Labyrinth"; DiffMazeRoom Different_Maze_1 with description "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Du bist in einem Labyrinth aus gewundenen kleinen Passagen, jede anders als die andere.", 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 "Sackgasse, in der N@:ahe des Automaten", description "Du hast eine Sackgasse erreicht. Es hat hier einen massiven Automaten.", n_to Different_Maze_2, out_to Different_Maze_2 has nodwarf; Object -> Mitteilung with post "im Staub", short_name "Mitteilung", dekl 9, description "Die Mitteilung lautet, ~Die ist nicht das Labyrinth wo der Pirat seine Schatzkiste stehen l@:asst.~", name "mitteilung" "kritzelei" "gekritzel" "gekritzelt" "schrift" "notiz" "blumig", initial "Hmmm... Hier ist eine Mitteilung in den Staub gekritzelt, in einer blumigen Schrift." has female scenery; Object -> VendingMachine with dekl 6, short_name "Automat", description "Die Anleitung auf dem Automaten lautet: ~Wirf M@:unzen ein um frische Batterien zu erhalten.~", name "maschine" "einwurf" "muenzeinwurf" "verkauf" "massiv" "batterie" "automat", before [; Receive: if (noun==rare_coins) { move fresh_batteries to location; remove rare_coins; "Kurz nachdem du die M@:unzen in den M@:unzeinfurf gesteckt hast, gibt der Automat ein knirschendes Ger@:ausch von sich, und ein Paar frische Batterien f@:allt vor deine F@:usse."; } "Der Automat sieht aus als w@:are er gemacht um M@:unzen anzunehmen."; Attack: "Der Automat ist ziemlich stabil aus und @:uberlebt deinen Angriff ohne einen einzigen Kratzer."; LookUnder: "Du findest nichts unter dem Automaten."; Search: "Du kommst nicht in den Automaten hinein."; Take: "Der Automat ist viel zu schwer um ihn zu bewegen."; ], has male scenery; Object -> -> fresh_batteries with adj "frisch", short_name "Batterie", dekl 9, description "Sie sehen aus wie normale Batterien. (Eine Grabesstimme sagt: ~Gehen immer noch!~)", initial "Es hat hier frische Batterien.", name "batterie" "frisch" "paar", before [; Count: "Ein Paar."; ], has female pluralname; Object old_batteries with adj "entladen", short_name "Batterie", dekl 9, description "Sie sehen aus wie normale Batterien.", initial "Einige entladene Batterien wurden hier weggeschmissen.", name "batterie" "entladen" "paar", before [; Count: "A pair."; ], has female pluralname; ! ---------------------------------------------------------------------------- ! Dwarves! ! ---------------------------------------------------------------------------- Object dwarf with adj "bedrohlich" "klein", short_name "Zwerg", dekl 1, name "zwerg" "bedrohlich" "haesslich" "widerlich" "klein" "gemein" "kerl" "gefaehrlich", description "Es ist vermutlich keine gute Idee zu nahe zu kommen. Ich begn@:uge mich damit, zu sagen, dass der kleine Kerl recht agressiv ist.", initial "Ein bedrohlicher kleiner Zwerg versteckt sich im Schatten.", 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--; "Ein Zwerg erscheint, aber mit einem zuf@:alligen Blasen verdampft ihn der Drache!"; } move dwarf to location; "Ein bedrohlicher kleiner Zwerg kommt aus dem Schatten hervor!"; } 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 "^Der Zwerg schleicht dir nach...^"; } else { remove dwarf; return; } } if (random(100)<=75) { new_line; if (self hasnt general) { move axe to location; give self general; remove self; "Der Zwerg wirft eine gef@:ahrliche kleine Axt nach dir, verfehlt, flucht und rennt weg."; } if (location==In_Mirror_Canyon) "Der Zwerg bewundert sich im Spiegel."; print "Der Zwerg wirft ein gef@:ahrliches kleines Messer nach dir, "; if (random(1000)<=95) { deadflag=1; "und trifft!"; } "aber verfehlt!"; } if (random(3)==1) { remove dwarf; "^Erm@:udet davon stiehlt sich der Zwerg davon."; } ], before [; Kick: "Du kickst den Zwerg durch den Raum. Er flucht, steht dann auf und wischt sich ab. Jetzt ist er verr@:uckter als je!"; ], life [; ThrowAt: if (noun==axe) { if (random(3)~=1) { remove self; move axe to location; self.number--; "Du hast einen kleinen Zerg get@:otet! Der K@:orper verschwindet in einer @:oligen schwarzen Rauchwolke."; } move axe to location; "Verfehlt! Der kleine Zwerg weicht der Axt aus."; } <>; Give: if (noun==tasty_food) "Du Esel, Zwerge esse nur Kohle! Jetzt hast du ihn *wirklich* verr@:uckt gemacht!"; "Der Zwerg ist kein bisschen interessiert an deinem Angebot. (Der Grund daf@:ur ist vielleicht, dass er, wenn er dich t@:otet, sowieso alles bekommt was du hast.)"; Attack: "Nicht mit deinen blossen H@:anden. Unm@:oglich."; ], has male animate; Object axe with post "des Zwergs", short_name "Axt", dekl 7, name "axt" "klein" "zwerg", initial "Es hat hier eine kleine Axt.", description "Es ist nur eine kleine Axt.", before [; if (axe hasnt general) rfalse; Examine: "Sie liegt neben dem B@:aren."; Take: "Keine Chance. Sie liegt neben dem grimmigen B@:aren, ziemlich in Sicherheit."; ], has female; ! ---------------------------------------------------------------------------- ! 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) "^Ein b@:artiger Pirat erscheint, erblickt den Zwerg und rennt davon."; 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); "^Ein schwaches raschelndes Ger@:ausch ist aus der Dunkelheit hinter dir zu h@:oren. Als du dich nach ihnen umdrehst, entdeckst du einen b@:artigen Piraten. Er tr@:agt eine grosse Truhe.^^ ~Oh Schreck oh Graus!~ schreit er, ~Ich bin entdeckt! Ich verzieh' mich am besten ins Labyrinth, um meine Truhe zu verstecken!~^^ Damit verschwindet er in der Dunkelheit."; } 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; } "^Aus dem Schatten hinter dir springt ein b@:artiger Pirat! ~Har, har,~ gluckst er. ~Ich nehme einfach all die Beute und verstecke sie mit meiner Truhe tief im Labyrinth!~ Er schnappt sich deine Sch@:atze und verschwindet in der Dunkelheit."; ]; ! ---------------------------------------------------------------------------- ! 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); "^Eine durch die H@:ohle hallende Grabesstimme sagt: ~H@:ohle wird bald geschlossen. An alle Abenteurer: Verlassen Sie sofort die H@:ohle durch das Hauptb@:uro.~"; ]; 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 "^Die Grabesstimme intoniert: ~Die H@:ohle ist jetzt geschlossen.~ Als die Echos ersterben blitzt ein gleissendes Licht auf (und eine kleine Wolke orangen Rauches erscheint). . .^^ Sowie deine Augen wieder sehen, blickst du um dich...^"; PlayerTo(At_Ne_End); ]; ! ---------------------------------------------------------------------------- ! The End Game ! ---------------------------------------------------------------------------- Object At_Ne_End "NO-Ende des Lagers" with description "Du stehst am nord@:ostlichen Ende eines immensen Raums, sogar gr@:osser als der gigantische Raum. Es scheint ein Lager zu sein f@:ur das ~Abenteuer~-Programm. Massive Fackeln weit @:uber dir tauchen den Raum in ein rauchiges gelbes Licht. Verstreut um dich herum sind ein Stapel von Flaschen (alle leer), eine Aufzucht von jungen, ruhig murmelnden Bohnenstengeln, eine Austernbank, ein B@:undel schwarzern Stangen mit rostigen Sternen an deren Ende und eine Sammlung von Blechlaternen zu sehen. Dr@:uben auf einer Seite schl@:aft eine Unmenge von Zwergen auf dem Boden, laut schnarchend. Auf einem Schild in der N@:ahe steht geschrieben: ~Die Zwerge nicht st@:oren!~", sw_to At_Sw_End has light; Object -> Spiegel2 with adj "enorm", dekl 2, short_name "Spiegel", description "Er sieht aus wie ein normaler, wenn auch enormer Spiegel.", name "spiegel" "enorm" "riesig" "gross" "aufgehaengt" "haengend" "gewaltig" "eitelkeit", initial "Ein immenser Spiegel h@:ang an einer Wand und erstreckt sich bis ans andere Ende des Raums, wo verschiedene andere Objekte in der Distanz dunkel zu sehen sind.", found_in At_Ne_End At_Sw_End, before [; Attack: print "Du versetzt dem Spiegel einen widerhallenden Schlag, worauf er in eine Myriade winziger Fragmente zerbricht.^^"; SleepingDwarves.wake_up(); rtrue; ], has male static; Object -> Sammlung with post "von Abenteuer-Spiel-Material", dekl 9, short_name "Sammlung", description "Du hast alles hier schon gesehen, wenn auch in irgendwie anderen Kontexten.", name "sammlung" "spiel" "zeug" "muell" "material" "fackeln" "objekte" "abenteuer" "lager" "massiv" "irgendwie" "ander", before [; Take: "Als du realisierst, dass das Wegnehmen der Beute hier das Spiel f@:ur zuk@:unftige Spieler ruinieren w@:urde, l@:asst du die ~Abenteuer~-Materialien, wo sie sind."; ], has female scenery; Object -> SleepingDwarves with adj "schlafend", short_name "Zwerg", dekl 1, description "Ich w@:urde die Zwerge nicht bel@:astigen wenn ich dich w@:are.", name "zwerg" "schlafend" "schnarchend" "unmenge", article "hunterte von zornigen", before [; Take: "Was, alles zusammen?"; ], life [; WakeOther: print "Du gibst dem n@:achsten Zwerg einen Puff, er wacht murrend auf, wirft einen Blick auf dich, flucht und greift nach seiner Axt.^^"; self.wake_up(); rtrue; Attack: self.wake_up(); rtrue; ], wake_up [; deadflag=1; "Der daraus resultierende Krawall hat die Zwerge aufgeweckt. Es hat jetzt dutzende von bedrohlichen kleinen Zwergen im Raum mit dir! Die meisten von ihnen werfen Messer nach dir! Jedes von ihnen trifft dich!"; ], has male pluralname animate scenery multitude; Object At_Sw_End "SW-Ende des Lagers" with description "Du stehst am s@:udwestlichen Ende des Lagers. Auf einer Seite ist eine Grube voll von grimmigen gr@:unen Schlangen. Auf der anderen Seite ist eine Linie kleiner Weidenk@:afige, jeder von ihnen enth@:alt einen kleinen, schmollenden Vogel. In einer Ecke ist ein B@:undel schwarzer Stangen mit rostigen Zeichen an ihrem Ende. Eine grosse Zahl samtener Kissen sind am Boden verstreut. Ein gewaltiger Spiegel erstreckt sich hin nach Nordosten. Zu deinen F@:ussen ist ein grosses Stahlgitter und daneben ein Schild, auf dem geschrieben steht: ~TRESORRAUM. Schl@:ussel im Hauptb@:uro.~", d_to RepositoryGrate, ne_to At_Ne_End has light; Object -> RepositoryGrate with name "ganz" "gewoehnlich" "stahl" "gitter" "stahlgitter", short_name "Stahlgitter", dekl 2, description "Es sieht aus wie ein ganz gew@:ohnliches Stahlgitter.", when_open "Das Gitter ist offen.", when_closed "Das Gitter ist geschlossen.", door_dir d_to, door_to Outside_Grate, with_key 0 has neuter static door locked openable; Object -> Sammlung2 with post "von Abenteuer-Spiel-Material", dekl 9, short_name "Sammlung", description "Du hast alles hier schon gesehen, wenn auch in irgendwie anderen Kontexten.", name "grube" "schlange" "grimmig" "gruen" "sammlung" "spiel" "zeug" "muell" "material" "fackeln" "objekte" "abenteuer" "lager" "massiv" "irgendwie" "ander", before [; Take: "Als du realisierst, dass das Wegnehmen der Beute hier das Spiel f@:ur zuk@:unftige Spieler ruinieren w@:urde, l@:asst du die ~Abenteuer~-Materialien wo sie sind."; ], has female scenery; Object -> black_mark_rod with adj "schwarz", short_name "Stange", post "mit einem rostigen Zeichen am Ende", dekl 1, description "Es ist ein einen Meter langer schwarzer Stab mit einem rostigen Zeichen am Ende.", initial "Ein einen Meter langer schwarzer Stab mit einem rostigen Zeichen an einem Ende liegt in der N@:ahe.", name "stab" "schwarz" "rostig" "zeichen" "ein" "meter" "eisen" "explosiv" "dynamit" "sprengladung", before [; Wave: "Nichts passiert."; ], has female; ! ---------------------------------------------------------------------------- ! Some entry points ! ---------------------------------------------------------------------------- [ Initialise; location=At_End_Of_Road; score = 36; StartDaemon(dwarf); StartDaemon(pirate); StartDaemon(cave_closer); print "^^^^^Willkommen zum Abenteuer!^^"; ]; [ PrintRank; print " Das gibt dir den Rang eines "; if (score >= 348) "Abenteurer-Grossmeisters!"; if (score >= 330) "Meisters erster Klasse."; if (score >= 300) "Meisters zweiter Klasse."; if (score >= 200) "Juniorenmeisters."; if (score >= 130) "hartgesottenen Abenteurers."; if (score >= 100) "erfahrenen Abenteurers."; if (score >= 35) "Abenteurers."; if (score >= 10) "Neulings."; "Amateurs."; ]; [ DarkToDark; if (dark_warning == false) { dark_warning = true; "Es ist jetzt stockdunkel. Wenn du weitergehst wirst du wahrscheinlich in eine Grube fallen."; } if (random(4) == 1) { deadflag = 1; "Du bist in eine Grube gefallen und hast dir alle Knochen in deinem K@:orper gebrochen!"; } rfalse; ]; ! ---------------------------------------------------------------------------- ! Menu-driven help (not really a part of the game itself) ! ---------------------------------------------------------------------------- [ HelpMenu; if (menu_item==0) { item_width=8; item_name="@:Uber Abenteuer"; if (deadflag==2) return 4; else return 3; } if (menu_item==1) { item_width=6; item_name="Anleitung"; } if (menu_item==2) { item_width=4; item_name="Geschichte"; } if (menu_item==3) { item_width=6; item_name="Authentizit@:at"; } if (menu_item==4) { item_width=7; item_name="Wusstest du schon..."; } ]; [ HelpInfo; if (menu_item==1) { print "Ich weiss von Orten, Taten und Dingen. Du kannst mich steuern indem du Befehle benutzt, die ganze S@:atze sind. Um dich zu bewegen, versuche Kommandos wie ~hinein~, ~ost~, ~west~, ~nord~, ~s@:ud~, ~rauf~, ~runter,~ ~rein ins haus,~ ~klettere auf die Stange~ etc.^ Wenn du zu einem Raum gehen m@:ochtest wo du schon einmal warst, gelangst du dorthin, indem du ~gehe zum Innern des Hauses~ tippst. Mit ~Richtungen~ kannst du dir eine Liste aller Ausg@:ange aus dem Raum angeben lassen. Wer die Hilfe nicht benutzen will kann sie mit ~Richtungen aus~ deaktivieren.^^"; print "Ich weiss von einigen speziellen Objekten wie etwa einer schwarzen, in der H@:ohle versteckten Stange. Diese Objekte k@:onnen dadurch manipuliert werden, dass du einige der T@:atigkeitsw@:orter benutzt, die ich weiss. Normalerweise wirst du ein Verb, gefolgt von einem Objekt, schreiben m@:ussen (zusammen mit deskriptiven Adjektiven, falls gew@:unscht), aber manchmal kann ich auf das Objekt schliessen vom Verb allein. Einige Objekte implizieren auch Verben, zum Beispiel ~Inventar~ impliziert ~mache Inventar~, was mich dazu bringt, dir eine Liste zu geben von dem, was du tr@:agst. Die Objekte haben Seiteneffekte; zum Beispiel der Stab erschreckt den Vogel.^^"; print "Viele Kommandos haben Abk@:urzungen. Zum Beispiel kannst du ~i~ tippen anstellen von ~inventar~, ~b objekt~ anstelle von ~betrachte das object~ etc. ~i breit~ @:andert das Format des Inventars in einen einzelnen Satz, ~i Liste~ erzeugt wieder die normalen Listen.^^^"; print "Normalerweise m@:ussen Leute, die Bewegungsprobleme haben, nur ein paar weitere W@:orter ausprobieren. Leute, die ohne Erfolg versuchen, ein Objekt zu manipulieren, versuchen etwas jenseits ihrer (oder meiner!) F@:ahigkeiten und sollten etwas v@:ollig anderes ausprobieren.^^"; print "Denk daran, dass H@:ohlen-Passagen sich h@:aufig winden und dass das Verlassen eines Raumes nach Norden nicht garantiert, dass man den n@:achsten aus dem S@:uden betritt.^^"; print "Wenn du dein Abenteuer fr@:uhzeitig beenden willst, tippe ~Ende~. Um dein Abenteuer zu unterbrechen, so dass du es sp@:ater fortsetzen kannst, tippe ~speichere~, und um ein gespeichertes Spiel wieder aufzunehmen tippe ~lade~. Um zu sehen wie gut du es machst, tippe ~Punkte~. Um die volle Punktzahl f@:ur eine Wertsache zu erreichen, musst du es sicher im Geb@:aude deponieren, dadurch erh@:altst du einen Teil der Punkte nur f@:ur das Plazieren. Du verlierst Punkte, wenn du get@:otet wirst, oder durch das Beenden, wenn das erstere dich auch mehr kostet. Es gibt auch Punkte daf@:ur wie viele (wenn @:uberhaupt) der H@:ohlen du erforscht hast; im Speziellen gibt es einen grossen Bonus f@:ur das Hineinkommen (um die Anf@:anger vom Rest des Packs zu unterscheiden), und es hat weitere Wege, um zu entscheiden, ob du einige der entsetzlicheren Teile durchgemacht hast.^^"; print "Wenn du das Gef@:uhl hast, dass du alle Sch@:atze gefunden hast, fahre einfach eine Weile mit dem Erforschen fort. Wenn nichts interessantes passiert, hast du noch nicht alle gefunden. Wenn etwas interessantes *passiert*, heisst das, dass du einen Bonus bekommst und eine Gelegenheit hast, viele weitere Punkte zu Sammeln im Teil der Meister.^^"; "Viel Gl@:uck!"; } if (menu_item==2) { print "Vielleicht der erste Abenteurer war ein Sklave, und zwar ein Mulatte namens Steven Bishop, geboren um 1820: 'zierlich, anmutig und sehr sch@:on'; ein 'schneller, k@:uhner, enthusiastischer' F@:uhrer durch die Mammut-H@:ohle im Kentucky-Karst. Die Geschichte der H@:ohle ist ein kurioser Mikrokosmos amerikanischer Geschichte. Ihre Entdeckung ist eine Legende, welche zur@:uckgeht in die 1790er; es wird erz@:ahlt, dass ein J@:ager, John Houchin, einen verwundeten B@:aren in eine grosse Grube in der N@:ahe des Green River verfolgte und "; print "@:uber den Eingang stolperte. Der Eingang war dicht bev@:olkert mit Flederm@:ausen und im Krieg von 1812 wurde intensiv nach Guano gegraben, welcher zu Nitratf@:assern verarbeitet wurde, um Salpeter f@:ur Schiesspulver zu gewinnen. Nach dem Krieg fielen die Preise; aber die H@:ohle wurde eine kleine Attraktion, als eine vertrocknete Indianermumie in der N@:ahe gefunden wurde, aufrecht sitzend in einem Steinsarg, umgeben von Talismanen. Im Jahre 1815 wurde Fawn Hoof (Huf des Hirschkalbs), ihr @:Ubername nach einem ihrer Talismanen, von einem Zirkus mitgenommen, welcher quer durch Amerika zu einem Publikumsmagenten wurde (an die Tournee erinnert das Lied von Don McLean: 'The Legend of Andrew McCrew'). Sie endete im 'Smithsonian', aber in den 1820ern wurde, vor allem dank ihren posthumen Anstrengungen, die H@:ohle zu einem Weltwunder erkl@:art.^^"; print "Im fr@:uhen neunzehnten Jahrhundert waren europ@:aische H@:ohlen grosse Touristenattraktionen, aber kaum jemand besuchte die Mammut, 'Weltwunder' hin oder her. Sie war damals auch nicht besonders gross (der Name war ein @:Uberbleibsel der Mineure, die mit ihren Mammut-Ertr@:agen von Guano prahlten). Im Jahre 1838 kaufte der Eigent@:umer von Stephen Bishop die H@:ohle. Stephen, wie er (als Sklave) immer genannt wurde, war in jeder Hinsicht ein bemerkenswerter Mann: Als Autodidakt in Latein und Griechisch wurde er ber@:uhmt als der 'Oberherrscher' seines unterirdischen K@:onigreiches. Er "; print "entdeckte und benannte den gr@:ossten Teil des Komplexes in seiner Freizeit; er verdoppelte die bekannte Karte in einem Jahr. Der eigene Stil der Namen der H@:ohle - halb klassisch, halb amerikanisch Marke Eigenbau - begann mit Stephen: the River Styx, the Snowball Room, Little Bat Avenue, the Giant Dome (der Fluss Styx, der Schneeballraum, kleine Fledermausstrasse, der gigangische Dom). Stephen fand seltsame blinde Fische, Schlangen, stumme Grillen, die @:Uberreste von H@:ohlenb@:aren (wilde, muntere Kreaturen, einen Meter f@:unfzig lang und etwas @:uber einen Meter hoch, sie starben aus am Ende der letzten Eiszeit), jahrhundertealte indianische Gipsarbeiten und immer noch mehr H@:ohle. Seine Karte von 1842, gezeichnet allein aus dem Ged@:achtnis, war vierzig Jahre sp@:ater immer noch in Gebrauch.^^"; print "Als Touristenattraktion (und, da der Eigent@:umer von Stephen ein Philanthrop war, f@:ur kurze Zeit als Sanatorium f@:ur Tuberkulose, nach einer hoffnungslosen medizinischen Theorie) wurde die H@:ohle ein grosses Gesch@:aft: f@:ur Jahrzehnte wurden die Nachbarh@:ohlen in Beschlag genommen und Eigentumsrechte endlos angefochten. Die benachbarte Kette, durch das Houchins Valley in der Flint Ridge, @:offnete die grosse Onyx-H@:ohle im Jahre 1912. In den 1920ern waren die "; print "Kentucky-H@:ohlenkriege in vollem Gange. Rivalisierende Eigent@:umer lenkten die Touristen mit falschen Polizisten um, stellten Hilfskr@:afte ein um die gef@:uhrten Touren der jeweils anderen zu st@:oren, brannten die H@:utten wo Billete verkauft wurden nieder und h@:angten verleumderische und falsche Aush@:angeschilder auf. Das Erkunden der H@:ohle wurde so gef@:ahrlich und geheimnistuerisch, dass 1941 die Regierung der USA eingriff, den Grossteil des Gel@:andes zu einem Nationalpark machte und das H@:ohlenforschen effektiv verbot. Der Goldrausch war auf jeden Fall zu Ende.^^"; print "@:Uberzeugt davon, dass die Mammut-H@:ohle und die Flint Ridge-H@:ohlen alle in einer riesigen Kette verbunden waren, probierten Entdecker w@:ahrend Jahren geheime Eing@:ange aus, auf offizielle Unterst@:utzung hoffend. Durch die 1960er hindurch endeten alle Verbindungen von Flint Ridge - schwierige und mit Wasser gef@:ullte Tunnels - frustrierenderweise in Blockaden aus Felsbrocken. Einer Physikerin 'so d@:unn wie ein Schilfrohr', Patricia Crowther, gelang der Durchbruch im Jahre 1972, als sie durch den 'Tight Spot' (enger Punkt) gelangte und eine schlammige Passage fand: es war ein versteckter Weg in die Mammut-H@:ohle.^^"; print "Gem@:ass dem Willen seines Eigent@:umers wurde Stephen Bishop im Jahre 1856 befreit, zu einer Zeit, als die H@:ohle 226 Strassen, 47 Dome, 23 Gruben und 8 Wasserf@:alle z@:ahlte. Er starb ein Jahr sp@:ater, bevor er seine Frau und seinen Sohn kaufen konnte. In den 1970ern wurde Crowthers schlammige Passage auf seiner Karte gefunden.^^"; print "Die Mammut-H@:ohle ist riesig, ihre volle Ausdehnung ist immer noch eine Sache der Spekulation (Sch@:atzungen variieren zwischen 500km und 800km). Obwohl dieses Spiel oft ~Colossal Cave~ (kolossale H@:ohle) genannt wurde ist es eigentlich eine Simulation der Region ~Bedquilt Cave~ (Steppdecken-H@:ohle). Es folgt Will Crowthers Geschichte, wie es dazu kam:^^"; print "~Ich war damals involviert in ein Ohne-Computer-Rollenspiel namens Kerker und Drachen, und ich war ebenfalls aktiv im H@:ohlenforschen - im speziellen die Mammut-H@:ohle in Kentucky. Pl@:otzlich war ich in eine Scheidung involviert, und das liess mich zur@:uck in einem auf verschiedene Weisen zerrissenen Zustand. Im Speziellen vermisste ich meine Kinder. Auch das H@:ohlenforschen h@:orte auf, weil es schwierig geworden war, also entschied ich mich, herumzubl@:odeln und ein Programm zu schreiben, das eine Rekonstruktion meines H@:ohlenforschens in meiner Phantasie, und auch ein Spiel f@:ur die Kinder, und vielleicht einige Aspekte von Kerker und Drachen, das ich gespielt hatte, war.~^^"; print "~Meine Idee war, dass es ein Computerspiel sein sollte, das nicht einsch@:uchternd ist f@:ur Nicht-Computerleute, und das war einer der Gr@:unde, wieso ich es so machte, dass der Spieler das Spiel mit Eingaben in nat@:urlicher Sprache steuert anstatt mit mehr standardisierten Kommandos. Meinen Kindern machte es viel Freude.~ [Zitiert in ~Genesis II: Creation and Recreation with Computers~, Dale Peterson (1983).]^^"; print "Crowthers urspr@:ungliches FORTRAN-Programm hatte ungef@:ahr f@:unf Sch@:atze, aber kein formales Gewinnen von Punkten. Der Reiz war wirklich das Entdecken, obwohl es Gegner gab, zum Beispiel in Form der Schlange. Ganz wie die wirkliche Bedquilt-Region, hat Crowthers Simulation eine Karte von etwa vier Etagen Tiefe und ist angereichert mit geologischen Details. Ein gutes Beispiel ist die orange S@:aule, welche hinunterf@:uhrt zum Raum des orangen Felsflusses, (dort, wo der Vogel lebt): die wirkliche S@:aule besteht aus Travertin, einem sch@:onen Mineral, das in feuchtem Kalkstein vorkommt.^^"; print "Die Sprache des Spiels ist angef@:ullt mit Verweisen zum H@:ohlenforschen, zu 'Domen' und 'Kriechg@:angen'. Ein 'Tafelraum' zum Beispiel ist eine sehr alte H@:ohle, deren Decke langsam wegbricht in scharfen 'Flocken', welche in verr@:uckten Stapeln am Boden liegen. Das Benutzen des Wortes Raum (enlg. 'room') im Spiel f@:ur alle Arten von H@:ohlen erscheint etwas schlampig in normalem "; print "Englisch, aber es ist im amerikanischen H@:ohlenforschen weit verbreitet und geht so weit zur@:uck wie Stephen Bishop: So k@:onnte der Gebrauch des Wortes 'Raum' im Abenteuer-Spiel f@:ur 'Ort' sogar sein Erbe sein.^^"; print "Das Spiel nahm seinen entschiedenen Schritt zum R@:atsell@:osen als Don Woods, ein Student in Stanford, es 'debuggte' (= Fehler verbesserte) und erweiterte. Er verdreifachte die Zahl der Sch@:atze und f@:ugte die nicht-geologischen Zonen hinzu: alles von der Br@:ucke des Trolls an, zusammen mit fast dem ganzen Vorraum auf dem 'Steppdecken'-Niveau. Alle der vielen Imitationen und Erweiterungen des originalen Abenteuers basieren essentiell auf Woods 350-Punkte-Edition. (Viele aufgedunsene, korrumpierte oder verbesserte - es kommt darauf an wie man es sieht - Versionen des Spiels sind auf dem Internet im Verkehr, und der beste Weg sie zu identifizieren ist @:uber die maximal erreichbare Punktezahl. Es existieren viele Versionen mit Punktezahlen bis zu 400 oder 500, und eines mit bis zu 1000. Woods selbst f@:ahrt fort mit dem Ver@:offentlichen von neuen Versionen des Spiels. Die meisten anderen Erweiterer haben nicht sein Talent.)^^"; print "Obwohl das Spiel von der puren Simulation abgekommen ist, bleibt ein guter Teil davon realistisch. H@:ohlenforscher kehren um, wenn ihre Karbitlampen flackern; es hat tats@:achlich mysteri@:ose Zeichen und Initialen auf den H@:ohlenw@:anden, einige wurden von den Mineuren zur@:uckgelassen, einige von Bishop, einige von den Entdeckern der 1920er. Nat@:urlich hat es weder einen aktiven Vulkan in Zentral-Kentucky noch hat es dort Drachen und Zwerge. Aber sogar diese Ausschm@:uckungen sind, in einem gewissen Sinne, geerbt von "; print "Traditionen: wie die meisten der fr@:uhen Rollsnepiele, verdankt 'Abenteuer' vieles J. R. R. Tolkiens 'The Hobbit', und der Reise durch die Berge und 'Moria' von 'The Lord of the Rings' (Der Herr der Ringe), (vermutlich dessen dramatischste und atmosph@:arischste Passage). Tolkien selbst, der erfolgreichste Mythen-Schmied des zwanzigsten Jahrhunderts, arbeitete nach dem Vorbild von isl@:andischen, finnischen und walisischen Sagen.^^"; print "Ab 1977 waren B@:ander von 'Abenteuer' weit herum im Umlauf bei der 'Digital'-Benutzergruppe DECUS und anderen: es @:ubernahm die Essenszeiten und Wochenenden wo immer es hinkam... aber das ist eine andere Geschichte. (Das faszinierende Buch von Tracy Kidder: 'The Soul of a New Machine' (die Seele einer neuen Maschine), der Blick eines Journalisten auf eine Mainframe-Computer-Entwicklergruppe, trifft es gut.)^^"; print "Dies ist eine Kopie aus dritter oder vierter Hand: von Will Crowthers Original zu Donald Woods 350-Punkte-Edition zu Donald Ekmans PC-Portierung zu David M. Baggetts excellenter TADS version (1993) zu dem hier.^^"; print "...oder mittlerweile aus f@:unfter Hand, habe ich doch viele vergn@:ugliche (und auch anstrengende) Stunden damit verbracht, dieses Spiel ins Deutsche zu @:ubersetzen. Dies w@:are niemals m@:oglich gewesen ohne Graham Nelsons fantastische, f@:ur die @:Ubersetzung vorbereitete Entwicklungsumgebung 'Inform'.^"; "(Toni Arnold, April 1998)"; } if (menu_item==3) { print "Diese Portierung ist ziemlich nahe am Original. Die R@:atsel, Gegenst@:ande und Orte von Woods Originaler 350-Punkte-Version sind exakt jene hier.^^"; print "Ich habe einige hilfreiche Mitteilungen hier und dort hinzugef@:ugt, so zum Beispiel ~Dies ist eine Sackgasse.~, und einige ~Initial-Position~-Mitteilungen von Objekten wie das (eher lahme)^ ^ Es hat hier schmackhaftes Essen.^^ von Quelltexten, die sicher fr@:uh, jedoch von zweifelhafter Herkunft sind. Sie scheinen aber gut zum Rest des Textes zu passen.^^"; print "Das Punktesystem ist das Originale mit der Ausnahme, dass man nicht l@:anger 4 Punkte verliert f@:ur das Beenden des Spiels (da man keine Punktezahl kriegt, wenn man ein Inform-Spiel verl@:asst, macht das keinen Unterschied) und, das ist umstritten, gebe ich 5 Punkte f@:ur das Tragen einer Wertsache, so wie es einige fr@:uhe 1980er-Portierungen taten. Die Rangbezeichnungen sind ein bisschen ordentlicher gemacht. Die einzige wirkliche Regel@:anderung ist die, dass man keine magischen W@:orter benutzen kann bis ihr Ziel besucht wurde.^^"; print "Die Zwerge sind simpler in ihren Bewegungen, aber andererseits habe ich einige Mitteilungen hinzugef@:ugt, um sie besser mit dem Rest des Spiels interagieren zu lassen. Die Wahrscheinlichkeiten sind wie im Originalspiel.^^"; print "Im Original konnte man den Namen eines Raums tippen, um dorthin zu gelangen. Um den Code kurz zu halten, habe ich diese Eigenschaft weggelassen, aber mit einigem Bedauern.^ Jetzt, mit der Inform Library-Erweiterung ~goto~ von Toni Arnold zusammen mit der ~Richtungen~-Erweiterung von Gunther Schmidl ist das Spielgef@:uhl viel komfortabler geworden. Wenn du n@:aher beim Original-Spielgef@:uhl bleiben willst, kannst du das ~Richtungen~-Verb ausschalten mittels ~Richtungen aus~.^^"; print "Der Text selbst wurde fast @:uberall intakt erhalten, aber ich habe einige Tipp- und grammatische Fehler korrigiert (und ein paar v@:ollig irref@:uhrende gnomische Bemerkungen ge@:andert). Die Anleitung wurde leicht ge@:andert (aus offensichtlichen Gr@:unden), blieb aber grunds@:atzlich so, wie sie geschrieben steht.^^"; "Einge gute Quelle f@:ur Details ist der Quellcode von David Baggett, welcher auf dem Internet zirkuliert."; } print "Wusstest du, dass...^^"; print "Die f@:unf Zwerge folgen dir mit einer Wahrscheinlichkeit von 96%, ausser ins Licht, in Gruben hinunter oder wenn sie sich selbst bewundern; und die gef@:ahrlichen kleinen Messer sind zu 9.5% zielgenau.^^"; print "Drachen verbrennen Zwerge (vielleicht weil Zwerge nur Kohle essen).^^"; print "Der B@:ar (welcher den Vulkan liebt) ist zu schwer f@:ur die Br@:ucke... und du kannst zur Szene zur@:uckgehen, nachdem du wiederbelebt wurdest.^^"; print "Du kannst an der Schlange vorbeischleichen in die geheime E/W-Klamm, in 35% der Zeit irgendwann. Und das Herumgehen im Dunkeln ist nicht gar zu schauerlich: Es bringt nur ein 25%-Risiko mit sich, in eine Grube zu fallen.^^"; print "Die Vase wird nicht gern eingetaucht.^^"; print "Schattenhafte Figuren k@:onnen sich gegenseitig zuwinken.^^"; print "Das W@:assern der T@:urangeln verrostet sie wieder.^^"; print "Wenn die H@:ohle geschlossen wird, wird das Gitter verschlossen und die Schl@:ussel weggeworfen, Kreaturen rennen weg und die Kristallbr@:ucke verschwindet...^^"; print "...und ein komplett nutzloser Tip wird auf die Schale der gigantischen Auster geschrieben im Endspiel.^^"; "Der letzte lausige Punkt kann gewonnen werden indem... aber nein, das w@:are Verraten."; ]; [ HelpSub; if (deadflag~=2) DoMenu("Es gibt Informationen @:uber folgendes:^ ^ Anleitung zum Spielen ^ Ein historisches Vorwort ^ Wie authentisch ist diese Edition?^", HelpMenu, HelpInfo); else DoMenu("TEs gibt Informationen @:uber folgendes:^ ^ Anleitung zum Spielen ^ Ein historisches Vorwort ^ Wie authentisch ist diese Edition? ^ Wusstest du, dass...^", HelpMenu, HelpInfo); ]; [ Amusing; HelpSub(); ]; ! ---------------------------------------------------------------------------- ! New verbs (to add to the library stock) ! ---------------------------------------------------------------------------- [ CatchSub; "Du kannst ", (den) noun, " nicht fangen."; ]; [ ReleaseSub; "Du kannst ", (den) noun, " nicht befreien."; ]; [ WaterSub; if (bottle in player) <>; "Wasser? Was f@:ur Wasser?"; ]; [ OilSub; if (bottle in player) <>; "@:Ol? Was f@:ur @:Ol?"; ]; [ OnSub; if (brass_lantern notin player) "Du hast keine Lampe."; <>; ]; [ OffSub; if (brass_lantern notin player) "Du hast keine Lampe."; <>; ]; [ XyzzySub; "Nichts passiert."; ]; [ PlughSub; "Nichts passiert."; ]; [ PloverSub; "Nichts passiert."; ]; [ FeeSub; FthingSub(0); ]; [ FieSub; FthingSub(1); ]; [ FoeSub; FthingSub(2); ]; [ FooSub; FthingSub(3); ]; [ FthingSub i; if (feefie_count~=i) { feefie_count=0; "Mach's richtig, Dummkopf!"; } if (feefie_count++ == 3) { feefie_count=0; if (golden_eggs in In_Giant_Room) "Nichts passiert."; if ((golden_eggs in player) || (golden_eggs in location)) print "Das Nest von goldenen Eiern ist verschwunden!^"; else print "Gemacht!"; 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) "^^Ein grosses Nest gef@:ullt mit goldenen Eiern erscheint aus dem Nichts!"; } else "In Ordnung."; ]; [ CountSub; if (noun has multitude) "Es sind viele."; "Ich sehe ein (1) ", (_en) noun, "."; ]; [ UseSub; "Du wirst ein wenig expliziter werden m@:ussen als das."; ]; [ BlastWithSub; if (second~=black_mark_rod) "Sprengen braucht Dynamit."; "Hast du wieder diese lustigen braunen Kekse gegessen?"; ]; [ OldMagicSub; "Ein guter Versuch, aber dies ist ein altes, verbrauchtes magisches Wort."; ]; [ KickSub; <>; ]; ! For kicking dwarves [ BlastSub; if (location~=At_Sw_End or At_Ne_End) "Frustrierend, nicht?"; if (location==At_Sw_End && parent(black_mark_rod)==At_Ne_End) { score=score+35; deadflag=2; "Es gibt eine laute Explosion, ein Sieben-Meter-Loch erscheint in der Wand, und die Zwerge werden unter dem Schutt begraben. Du gehst duch das Loch und findest dich wieder im Hauptb@:uro, wo eine jubelnde Menge freundschaftlicher Elfen den siegreichen Abenteurer forttr@:agt in Richtung Sonnenuntergang."; } if (location==At_Ne_End && parent(black_mark_rod)==At_Sw_End) { score=score+20; deadflag=1; "Es gibt eine laute Explosion, ein Sieben-Meter-Loch erscheint in der Wand, und die Schlangen werden unter dem Schutt begraben. Ein Fluss aus geschmolzener Lava ergiesst sich herein durch das Loch, alles in seinem Weg zerst@:orend, auch dich!"; } deadflag=1; "Es gibt eine laute Explosion, und du wirst j@:ah @:uber die W@:ande des Raums verspritzt."; ]; ! ---------------------------------------------------------------------------- ! Resurrection ! ---------------------------------------------------------------------------- [ AfterLife o; if (deadflag==3) { deadflag=1; rfalse; } print "^^"; if (caves_closed) "Es sieht so aus als ob du tot w@:arst. Nun, angesichts der Tatsache, dass es so nahe an der Schliessungszeit ist, denke ich, wir machen Schluss."; if (deaths==0) print "Oh Gott, es scheint, du hast dich umgebracht. Ich k@:onnte f@:ahig sein, dir da rauszuhelfen, aber ich habe das noch nie zuvor gemacht. M@:ochtest du, dass ich versuche, dich wiederzubeleben?^^"; if (deaths==1) print "Du tolpatschiger L@:ummel, du hast es wieder getan! Ich weiss nicht, wie lange ich das mitmachen kann. M@:ochtest du, dass ich erneut versuche, dich wiederzubeleben?^^"; if (deaths==2) print "Jetzt hast du es wirklich getan! Ich habe keinen orangen Rauch mehr! Du erwartest doch nicht, dass ich eine anst@:andige Reinkarnation mache ohne orangen Rauch, oder?^^"; print "> "; if (YesOrNo() == false) { switch(deaths) { 0: "Sehr gut."; 1: "Wahrscheinlich eine kluge Wahl."; 2: "Ich dachte nicht!"; } } switch(deaths) { 0: print "In Ordnung. Aber beschwere dich nicht bei mir wenn etwas fal......^^^^ --- POOF!! ---^^ Du wirst von einer Wolke orangen Rauches verschlungen. Hustend und keuchend trittst du aus dem Rauch und merkst, dass du....^"; 1: print "In Ordnung, nun, wo hab ich bloss meinen orangen Rauch hingetan? .... >POOF!< ^^Alles verschwindet in einer dichten Wolke orangen Rauches.^"; 2: "In Ordnung, wenn du so schlau bist, dann mach es selbst! Ich gehe!"; } deaths++; score=score-10; if (location~=thedark) { while (child(player) ~= nothing) { o=child(player); move o to location; if (o ofclass Treasure) score=score-5; } } else { while (child(player) ~= nothing) move child(player) to real_location; } move brass_lantern to At_End_Of_Road; give brass_lantern ~on ~light; remove dwarf; deadflag=0; PlayerTo(Inside_Building); ]; ! ---------------------------------------------------------------------------- ! 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; ]; ! --------- Debug-Verb --------- [DebugActSub; move rare_coins to player; print "#"; print (gein) rare_coins; print "#"; ]; #ENDIF; ! ---------------------------------------------------------------------------- ! Grammar: the usual grammar and some extensions ! ---------------------------------------------------------------------------- Include "GermanG"; Verb "ein" * -> On; Verb "aus" * -> Off; Verb "fang" "schnapp" * creature -> Catch * creature "mit" held -> Catch; Verb "befrei" * creature -> Release; Extend "leer" replace * "wasser" "auf"/"ueber"/"zu"/"in" noun -> Water * "oel" "auf"/"ueber"/"zu"/"in" noun -> Oil * noun -> Empty * noun "aus" -> Empty; Verb "waesser" "bewaesser" * noun -> Water; Verb "oel" "fett" "schmier" * noun -> Oil; Verb "plugh" * -> Plugh; Verb "xyzzy" * -> Xyzzy; Verb "plover" "kiebitz" * -> Plover; Verb "sesam" "shazam" "hokus" "pokus" "hokuspokus" "abrakadabra" "foobar" "frotz" "fidibus" * -> OldMagic; Verb "fee" * -> Fee; Verb "fie" * -> Fie; Verb "foe" * -> Foe; Verb "foo" * -> Foo; Verb "helf" "hilf" * -> Help; Extend 'tret' replace * noun -> Kick * 'ein' -> GoIn * 'aus'/'heraus'/'hinaus' -> Exit * 'in' noun -> Enter * 'in' noun 'hinein'/'ein' -> Enter; Verb "zaehl" * noun -> Count; Verb "nutz" "benutz" * -> Use; Verb "spreng" * -> Blast * noun "mit" held -> BlastWith; Extend 'lass' replace * multiheld -> Drop * multiheld 'fallen'/'hier' -> Drop * multiexcept 'in'/'unter' noun -> Insert * multiexcept 'auf'/'ueber' noun -> PutOn * held 'zu'/'auf'/'nach' noun -> ThrowAt * held noun 'zu'/'nach' -> ThrowAt * creature 'frei' -> Release; Extend 'fuell' replace * noun -> Fill * noun 'in' noun -> EmptyT * noun 'mit' 'wasser' -> Fill * noun 'mit' 'oel' -> Fill; #IFDEF TEST_VERSION; Verb "xdeterm" * -> Xdeterm; verb 'act' * -> DebugAct; #ENDIF; ! -------- grammar extension ------------ ! Extend 'geh' first * 'zu' scope=scope_room -> go_to * 'zu' 'dem'/'der' scope=scope_room -> go_to; ! ----------------------------------------------------------------------------