Constant Story "The Alchemist's Home^^"; Constant Headline "by Mike Manard^^^"; Constant MAX_SCORE = 5; Include "Parser"; Include "VerbLib"; [ Initialise; location = Outer_South; ]; !-------------------------Class Declarations------------------------------ class LitRoom has light; class DoorObject has door; Class TreeObject with cut_down true, has door; !----------------------End Class Declarations----------------------------- !---------------------------Outside Rooms--------------------------------- LitRoom Outer_SouthWest "~SouthWest - By the River~" with description "It seems the west side of the house ends abruptly at the river bank. The current is definitely too swift to considering venturing any further.", before [; Swim, Drink: deadflag = true; "You fall in and drown. Didn't I warn you?"; Go: if ( noun == se_obj || noun == s_obj ) "You didn't come all this way for nothing, did you? You aren't leaving without that gold!"; else if ( noun == sw_obj || noun == w_obj || noun == nw_obj ) { deadflag = true; "You fall in and drown. Didn't I warn you?"; } else if ( noun == n_obj || noun == ne_obj ) "You walk directly into the brick wall and immediately regret having done so."; ], e_to Outer_South; LitRoom Outer_South "~South - Entrance~" with description "You are standing outside the front door of the alchemist's place. It's a small place, with a large chimney but oddly enough no windows. On your left, overlooked by the house, is a swiftly flowing river.^^Rumor has it this alchemist actually figured out how to make gold and has been building up a stash over quite some time. You were considering taking out a small loan, if you know what I mean. Lucky for you, you're at least fairly certain he isn't home...^^Now you need to figure out a way in and find that loot!", before [; Go: if ( noun == sw_obj || noun == s_obj || noun == se_obj ) "You didn't come all this way for nothing, did you? You aren't leaving without that gold!"; else if ( noun == nw_obj ) "You walk directly into the brick wall and immediately regret having done so."; ], n_to Steel_Door, ne_to Outer_East, e_to Outer_SouthEast, w_to Outer_SouthWest; LitRoom Outer_SouthEast "~SouthEast - Corner of House~" with description "A few large stones are scattered about nearby. Nothing of interest around here.^", before [; Go: if ( noun == sw_obj || noun == s_obj || noun == se_obj || noun == e_obj || noun == ne_obj ) "You didn't come all this way for nothing, did you? You aren't leaving without that gold!"; else if ( noun == nw_obj ) "You walk directly into the brick wall and immediately regret having done so."; ], n_to Outer_East, w_to Outer_South; LitRoom Outer_East "~East - Eastern Wall~" with description "A ray of hope?^^There's a tree, and a few of its higher branches have grown over the top of the roof! However, its lower branches are just outside your reach. If you had something to help you reach those branches you could probably get up there.^", before [; Go: if ( (noun == u_obj || noun == w_obj) && ~~( Crate in Outer_East) ) "You want to get up on that roof? Why don't you try to climb the tree?"; else if ( noun == se_obj || noun == e_obj || noun == ne_obj ) "You didn't come all this way for nothing, did you? You aren't leaving without that gold!"; ], u_to Roof, n_to Outer_NorthEast, nw_to Outer_North, s_to Outer_SouthEast, sw_to Outer_South, w_to Roof; LitRoom Outer_NorthEast "~NorthEast - Corner of House~" with description "Nothing of interest around here. Try going west or south.^", before [; Go: if ( noun == nw_obj || noun == n_obj || noun == ne_obj || noun == e_obj || noun == se_obj ) "You didn't come all this way for nothing, did you? You aren't leaving without that gold!"; else if ( noun == sw_obj ) "You walk directly into the brick wall and immediately regret having done so."; ], s_to Outer_East, w_to Outer_North; LitRoom Outer_North "~North - Northern Wall~" with description "You see an empty wooden crate sitting against the side of the house. It's slightly rotted, but a good portion of it is still pretty solid.^", before [; Go: if ( noun == nw_obj || noun == n_obj || noun == ne_obj ) "You didn't come all this way for nothing, did you? You aren't leaving without that gold!"; else if ( noun == s_obj || noun == sw_obj ) "You walk directly into the brick wall and immediately regret having done so."; ], w_to Outer_NorthWest, e_to Outer_NorthEast, se_to Outer_East; LitRoom Outer_NorthWest "~NorthWest - By the River~" with description "It seems the west side of the house ends abruptly at the river bank. The current is definitely too swift to considering venturing any further.", before [; Swim, Drink: deadflag = true; "You fall in and drown. Didn't I warn you?"; Go: if ( noun == n_obj || noun == ne_obj ) "You didn't come all this way for nothing, did you? You aren't leaving without that gold!"; else if ( noun == sw_obj || noun == w_obj || noun == nw_obj) { deadflag = true; "You fall in and drown. Didn't I warn you?"; } else if ( noun == se_obj || noun == s_obj ) "You walk directly into the brick wall and immediately regret having done so."; ], e_to Outer_North; LitRoom Roof "~Roof~" with description "You've made it to the roof! Congratulations!^^You see pretty much what you expected, a chimney that you can fit through. Awesome. Now get your behind down there.^", before [; Go: if ( ~~( noun == d_obj || noun == in_obj || noun == e_obj) ) "You're on top of a roof. Let's think about this...^^The only places you want to go are down the chimney or back down the tree!"; else if ( noun == e_obj ) "You seriously spent all that time figuring out how to get up on the roof just to go back down? Go down that chimney already!"; ], d_to Den, in_to Den; !--------------------------End Outside Rooms------------------------------ !-----------------------------Inside Rooms-------------------------------- LitRoom Den "~Den~" with description "You're now standing in the midst of an impressive fireplace. In front of you is a small room with a comfortable-looking chair and a large rug. The steel front door is on the south wall, and an oak door can be spotted on the west wall. There is a trap door in one of the corners, but a large steel lock keeps it shut tight.", s_to Steel_Door, w_to Oak_Door, d_to Trap_Door, before [; Go: if( noun == d_obj && Trap_Door has open ) { deadflag = 2; score = score + 1; "^You descend into the basement.^^The rumors were true! This guy is loaded! You've found the treasure and now you're going to be rich!"; } ]; LitRoom Laboratory "~Laboratory~" with description "This must be the alchemist's laboratory. There's a table with a bottle of some strange liquid sitting on top of it. There are papers strewn about, and several other experiments going on that you'd rather not touch, as they seem to be using many connected tubes, bottles, and small flames keeping some of the liquids bubbling hot. You don't trust yourself to disturb these and not harm yourself. (Plus you don't know what you're doing anyway, you're just here for the final product! Gold!)", e_to Oak_Door; LitRoom Treasure_Chamber "~Treasure Chamber!~" with description "The rumors were true! This guy is loaded! You're going to be rich!"; !--------------------------End Inside Rooms------------------------------- !--------------------------------Doors------------------------------------ DoorObject Steel_Door "Secure Steel Door" with name "door" "steel" "steel door" "front" "front door", description "A secure steel door. Little hope here. It might be a good sign though! There must be a good reason this guy doesn't want you in here, right?", found_in Outer_South Den, door_dir [; if ( location == Outer_South ) return n_to; else return s_to; ], door_to [; if ( location == Outer_South ) return Den; else return Outer_South; ], has scenery openable lockable locked; DoorObject Oak_Door "Oak Door" with name "door" "oak" "oak door", description "A strong oak door. It appears to be locked.", with_key OakDoor_Key, found_in Laboratory Den, after [; Unlock: if ( OakDoor_Key in player ) score = score + 1; ], door_dir [; if ( location == Den ) return w_to; else return e_to; ], door_to [; if ( location == Den ) return Laboratory; else return Den; ], has scenery openable lockable locked; DoorObject Trap_Door "Wooden Trap Door" with name "wooden" "trap" "door" "trap door" "wooden trap door", found_in Den, with_key Acid, description [; if( self has locked ) "A trap door! This must be the way! Unfortunately, sitting right there in front of you, mocking you it would seem, is a large steel lock."; else "A trap door. You can also see what remains of its lock. The acid did a pretty good job"; ], before [; Go: if( self has locked ) { print "You can't go that way."; rtrue; } else rfalse; Unlock: if( Acid in player ) { print "The acid burns right through the steel lock! "; score = score + 1; rfalse; } else { print "You don't have a key that fits!"; rtrue; } Enter: deadflag = 2; ], door_dir d_to, door_to Treasure_Chamber, has door openable lockable locked; TreeObject Tree "Tree" with name "tree" "branch" "branches" "trunk" "trees", cut_down false, description "Just an ordinary tree, but a few of the higher branches have grown over the top of the stone wall and it may present an alternative way to enter the house (through that chimney). However, its lower branches are just outside your reach. If only you had something to help you reach those branches...^", found_in Outer_East, before [; Search, Climb: if ( Crate in player ) { print "You need to drop the crate first!"; rtrue; } else if ( self.cut_down == true || Crate in Outer_East ) { MovePlayer(u_obj); score = score + 1; rtrue; } else "Those branches are still out of your reach."; ], after [; Search, Climb: if ( self.cut_down == true || Crate in Outer_East ) "Using the crate, you can reach the tree's lower branches. After a slight struggle, you managed to pull yourself into the branches and use one of the stronger overhanging branches to reach the roof."; ], has scenery static; !--------------------------------End Doors-------------------------------- !----------------------------Other Objects-------------------------------- Object River "River" with name "river" "stream" "water" "canal" "moat", description "The river prevents you from traveling any further in this direction.", found_in River; Object Crate "Wooden Crate" with name "crate" "wooden" "wooden crate" "box" "empty crate" "empty", description "^", found_in Outer_North, before [; Take: return false; Drop: return false; ]; Object Chair "Chair" with name "chair" "seat" "comfortable" "comfortable chair", description "The chair looks pretty comfortable, but you don't have time to rest.", found_in Den; Object Table "Table" with name "table" "tabletop", description "Just a regular table. On top is a bottle of some strange liquid.", supports Acid, has enterable supporter static; Object Acid "Bottle of Liquid" with name "acid" "bottle" "liquid" "bottle of liquid" "bottle of acid", description "The liquid inside appears to be a highly corrosive acid!", found_in Laboratory, before [;Search: "The liquid inside appears to be a highly corrosive acid!"; Eat, Drink: deadflag = true; "You just drank acid! That must've been painful."; ThrowAt: "Why don't you just pour the acid so you don't miss?"; ], has edible; Object Rug "Rug" with name "rug", description [; if (self hasnt general) "It's a beautiful rug, but your eyes are drawn toward one specific point. There's a bump! What's under there?"; else "The rug is now crumpled up in the corner."; ], found_in Den, before [; Push, Pull, Take: "The rug is too heavy. There's no need to lug that around."; LookUnder: if (player in self) "How are you supposed to look under it if you're standing on top of it? You feel a little stupid and are glad nobody was around to see that wasted effort."; if (self hasnt general) { give self general; move OakDoor_Key to player; score = score + 1; "You found a key under the rug! You toss the rug off into the corner in your excitement."; } ], has static supporter enterable; Object OakDoor_Key "Key" with name "key" "keys", description [; if ( Oak_Door has locked ) "It's a key! But to what?"; else "It's the key to the oak door."; ]; !---------------------------End Other Objects----------------------------- Include "Grammar";