ScottRoom Lake_Shore "Lakeside" with description "You're on the shore of a lake.", n_to Forest, s_to Lake_Shore, w_to Dismal_Swamp, d_to Quicksand, before [; Swim: "Below you and before the lake is quicksand."; ], has light; Object -> water "water" with name "water", article "some", before [; Drink: "Boy, that really hit the spot."; Take: if (bottle notin player) "You have nothing in which to carry the water."; <>; Insert: if (second == bottle) <>; "You have nothing in which to carry the water."; Receive: if (noun == bottle) <>; remove noun; CDefArt(noun); " washes away into the lake."; ], has scenery; Treasure -> "*GOLDEN FISH*" with name "gold" "golden" "fish", each_turn [; if (self notin player) rfalse; if (net notin player && random(100) <= 75) { move self to Lake_Shore; "^The fish escape back to the lake."; } if ((water_in_the_bottle notin bottle || bottle notin player) && random(100)<=50) { remove self; move dead_fish to player; "^Too dry. Fish die."; } ]; Object -> axe "rusty axe (magic word- BUNYON -on it)" with name "rusty" "axe", description "The magic word BUNYON is written on the haft."; Sign -> "NO SWIMMING ALLOWED"; Object dead_fish "dead fish" with name "dead" "fish" has edible; ScottRoom Quicksand "Bog" with description "You're in a quick-sand bog.", before [; Swim: if (child(player)==nothing) { PlayerTo(Lake_Shore); rtrue; } "Something's too heavy."; ], has light; Treasure -> ox "*SMALL STATUE OF A BLUE OX*" with name "ox" "blue" "small" "statue"; ScottRoom Forest "Forest" with description "You're in a forest.", n_to Forest, s_to Forest, e_to Sunny_Meadow, w_to Forest, u_to trees has light; Object -> trees "trees" with name "tree" "trees", before [; Climb: <>; ], door_to Up_Oak, door_dir u_to has open door static; ScottRoom Up_Oak "Branch" with description "You're in a branch on the top of an old oak tree.^ To the east you see a meadow beyond a lake.", d_to Forest, has light; ScottRoom Sunny_Meadow "Meadow" with description "You're in a sunny meadow.", n_to Lake_Shore, s_to Dismal_Swamp, e_to Lake_Shore, w_to Forest, has light; Object -> dragon "sleeping Dragon" with name "dragon" "sleeping" "sleepy", before [; WakeOther: deadflag=1; "The dragon wakes!"; ], life [; Order, Answer, Ask: "Shh! You don't want to wake the dragon."; Give: "The dragon is too drowsy to notice."; ThrowAt: if (noun==axe) { move axe to location; "The dragon isn't bothered."; } ], each_turn [; if (mud in location && random(100)<=50) { deadflag=1; "Dragon smells something - awakens - attacks you!"; } ], has animate; Sign -> "IN SOME CASES MUD IS GOOD, IN OTHERS..."; Treasure eggs "*DRAGON EGGS* (very rare)" with name "dragon" "eggs" "very" "rare", depositpoints 12; Object gore "smoking hole - pieces of dragon and gore" with name "gore" "hole" "dragon" "smoking" has static; ScottRoom Hidden_Grove "Grove" with description "You're in a hidden grove.", n_to Forest, e_to Dismal_Swamp, w_to Forest, has light; Treasure -> "*JEWELLED FRUIT*" with name "jewelled" "jewel" "fruit", after [; Eat: "Boy that really hit the spot!"; ], has edible; Sign -> "PAUL'S PLACE"; ScottRoom Dismal_Swamp "Dismal Swamp" with description "You're in a dismal swamp.", n_to Sunny_Meadow, s_to Dismal_Swamp, e_to Dismal_Swamp, w_to Hidden_Grove, in_to 0, u_to cypress_tree has light; Object -> cypress_tree "cypress tree" with name "cypress" "tree", before [; Climb: <>; Cut: if (axe notin player) rfalse; remove self; move tree_remains to Dismal_Swamp; Dismal_Swamp.in_to = tree_remains; Dismal_Swamp.u_to = 0; print "TIMBER.."; if (keys in Tree_Top) { remove keys; ". Something fell from the treetop and vanished!"; } "."; ], door_to Tree_Top, door_dir u_to has open door static; Object -> mud "evil smelling mud" with name "evil" "smelling" "mud", article "some", after [ f; Take: if (infected_bites in player) { remove infected_bites; f=1; } if (chigger_bites in player) { remove chigger_bites; f=1; } if (f==1) "Boy that really hit the spot!"; ], each_turn [; if (self notin player) rtrue; if (random(100)<=5 && (bottle notin player || water_in_the_bottle notin bottle)) { move self to Dismal_Swamp; "The mud dried up and fell off."; } ]; Object -> gas "swamp gas" with name "swamp" "gas", article "some", before [; Take: if (distended_bladder in player) "Bladder full already."; if (wine_bladder notin player) "You have nothing suitable."; <>; Insert: if (second == distended_bladder) "The bladder's full."; if (second ~= wine_bladder) "That won't hold gas."; move distended_bladder to player; remove wine_bladder; itobj = distended_bladder; "The bladder distends with swamp gas."; ], has static; Object -> slime "floating patch of oily slime" with name "patch" "oil" "slime" "oily", before [; Take: brass_lantern.time_left=125; give brass_lantern general; remove self; move brass_lantern to player; "Magic oil attracts magic lamp. Lamp is now full."; ], has static; Object -> chiggers "chiggers" with name "chiggers", article "a swarm of", daemon [; if (chigger_bites in player && mud notin player && random(100)<=10) { remove chigger_bites; move infected_bites to player; "^Your chigger bites are now infected."; } if (infected_bites in player && random(100)<=8) { deadflag=1; "^The bites have rotted your whole body."; } if (infected_bites notin player && chigger_bites notin player && slime in location && mud notin player && random(100)<=5) { move chigger_bites to player; "^You're bitten by chiggers."; } if (infected_bites notin player && chigger_bites notin player && chiggers in player && random(100)<=30) { move chigger_bites to player; "^You're bitten by chiggers."; } ]; Object chigger_bites "chigger bites" with name "chigger" "bites", article "some", before [; "The bites are annoying. Perhaps medicine would help?"; ]; Object infected_bites "infected chigger bites" with name "chigger" "bites" "infected", article "some", before [; "The bites are frightening. Get medicine!"; ]; Object tree_remains "hollow stump and remains of a felled tree" with name "tree" "stump" "hollow" "remains", door_to Inside_Stump, door_dir in_to has open door static; ScottRoom Tree_Top "Tree Top" with description "You're in the top of a tall cypress tree.", d_to Dismal_Swamp, has light; Object -> "spider web with writing on it" with name "spider" "web" "writing", description "~CHOP IT DOWN!~", before [; Take: deadflag=1; "You're bitten by a spider."; ]; Object -> keys "ring of skeleton keys" with name "keys" "ring" "skeleton" "keyring"; ScottRoom Inside_Stump "Inside Stump" with description "You're in a large hollow damp stump in the swamp.", n_to Dismal_Swamp, s_to Dismal_Swamp, e_to Dismal_Swamp, w_to Dismal_Swamp, u_to Dismal_Swamp, d_to Root_Chamber, has light; Sign -> "LEAVE TREASURE HERE - (say 'SCORE')"; Object -> bottle "the bottle" with name "bottle" "jar" "flask", short_name [; if (water_in_the_bottle in self) { print "bottle of water"; rtrue; } if (bees in self) { print "bottle of bees"; rtrue; } print "empty bottle"; rtrue; ], before [ x; LetGo: if (noun in bottle) "You're holding that already (in the bottle)."; Receive: if (noun==water or bees) <>; "That won't go in the bottle."; Fill: if (child(bottle)~=0) "The bottle is full already."; if (water in location) { move water_in_the_bottle to bottle; "The bottle is now full of water."; } if (bees in location) { move bees to bottle; "The bottle is now full of bees."; } "There is nothing here with which to fill the bottle."; Empty: if (child(bottle)==0) "The bottle is already empty!"; x=child(bottle); remove x; if (x==bees) { move x to location; "You release the bees."; } "Your bottle is now empty and the ground is now wet."; ], has container open; Object -> brass_lantern "old fashioned lamp" with name "lamp" "fashioned" "lamp", article "an", power 125, time_left 0, daemon [ t; if (self hasnt on) { StopDaemon(self); rtrue; } t=--(self.power); if (t==0) give self ~on ~light; if (self in player or location) { if (t==0) "Your lamp has run out of power."; if (t==30) "Your lamp is getting dim."; } ], before [; Examine: print "It is a shiny brass lamp"; if (self hasnt on) ". It is not currently lit."; if (self.power < 30) ", glowing dimly."; ", glowing brightly."; Burn: <>; Rub: if (self has on) "No! It's too hot."; if (self hasnt general) "Nothing happens."; switch(++genie_gifts) { 1: move ring to location; "A glowing genie appears - drops something - then vanishes."; 2: move bracelet to location; "A glowing genie appears - drops something - then vanishes."; 3: if (ring in Inside_Stump) score=score-ring.depositpoints; remove ring; move player to Misty_Room; "A genie appears - says ~boy you're selfish~ - takes something - then vanishes!"; 4: if (bracelet in Inside_Stump) score=score-bracelet.depositpoints; remove bracelet; move player to Misty_Room; "A genie appears - says ~boy you're selfish~ - takes something - then vanishes!"; default: "Nothing happens."; } SwitchOn: if (self.power <= 0) "It's run out."; Receive, Open: "You can't put things in the lamp."; ], after [; SwitchOn: give self light; StartDaemon(self); "Flameless lamp now on."; SwitchOff: give self ~light; ], has switchable; Treasure ring "*DIAMOND RING*" with name "diamond" "ring"; Treasure bracelet "*DIAMOND BRACELET*" with name "diamond" "bracelet"; Object water_in_the_bottle "bottled water" bottle with name "bottled" "water" "h2o", article "some", before [; Drink: remove water_in_the_bottle; <>; ], description "It looks like ordinary water to me.";