ScottRoom Root_Chamber "Root Chamber" with description "You're in a root chamber under the stump.", u_to Inside_Stump, d_to dark_hole, has light; Object -> dark_hole "dark hole" with description "Leading below.", door_dir d_to, door_to Semidark_Hole has open door static; Treasure -> "*POT OF RUBIES*" with name "pot" "of" "rubies"; ScottRoom Semidark_Hole "Hole" with description "You're in a semi-dark hole by the root chamber.", u_to Root_Chamber, d_to root_door has light; Object -> root_door "the door" with name "door", short_name [; if (self has locked) { print "locked door"; rtrue; } if (self has open) { print "open door with a hallway beyond"; rtrue; } print "closed door"; rtrue; ], before [; ThrowAt: if (second==axe) { give self ~locked ~lockable ~openable open; "Lock shatters!"; } ], door_to Long_Hall, door_dir d_to, with_key keys has static door openable lockable locked; ScottRoom Long_Hall "Hall" with description "You're in a long down-sloping hall.", u_to Semidark_Hole, d_to Large_Cavern; ScottRoom Large_Cavern "Cavern" with description "You're in a large cavern.", n_to Hive, s_to Royal_Anteroom, w_to Memory_RAM, u_to Long_Hall, d_to Maze1; ScottRoom Hive "Octagonal Hive" with description "You're in a large 8-sided room.", s_to Large_Cavern; Treasure -> "*ROYAL HONEY*" with name "royal" "honey", article "some", before [; Take: if (bees in location && mud notin player) { deadflag=1; "Bees sting you."; } Drop: if (bear in location) { remove self; give bear general; "The bear eats the honey and falls asleep."; } ], has edible; Object -> bees "large African bees" with name "large" "african" "bees", article "a swarm of", before [; Take: if (mud notin player) { deadflag=1; "Bees sting you."; } if (bottle in player) <>; "You have nothing to carry the bees in."; Drop: if (self in bottle && dragon in location) { move self to location; move eggs to location; remove dragon; "The bees attack the dragon which gets up and flies away..."; } if (self in bottle && bear in location) { move self to location; give bear ~general; deadflag=1; "Bees madden the bear. Bear then attacks you!"; } ], each_turn [; #IFNDEF DEBUG; ! A completely unfair rule! And in the original the bees are lost. if (self in bottle && random(100)<=8) { move self to Hive; "^The bees in the bottle all suffocated."; } #ENDIF; if (self in bottle) rfalse; if (self in location && mud notin player && mud notin location && random(100)<=8) { deadflag=1; "Bees sting you."; } ]; ScottRoom Royal_Anteroom "Anteroom" with description "You're in a royal anteroom.", n_to Large_Cavern, u_to Royal_Chamber; Object -> wine_bladder "empty wine bladder" with name "empty" "wine" "bladder", before [; Fill: if (gas notin location) "The bladder could only just hold a vapour nowadays."; <>; ]; Object distended_bladder "distended gas bladder" with name "distended" "gas" "bladder", before [; Open: move wine_bladder to parent(self); remove self; "Gas dissipates!"; ]; ScottRoom Maze1 "Maze" with description "You're in a maze of pits.", n_to Maze2, s_to Maze4, e_to Maze4, d_to Maze2; ScottRoom Maze2 "Maze" with description "You're in a maze of pits.", w_to Maze3, u_to Maze1; Object -> flint_and_steel "flint and steel" with name "flint" "steel"; ScottRoom Maze3 "Maze" with description "You're in a maze of pits.", n_to Maze6, s_to Maze1, e_to Maze2, w_to Maze5, u_to Maze5, d_to Maze6; Object -> "scratchings" with name "scratchings", article "strange", short_name "strange scratchings on rock reveals- ALADDIN WAS HERE", has static; ScottRoom Maze4 "Maze" with description "You're in a maze of pits.", n_to Maze1, e_to Maze2, w_to Maze1, u_to Maze2; ScottRoom Maze5 "Maze" with description "You're in a maze of pits.", s_to Maze6, u_to Maze3, d_to Maze6; ScottRoom Maze6 "Maze" with description "You're in a maze of pits.", n_to Maze6, s_to Maze1, e_to Maze1, w_to Maze4, u_to Maze3, d_to Chasm_Bottom; Treasure -> rug "*THICK PERSIAN RUG*" with name "thick" "persian" "rug" "carpet"; Object -> "arrow pointing down" with name "arrow" has static; ScottRoom Chasm_Bottom "Chasm" with description "You're in a bottom of a chasm. Above 2 ledges. One has a bricked up window.", u_to Maze6; Treasure -> net "*GOLDEN NET*" with name "gold" "golden" "net"; Sign -> "MAGIC WORD IS AWAY. X LA -(rest of sign is missing)"; Object -> lava "the lava" with name "stream" "of" "lava", short_name [; print "stream of lava"; if (self has general) print " with a brick dam"; rtrue; ], description [; if (self hasnt general) "There's something there all right! Maybe you should go there?"; "Just more dammed lava."; ], before [; Enter, Push, Pull, Take: "NO! It's too hot."; ], has static; Treasure firestone "*FIRESTONE* (cold now)" with name "firestone", depositpoints 11; ScottRoom Narrow_Ledge_1 "Ledge" with description "You're on a narrow ledge by a chasm. Across the chasm is a throne room.", before [; Jump: if (firebricks in player) { deadflag=1; "Oh no! Something was too heavy!"; } print "You leap across the chasm...^"; PlayerTo(Narrow_Ledge_2); rtrue; ], w_to Royal_Chamber; ScottRoom Royal_Chamber "Royal Chamber" with description "You're in the Royal Chamber.", d_to Royal_Anteroom, e_to 0; Object -> bricked_window "bricked-up window" with name "window" "bricked" "brick" "bricks" has static; Object holed_window "bricked up window with a hole in it - beyond is a ledge" with name "window" "bricked" "hole" "ledge", door_dir e_to, door_to Narrow_Ledge_1 has static door open; Object firebricks "loose fire bricks" with name "loose" "fire" "bricks", article "some", after [; Take: "Taken. (Heavy!)"; Drop: if (location~=Chasm_Bottom) rfalse; remove self; give lava general; move firestone to location; "The bricks dam the lava, revealing a *FIRESTONE*!"; ]; ScottRoom Narrow_Ledge_2 "Ledge" with description "You're on a narrow ledge by the throne room-across chasm-ledge.", before [; Sing: if (bear in location && bear hasnt general) { move dead_bear to Chasm_Bottom; remove bear; "The bear got startled and fell off the ledge!"; } Jump: print "You leap across the chasm...^"; PlayerTo(Narrow_Ledge_1); rtrue; ], e_to [; if (bear in location && bear hasnt general) "The bear won't let you!"; return Throne_Room; ]; Treasure -> mirror "*MAGIC MIRROR*" with name "magic" "mirror", side_up 0, before [; Take: if (bear in location && bear hasnt general) "The bear won't let you!"; ], after [; Drop: if (rug in location) { print "Mirror lands softly on the rug - lights up and says:^"; self.side_up++; if (self.side_up % 2 == 1) "*DRAGON STINGS* and fades. I don't get it - hope you do."; "Don't waste *HONEY*. Get mad instead. Dam lava!"; } remove self; move broken_glass to location; "The mirror hits the floor and shatters into a million pieces!"; ]; Object -> bear "the bear" with name "thin" "black" "bear", short_name [; if (self has general) { print "sleeping bear"; rtrue; } print "thin black bear"; rtrue; ], before [; WakeOther: give self ~general; "The bear rouses!^"; ], life [; Ask, Order, Answer: <>; Attack, ThrowAt: if (self has general) ; remove mirror; move broken_glass to location; "Oh no...Bear dodges...CRASH!"; ], has animate; Object broken_glass "broken glass" with name "broken" "glass" "jagged" "fragments", article "some"; Object dead_bear "dead bear" with name "dead" "bear" "black" "thin" has static; ScottRoom Throne_Room "Throne Room" with description "You're in a throne room.", w_to Narrow_Ledge_2; Treasure -> "*GOLD CROWN*" with name "gold" "golden" "crown"; ScottRoom Real_Trouble "Trouble!" with description "I think you're in real trouble. Here's a guy with a pitchfork!^^ You lost *ALL* treasures.", initial [; deadflag=3; ], has light; ScottRoom Memory_RAM "Ugly Place" with description "You're in the memory RAM of an IBM-PC. You took a wrong turn!", e_to Large_Cavern, has light; Sign -> "To the Architects - TSURRIS"; ScottRoom Misty_Room "Misty Room" with description "You're in a large misty room with strange letters over the exits.", s_to Real_Trouble, e_to Forest, w_to Real_Trouble, u_to Up_Oak, d_to Real_Trouble, has light; Sign -> "LIMBO. FIND RIGHT EXIT AND LIVE AGAIN!"; ! ---------------------------------------------------------------------------- ! A soupcon of code ! ----------------------------------------------------------------------------