! Nicholas Zakhar ! CIS 587 - Assignment 1 ! 10-17-05 Constant Story "Escape from Shalegate"; Constant Headline "^An Interactive Adventure^by Nicholas Zakhar^"; Constant DEBUG; Include "parser"; Include "verblib"; Include "grammar"; !********************************************************************************************* Global prisoner_watered = 0; !how many times has the prisoner been given water Global guard_dead = false; !is the guard dead? Global body_hidden = false; !is the body hidden? Global wear_flag = false; !is the player wearing the guard uniform? Global seal_number = 0; !how many parts of the seal does the player have? Global seal_room_moves = 0; !how many rooms has the player entered correctly for the seal? Global door_room_moves = 0; !how many rooms has the player entered correctly for the door? !********************************************************************************************* Object Prison_Cell "Prison Cell" !Starting room has light with name "Prison", description "Faint light drifts through the bars of the otherwise dark cell. The room is dark, damp, and cold. You shiver. If there was light enough to see, you'd see the mist of your breath as you exhale. Feeling around the room, you can make out a pile of stones in one corner. Otherwise the room is empty.", d_to hole; [ Initialise; location = Prison_Cell; print "^^^^^Your head hurts... It hurts to move... You're covered in bruises and scars... Where are you? How'd you get here?? How do you get out???^^"; ]; Object cell_door "cell door" Prison_Cell !can't be opened has static with name "door" "bars" "bar" "cell", description "You examine the rusting door of the cell. It's old and looks like it's seen a lot of abuse over the years, but it's solid and well made. You try to reach the lock... no luck. There are no cracks... No gaps between the door and the wall... You reach through the bars and feel around, but you find nothing... If you're going to get out of this cell, it won't be through here...", before [; open: "This door is shut tight. You can't find a way to open the door."; ]; Object pile_of_stones "pile of stones" Prison_Cell !must be moved to escape the room has static supporter with name "pile", description "Feeling around you can make out a pile of stones against the wall in one of the far corners of the room.", before [; Take: "You can't take the whole pile."; Push,Pull: if (self hasnt general) { give self general; give hole open; give hole ~concealed; move hole to location; "You move the pile of stones out of the way and find a hole in the back wall of the cell!"; } "You've already moved the pile of stones."; ]; Object stone "stone" Prison_Cell !stone used to knockout the guard later has concealed with name "stones" "stone" "rock" "rocks", description "It's one of the stones from the pile.", before [; take: if (stone in player) "You already have a stone."; else{ move stone to player; give stone ~concealed; "You take a stone from the pile"; } drop: move stone to Prison_Cell; give stone concealed; "Dropped."; ]; object hole "hole" !This hole is the way out of the main cell, it doesn't appear untill the pile of stones is moved has static door openable concealed with name "hole" "tunnel", Description [; if (self has open) "Feeling around you can make out a roughly carved hole chiseled into the wall. You can feel a draft coming from the tunnel beyond..."; else "You can't see any such thing."; ], door_to [; if (self in Prison_Cell) return Abandoned_Cell; return Prison_Cell; ], door_dir [; if (self in Prison_Cell) return d_to; return u_to; ], before [; open: "That's not something you can open."; close: "That's not something you can close."; ], found_in Abandoned_Cell; !****************************************************************************************** object Abandoned_Cell "Abandoned Cell" !Second room in game has light with name "Abandoned", Initial [; !print this if it's the first time the player has entered the room, aka from the hole if (self hasnt general) { give self general; "You climb into the tunnel at the back of the cell. Feeling your way, you squeeze through the narrow passage on your stomach. The darkness is total... You can feel the weight of the earth above you... below you... surrounding you... The air is getting thicker... its getting harder to breathe... The earth is closing in around you... smothering you... crushing you... You panic... you can feel Death... coming for you!!! ^^Then you're free... After what felt like hours, you crawl out of the tunnel..."; !100 } ], description "You are standing in an apparently abandoned cell. A thick layer of dust covers everything. You hear rats scurry out of the way as you enter. Light enters the room from a torch on the wall to the east, outside the cell's broken door.", u_to hole, e_to Corridor_Abandoned_Cell; Object abandoned_door "cell door" !not open/closeable... it's "broken" has static with name "door" "bars" "bar" "cell", description "The door to this cell is broken, and looks like it's been that way for a long time. The door's top hinge is completely broken. The door hangs loosely in it's frame. This door is no obstacle to you", before [; open: "The door is broken, you can't open or close it."; ], found_in Abandoned_Cell Corridor_Abandoned_Cell; !****************************************************************************************** object Corridor_Abandoned_Cell "Corridor - North Wing" !an empty passage has light with name "C-Abandoned", description "You're standing in a corridor near the abandoned cell. A torch hangs on one wall, it's light producing eerie shadows. To the west you can see the abandoned cell, to the south, the corridor continues.", w_to Abandoned_Cell, s_to Corridor_Empty_Cell; !******************************************************************************************** object Corridor_Empty_Cell "Corridor - North Wing" !passage outside the empty cell has light with name "C-Empty", description "You're standing in a corridor near an empty cell. The corridor continues to the north and south. The empty cell is to the west.", n_to Corridor_Abandoned_Cell, w_to empty_door, s_to Corridor_Prisoners_Cell; object empty_door "cell door" ! door to empty cell has static door openable open with name "empty" "door" "cell", description "A rusty iron door stands between the corridor and the cell.", door_to [; if (self in Empty_Cell) return Corridor_Empty_Cell; return Empty_Cell; ], door_dir [; if (self in Empty_Cell) return w_to; return e_to; ], found_in Corridor_Empty_Cell Empty_Cell; !********************************************************************************************** object Empty_Cell "Empty Cell" !This is an empty cell, it contains a cup needed to hold water has light with name "empty", description "This cell is currently empty, though it appears in good repair. Light enters this room from the door to the east.", e_to empty_door; Object cup "cup" Empty_Cell !This cup is needed to hold water has container open with name "cup", description "This is a small tin cup."; !********************************************************************************************* object Corridor_Prisoners_Cell "Corridor - North Wing" !This passage contains a prisoner, who is "inside" the prison cell has light with name "C-Prisoner", description "You're standing in a corridor near a prison cell. The cell appears occupied. A low moaning comes from the cell. A flickering torch provides light to this room. The corridor continues to the north and south.", n_to Corridor_Empty_Cell, s_to Guard_Station_1; Object prisoner_door "prison door" Corridor_Prisoners_Cell !This door is static, it's there for scenery has static with name "door" "bars" "bar" "cell", description "The door to this cell is secured very well. Iron bars cross the door, bolted into place. You can also make out some symbols carved carefully into the door. You wonder if the door is even bared with some kind of magic. The door doesn't even seem to have a lock, or even a way to open it. It's obvious that whoever runs this prison doesn't want whoever, or whatever, is in this cell to get out... EVER!", before [; open: "You can't open this door even it you wanted to. The cell door has no handle of lock. Just moving your hand near the door, you can feel the pulse of energy protecting it."; ], found_in Corridor_Prisoners_Cell; Object prisoner "prisoner" Corridor_Prisoners_Cell !This prisoner wants water you have to give him water twice, he gives the player the first part of the stone seal, and a hint to get out of the prison has animate, with name "prisoner" "man", description "You can't clearly make out the cell's prisoner. Shadows seem to wrap around him. What you can make out is disturbing. His face is shallow, and sunken. His eye's seem to pierce you from they're sunken sockets. He appears emaciated, and almost brittle. You wonder how he can still be alive.", life [; Attack, Kiss,ThrowAt: "You can't get close enough to the prisoner to do that."; Answer: if (prisoner_watered == 0 || Prisoner_watered == 1) "Water. Please, bring me some water. I beg you!"; "The prisoner looks at you strangely."; Tell: if (prisoner_watered == 0 || Prisoner_watered == 1) "Water. Please, bring me some water. I beg you!"; "The prisoner looks at you strangely."; Show: if (prisoner_watered == 0 || Prisoner_watered == 1) "Water. Please, bring me some water. I beg you!"; "The prisoner doesn't seem interested."; Give: if (noun == water) { if (prisoner_watered ==0) { prisoner_watered = 1; remove water_2; move water to barrel; "Thank you! THANK YOU! But please, I need more. PLEASE!"; } if (prisoner_watered == 1) { seal_number = seal_number + 1; prisoner_watered = 2; remove water_2; move water to barrel; move seal_1 to player; "Thank you! THANK YOU! I feel much better. You're not a guard are you. Hmmm... A prisoner out of his cell. That doesn't happen very often. Looking to escape are you? Well... I might be able to help you with that. You helped me, so let me help you. The only OFFICAL way out of here is up. Through all the upper levels. And out the main portal. You'll never make out that way. BUT there MAY be another way out. One other prisoner has escaped from here. And he did it by going DOWN, not up. He figured out how this place was made. The magic used to hold us here. He couldn't destroy that magic. But he could add to it. So he created a new level to the prison. A secret level. On that level he made a door, and a key go with it. You'll need to find the door, and the key if you want to escape. I can tell you this. The secret level is somewhere in the South Wing, of this level of the prison. That's where they hold the most dangerous prisoners of all! You'll have to find the secret level there. As for the key... Take this. He hands you a strange piece of stone. This is part of the key you need to get out. Take it, and find the other parts. Then find the door out. Good luck. You'll need it."; } if (prisoner_watered == 2) { if (noun == water) { remove water_2; move water to barrel; "AHH! Thank you again! I am in your debt!"; } if (noun == food) { move food to Guard_Station_2; "AHH FOOD! It's been so long! Thank you!"; } } } "The Prisoner gives you a strange look."; Ask: switch (second) { 'prison': if (prisoner_watered < 2) "Water. Please, bring me some water. I beg you!"; "This place? It's old... VERY old. They call it Shalegate. It was created to hold the of worst prisoners. Those prisoner's who are too powerful, or dangerous to kill, but too powerful, or dangerous to let live. At this point the prisoner breaks down into a fit of maniac laughter."; 'escape','leaving': if (prisoner_watered < 2) "Water. Please, bring me some water. I beg you!"; "As I said. There may be a way out. Search the southern wing on this floor for the door. And find the other parts of the seal!"; 'seal','part','key': if (prisoner_watered < 2) "Water. Please, bring me some water. I beg you!"; "I'm not sure where it came from... or how I got it... But there's magic there. You'll need it if you want to escape. That much I know. Find the other parts!"; 'guards': if (prisoner_watered < 2) "Water. Please, bring me some water. I beg you!"; "Bah! A nasty bunch. Though there as much prisoners as we are. They say no one leaves this place alive."; 'water','food': if (prisoner_watered < 2) "Water. Please, bring me some water. I beg you!"; "I think they're trying to starve me. They're scared of me. You can see the door. It's sealed tight. But it'll take more then starvation, and dehydration to kill me!!"; 'door': if (prisoner_watered < 2) "Water. Please, bring me some water. I beg you!"; "Don't worry about the door. I'll find a way to open it when I need to. When I'm ready it'll take more then this prison has to stop me from leaving!"; 'level': if (prisoner_watered < 2) "Water. Please, bring me some water. I beg you!"; "I don't know much about it. But whoever made it had some power. Lots of power!"; 'prisoner': if (prisoner_watered < 2) "Water. Please, bring me some water. I beg you!"; "Me? Well there's not much to tell. You conquer a few planes of existence... Enslave a few billion people... You tend to make some enemies. He breaks down into more maniac laughter."; } ]; Object seal_1 "first part of the stone seal" !This is the first part of the key to leave the prison with name "part" "first" "stone" "seal", description "It's a flat piece of stone with a rounded edge. It looks like it's part of a larger object. The front face of the stone is covered in strange runes and sigils. The back of the stone is smooth. The stone seems to pulse in your hand... it almost feels like a heartbeat."; !********************************************************************************************** object Guard_Station_1 "Guard Station - North Wing" !The player must throw the stone at the guard to knock him out to get past him, then look at the body to find the uniform. Then the player must take the body to the "empty cell", "abandoned cell", or the "prison cell" so it won't be found by the guards, and wear the uniform to fool the guards. has light with name "Guard Station-N", description "You're standing in a guard station. There are a couple chairs here, and some torches. You can see a corridor to the north, and a large open area to the south.", n_to Corridor_Prisoners_Cell, s_to station_door; Object guard_1 "guard" Guard_Station_1 !The guard will kill the player if he does anything except go back north or throw the stone at the guard has animate, with name "guard" "man", description "There is a guard standing in this room! He looks strong and well armed. His back is turned to you so he can't currently see you. You'll need to do something about him... fast!", life [; Answer,Ask,Tell,Attack,Kiss,Show,Give: deadflag = true; "The guard notices you! He turns... A silver flash from his blade... Crimson life runs from your body... You have died."; ThrowAt: move noun to Prison_Cell; give stone concealed; guard_dead = true; remove guard_1; move guard_body to location; "Sweating, you take your shot. The stone flies at the guard... it hits! The guard goes down!"; ]; Object guard_body "body" !the body appears after the stone is thrown at the guard, it must be searched to reveal the uniform with name "guard" "body", description [; if (self hasnt general) { give self general; move uniform to location; "It's the body of the guard. Blood seeps from a wound to his head. Searching his body you find his uniform. You'd better do something with the body before it's found."; } "It's the body of the guard. Blood seeps from a wound to his head. You'd better do something with the body before it's found."; ], after [; take: body_hidden = false; drop: if (location == Empty_Cell) body_hidden = true; else if (location == Abandoned_Cell) body_hidden = true; else if (location == Prison_Cell) body_hidden = true; ]; Object uniform "guard's uniform" !This uniform must be worn by the player as a disguise has clothing, with name "uniform", description "This is the uniform of one of the prison guards. It might make a good disguise.", after [; Wear: wear_flag = true; disrobe: wear_flag = false; ]; Object chair "chair" Guard_Station_1 !A chair for scenery has static enterable, with name "chair", description "It's a rough wooded chair. It looks poorly made, and in bad shape.", before [; enter: if (guard_dead == false) { deadflag = true; "The guard notices you! He turns... A silver flash from his blade... Crimson life runs from your body... You have died."; !300 } ], after [; enter: "The chair creaks as you sit down."; ]; object station_door "door" !if the player tries to open the door and the guard is not uncousios the player will be killed by the guard has static door openable, with name "station" "door" "cell", description "A sturdy iron door stands between the station and the room beyond.", after [; open: if (guard_dead == false) { deadflag = true; "The guard notices you! He turns... A silver flash from his blade... Crimson life runs from your body... You have died."; } ], door_to [; if (self in Guard_Station_1) !if ((guard_body has Empty_Cell) || (guard_body has Abandoned_Cell) || (guard_body has Prison_Cell)) { if (body_hidden == false) { deadflag = true; "You hear a sound behind you. You turn... it's a guard... they must have found the body... you try to defend yourself, but it's to no avail... You die on the prison floor."; } else return Crossway; else return Guard_Station_1; ], door_dir [; if (self in Guard_Station_1) return s_to; return n_to; ], found_in Guard_Station_1 Crossway; !********************************************************************************************* object Crossway "Crossway" !This room is a main passage to other parts of the prison has light with name "Crossway", description "You stand in a large open room. Torches flicker their light troughout the room. You can see Gaurd Stations to the north and south. To the west is a set of stairs. The room continues to the east.", n_to station_door, s_to Guard_Station_2, w_to Stairs, e_to Hall; !********************************************************************************************* object Stairs "Stairs" !This room is only there to give the player the "illusion" of more of a prison. The player can't really do anything here has light with name "Stairs", description "At the top of the stairs you see a large, reinforced iron door. It looks like the way to the upper levels of the prison. There are several guards here watching the door.", e_to Crossway; Object guard_2 "guard" Stairs !These guards will kill the player if he isn't wearing the uniform. Otherwise they don't say much has animate with name 'guard' 'man', description "This is one of the prison's guards. He looks well armed. He looks bored, but alert.", life [; Answer,Ask,Tell,Show,Give: if (wear_flag == true) "Hey, get out of here! Your shift's not over yet! And you know the rules. No one gets through here without the Captain."; else deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; Attack,Kiss,ThrowAt: deadflag = true; "The guard retaliates with deadly force. You never stood a chance."; ]; !********************************************************************************************* object Hall "Hall" !This is another fairthrough in the prison has light with name "Hall", description "This is a large hall off of the main crossway on this level of the prison. Torches provide their eerie light. You can see a door to the north and south. The crossway is back to the west.", w_to Crossway, n_to Storage, s_to Captains_Room; !********************************************************************************************* object Storage "Storage Room" !This room contains the water that the player needs to give the prisoner, the plaer must have the cup to get it. It also contains the brass key needed for the chest in the captians room has light with name "Storage", description "This appears to be a large storage room for this part of the prison. You can make out various supplies on the shelves. There is also a large barrel full of water here. The door to the south leads out to the hall", s_to Hall; object shelves "shelves" Storage !More scenery has scenery static with name "shelves" "supplies" "supply", description "Shelves line this room. Searching them you find various supplies used for running the prison. However, nothing appears to be of much use to you."; object barrel "barrel" Storage !contains water needed by the player. Pushing it reveiles the brass key has static container open with name "barrel", decription "This is a large barrel of water. The barrel doesn't seem to rest flat on the ground", before [; push,pull: if (self hasnt general) { give self general; move brass_key to location; "Though it takes some work, you manage to shove the barrel of water over. Underneath you find a key."; } "You've pushed the barrel as far as it'll go."; ]; Object water "water" barrel !Water in the barrel, needed by the player to give to the prisoner has edible with name "water", description "This water has a slightly stale taste to it. But appears refreashing.", before [; drink: remove water_2; move water to barrel; "The water has a slightly stale taste, but it's refreashing."; take: if (water in cup) move water to player; else if (cup in player) { move water to cup; move water_2 to barrel; if (barrel hasnt general) "You fill the cup with water. As you do, you notice that the barrel doesn't seem to rest flat on the ground."; "You fill the cup with water."; } else "You don't have anything to put the water in."; drop: remove water_2; move water to barrel; "You pour the water onto the ground"; ]; Object water_2 "water" !This water is stored in the barrel when the water is removed by the player... this gives the illusion that the barrel is always full of water has edible with name "water", description "This water has a slightly stale taste to it. But appears refreashing.", before [; take: "You already have the water"; ]; Object brass_key "brass key" !needed to open the chest in the captains room, the barrel mush be moved for it to be found with name "brass" "key", description "This is a large brass key."; !********************************************************************************************* object Captains_Room "Captian's Room" !This room contains the second part of the stone seal, in the chest, which is unlocked with the brass key found in the storage room has light with name "Captians", Initial [; if (self hasnt general) { give self general; "You open the door and see the Captain of the guard. You know this man. Memories come flooding back... years of torture... of pain... The captain moves for his weapon... you're faster... You strike... the captain goes down... you hit him again... and again... and again... You lose time after that... When you wake up the captain's dead... His body's almost unidentifiable... You've got to get out of here. That's two bodies now. It's only a matter of time before they're found."; } ], description "This room has a very sparten look to it. You can see a desk with a chair, a small bed, and a large chest. Blood now covers much of the room. The room is light by those strange torches. There is a door leading out to the north.", n_to Hall; Object captain_body "body" Captains_Room !This is the body of the captain of the guard.... it's just there for seneray has static with name "captain" "body", description "It's the body of the Captain of the guard. It's hard to tell who the body used to be. You search the body, but don't find anything of interest. You'd might as well leave the body here. Hopefully it'll be some time before they find it."; Object bed "small bed" Captains_Room !more scenery has static with name "small" "bed", description "This is a small well made bed. You search it, but find nothing interesting."; Object chest "large chest" Captains_Room !contains the second part of the stone seal, unlocked by the brass key from the storage room has static container lockable openable locked with name "large" "chest", description "This old battered chest sits in one corner of the room. A sturdy lock of brass seals the chest.", with_key brass_key, after [; open: if (seal_1 in player) { move seal_2 to player; seal_number = seal_number + 1; "You open the chest and begin to search through it. Most of it's contents are clothes and various personal items. Near the bottom, however, you find a piece of cloth wrapping a hard object. You've found the second part of the stone seal!"; } else "You open the chest and begin to search through it. Most of it's contents are clothes and various personal items. Near the bottom, however, you find a piece of cloth wrapping a hard object. You have found a strange piece of stone."; ]; Object desk "desk" Captains_Room !scenery, looking at it will give the player hints about the location of the key to the chest and the location of the secret level has static with name "desk", description "An oak desk takes up a large part of this room. You carefully search through the desk. Most of the desk contains various papers about the prison. You do find one note of interest though. It's an almost ruined note, it looks like it was damaged by water. It seems to mention something about the storage room. It also mentions something about one of the doors in the South Wing."; Object seal_2 "second part of the stone seal" chest !second part of the key to excape the prison with name "part" "second" "stone" "seal", description "This is the second part of the stone seal. Like the first it's a flat piece of stone with a rounded edge, and looks like it's part of a larger object. The front face of the stone is covered in strange runes and sigils. The back of the stone is smooth. The stone seems to pulse in your hand... it almost feels like a heartbeat."; !********************************************************************************************* object Guard_Station_2 "Guard Station - South Wing" !this room has a guard that will kill the player if he's not wearing the uniform. The player must get a tray of food to get the guards to open the door to the south wing of the prison. has light with name "Guard_Station", Initial [; if (wear_flag == false) { deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; } else if (self hasnt general) { give self general; "As you walk into the room both guards look up. So you must be the fresh meat... I mean the new guy. Both the guards start laughing. Well meat allow me to be the first to welcome you to the South Wing. This is where we keep the worst of the worst. He gestures to the door. You can't help but notice that dispite his bravado, he seems very nervous as he looks at the door. So for your first job here in the luxurious South Wing, you get to feed the prisoners! Take these trays of food and I'll open the door for you. Just give the prisoners their food and leave. It's simple. Just don't get to close. They bite. The guards laugh nervously. The guards then get serious. And whatever you do DON'T OPEN ANY OF THE CELLS! You won't be able to, but don't even try it!"; } ], description "This guard station looks much like the first, though much better enforced. Two very well armed guards stand here. To the south a massive iron door blocks passage farther into the prison. Somehow the door seems to exude a raw aura of menace.", s_to massive_door, n_to Crossway; Object food "trays of food" Guard_Station_2 !This food must be taken to get the guards to unlock the door. it can be given to the prisoners has edible with name "food" "tray" "trays", description "These are several trays of food... if you can call it food. It seems to be mostly made up of some kind of foul gruel, and an anicent piece of bread.", after [; eat: move food to player; "You eat the foul tasting food. Somehow though hunger seems to make it almost taste good... almost."; take: give massive_door ~locked; "Good Luck meat! The guard unlocks the door."; ]; Object guard_3 "guard" Guard_Station_2 !will kill the player if he's not wearing the uniform, and can be asked various questions. has animate with name 'guard' 'man', description "The guard looks different from the others you've seen. He looks exceedingly well armed. He's alert and looks almost nervous.", life [; Answer,Tell,Show,Give: if (wear_flag == true) "Hey meat! I'm not interested in any of that! Get back to work!!"; else deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; Attack,Kiss,ThrowAt: deadflag = true; "The guard retaliates with deadly force. You never stood a chance."; Ask: switch (second) { 'prison': if (wear_flag == false) { deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; } "How stupid are you meat? This is Shalegate Prison. This place holds the the worst prisoners that there can be. We put the murderers and rapists on level one. The prisoners get worse the farther down you go. And this is the VERY bottom!"; 'escape','leaving': if (wear_flag == false) { deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; } "Gods! You are stupid meat. No one escapes from here... NO ONE!!"; 'guards': if (wear_flag == false) { deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; } "Yea, what about us? We're the only think keeping this place running. And no one wants to see these prisoners free."; 'food': if (wear_flag == false) { deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; } "Yea. Listen meat. Take the trays. We'll unlock the door for you. You give the food to the prisoners. Then you come back. It's simple. Now get to it!!"; 'door': if (wear_flag == false) { deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; } "This door? Yea it's big. This is the South Wing. It needs a big door."; 'south','wing': if (wear_flag == false) { deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; } "Worst of the worst in there meat. And in here that's saying something"; 'prisoner','prisoners': if (wear_flag == false) { deadflag = true; "The guards see you! You try to run but there's no where to go. You feel a sharp pain in the back of your head... then nothing."; } "Don't ask about the prisoners meat. You don't want to know. And whatever you do. Don't go talking to them!"; } ]; Object massive_door "massive door" !will be unlocked if the player takes the trays of food has door static openable lockable locked with name "door" "massive", description "This is a massive reinforced iron door. Sigils and wards cover every inch of the door. The door seems to pulse with a malevolent energy.", door_to [; if (self in Guard_Station_2) return Corridor_South_Wing_1; return Guard_Station_2; ], door_dir [; if (self in Guard_Station_2) return s_to; return n_to; ], found_in Guard_Station_2 Corridor_South_Wing_1; !********************************************************************************************* object Corridor_South_Wing_1 "Corridor - South Wing" !passage in the south wing. player can talk to the prison, and/or give the food to the prisoner, the door is there for scenery has light with name "C-SouthWing", description "You're standing at one end of a long corridor. Cells line the corridor, and torches provide the light. The entire corridor seems to pulse and move around you. You keep seeing things at the edge of your vison, but when you turn to look there's nothing there. Sounds in the room seem to echo strangely, as if the room were much larger then it appears. You can hear moaning, laughter, and strange mutterings coming from the cells. The corridor continues to the south. The massive door is to the north.", n_to massive_door, s_to Corridor_South_Wing_2; Object sw_door_1 "cell door" !more senery has static with name "door" "cell", description "This is a small reinforced iron door. Like many of the doors you've seen in the prison, sigils and wards cover the door. A prisoner is secured behind the door. A small slit alows food to be passed through the door to the prisoner.", before [; open: "You can't open this door even it you wanted to. The cell door has no handle of lock. Just moving your hand near the door, you can feel the pulse of energy protecting it."; ], found_in Corridor_South_Wing_1 Corridor_South_Wing_3; Object prisoner_2 "prisoner" Corridor_South_Wing_1 !can be given food, and talked to. doesn't way much... mostly scenery has animate with name 'prisoner' 'woman', description "Looking through the cell door you can make out a women in her middle years sitting in the center of the cell. She looks motherly and has an aura of innocence about her. Surely this women could not have done anything to deserve to be a prisoner in this black place. Your hand moves to the door of the cell. You stop yourself. Whether out of instinct, or some kind of prior knowledge, you snap yourself out of the charm. The women stares at you with black eyes.", life [; Answer,Ask,Tell,Show: "The women stares at you with eyes full of hate."; Give: if (noun == food) "You slide a tray of food through the slot in the door. The prisoner makes no move to take the food, but continues to stare at you, unmoving."; "The women stares at you with eyes full of hate."; Attack,Kiss,ThrowAt: "You can't reach her through the cell door. And even if you could... do you really think you'd survive?"; ]; !********************************************************************************************** object Corridor_South_Wing_2 "Corridor - South Wing" !this room contains a door to the next part of the prison, it can't be opened unless the player has at least one part of the stone seal. the player is given a hint if he enters the room with at least one part of the stone seal has light with name "C-SouthWing", Initial [; if (seal_number > 0) { give special_door openable; give special_door general; "As you enter this part of the corridor, the part of the stone seal seems to pulse harder."; } ], description "Sound fills this part of the corridor. From the cell you can hear laughter one second, sobbing the next, and words from a thousand different languages a second later. The corridor continues to the south and north.", w_to special_door, n_to Corridor_South_Wing_1, s_to Corridor_South_Wing_3; Object special_door "cell door" !door to next level of the dungeon. Can't be opened unless the player has at least on part of the stone seal has door with name "door" "cell", description "This is a small reinforced iron door. Like many of the doors you've seen in the prison, sigils and wards cover the door. A prisoner is secured behind the door. A small slit alows food to be passed through the door to the prisoner.", after [; open: if (self has general) "As you reach for the door the part of the stone seal pulses faster and faster. As you listen you realize that the stone is beating in sync with your heartbeat. You reach for the door and pull it open. On the other side you find not the prison cell, but a different room altogether!"; "You can't open this door even it you wanted to. The cell door has no handle of lock. Just moving your hand near the door, you can feel the pulse of energy protecting it."; ], door_to [; if (self in Corridor_South_Wing_2) return Black_Room; return Corridor_South_Wing_2; ], door_dir [; if (self in Corridor_South_Wing_2) return w_to; return e_to; ], found_in Corridor_South_Wing_2 Black_Room; Object prisoner_4 "prisoner" Corridor_South_Wing_2 !can be given food, and talked to. doesn't way much... mostly scenery has animate with name 'prisoner' 'man', description "In this cell the prisoner is chained tightly to the wall. He thrashes and tries despreatly to free himself, but to no avail. Deep cuts, and scars mark where the mancles bite into his arms and legs. He screams one minute, laughs hysterically the next. Words constently pour from his mouth. Each from a seemingly different language.", life [; Answer,Ask,Tell,Show: "The prisoner screams. He quickly becomes so loud that you have to cover your ears."; Give: if (noun == food) "You place the food into the slot in the door, but you can't see how the prisoner can ever reach it. You try to shove it farther into the cell, but some force stops you from putting you hand in the cell."; "The prisoner laughs, a castrophany of curses and swear words spews from his mouth."; Attack,Kiss,ThrowAt: "You can't reach him through the cell door."; ]; !********************************************************************************************** object Corridor_South_Wing_3 "Corridor - South Wing" !passage in the south wing. player can talk to the prison, and/or give the food to the prisoner, the door is there for scenery has light with name "C-SouthWing", description "This part of the corridor seems to be especially dark. Even though a torch rests on the far wall, darkness seems to dominate this area. The door to a cell dominates one side of this area. To the north lies the rest of the corridor.", n_to Corridor_South_Wing_2; Object prisoner_3 "prisoner" Corridor_South_Wing_3 !can be given food, and talked to. doesn't way much... mostly scenery has animate with name 'prisoner' 'thing' 'it', description "Looking through the door of the cell you can't make out what's in the cell. The... thing fills up almost the entire space. It's form seems to eat light. Pulling it into the black void that is it's body. You can make out no color. Only differing shades of black. It's as if you're staring into the dark personification of darkness itself.", life [; Answer,Ask,Tell,Show: "The thing in the cell shifts and moves, but make no indication that it even knows you're there."; Give: if (noun == food) "As you move to slide the tray under the door, the darkness inside reaches out and grabs your arm! Before you can react it pulls most of your arm into the cell. Your arm burns, but not from any heat, but from cold. A cold like you've never felt before. Panicing you pull desperatly at your arm. Finally with a desperate pull you manage to free your arm. For a long time all you can do it cradle your arm, and endure the pain. Eventually the pain subsides, and you examine your arm. It appears undamaged... but it's turned black! As if all trace of color had been leached from it!"; "The thing in the cell shifts and moves, but make no indication that it even knows you're there."; Attack,Kiss,ThrowAt: "You can't reach it through the cell door. And even if you could... do you really think you'd survive?"; ]; !********************************************************************************************* object Black_Room "Black Room" !Second Level This room contains hints to the final puzzle in the game, and a black door. The door takes the player to a random color room. has light with name "BRoom", description "You find yourself in a stange black room. The walls are perfectly smooth, and everything is painted black. Two groups of symbols mark the walls. They stand out because they're the only bit of color in the room. The room is dimly lit but you can't seem to find the sorce of the light. There is a cell door to the east, and a black door to the south.", s_to Black_Door, e_to special_door; object symbols "symbols" Black_Room !These symbols give the player a hint to the final puzzle. Follow the colors in order to get to the 2 hidden room has static with name "symbols" "symbol" "color" "pattern", description "There are two sets of symbols on one wall of this room. One set is surrounded by a picture that looks like the completed stone seal. It's made up of a set of colors: Red, Orange, Yellow, Green, Blue, Purple, and White. The second set of symbols is surrounded by the picture of a door. This set is also made up of a set of colors, but the order is different: White, Orange, Green, Purple, Red, Yellow, and Blue."; object Red_Room "Red Room" !Red room, part of the final puzzle has light with name "RRoom", description "This is a strange red room. Different colored doors line the walls.", s_to Black_Door, sw_to Red_Door, w_to Green_Door, nw_to Blue_Door, ne_to Orange_Door, e_to Yellow_Door, se_to Purple_Door, n_to White_Door; object Green_Room "Green Room" !Green room, part of the final puzzle has light with name "GRoom", description "This is a strange green room. Different colored doors line the walls.", s_to Black_Door, sw_to Red_Door, w_to Green_Door, nw_to Blue_Door, ne_to Orange_Door, e_to Yellow_Door, se_to Purple_Door, n_to White_Door; object Blue_Room "Blue Room" !Blue room, part of the final puzzle has light with name "PRoom", description "This is a strange blue room. Different colored doors line the walls.", s_to Black_Door, sw_to Red_Door, w_to Green_Door, nw_to Blue_Door, ne_to Orange_Door, e_to Yellow_Door, se_to Purple_Door, n_to White_Door; object Orange_Room "Orange Room" !Orange room, part of the final puzzle has light with name "ORoom", description "This is a strange orange room. Different colored doors line the walls.", s_to Black_Door, sw_to Red_Door, w_to Green_Door, nw_to Blue_Door, ne_to Orange_Door, e_to Yellow_Door, se_to Purple_Door, n_to White_Door; object Yellow_Room "Yellow Room" !Yellow room, part of the final puzzle has light with name "YRoom", description "This is a strange yellow room. Different colored doors line the walls.", s_to Black_Door, sw_to Red_Door, w_to Green_Door, nw_to Blue_Door, ne_to Orange_Door, e_to Yellow_Door, se_to Purple_Door, n_to White_Door; object Purple_Room "Purple Room" !Purple room, part of the final puzzle has light with name "PRoom", description "This is a strange purple room. Different colored doors line the walls.", s_to Black_Door, sw_to Red_Door, w_to Green_Door, nw_to Blue_Door, ne_to Orange_Door, e_to Yellow_Door, se_to Purple_Door, n_to White_Door; object White_Room "White Room" !White room, part of the final puzzle has light with name "WRoom", description "This is a strange white room. Different colored doors line the walls.", s_to Black_Door, sw_to Red_Door, w_to Green_Door, nw_to Blue_Door, ne_to Orange_Door, e_to Yellow_Door, se_to Purple_Door, n_to White_Door; object Seal_Room "Seal Room" !Seal room, this room has the final part of the stone seal... to get to it... follow the first set of colors... that is go from the color room to the next color room in the correct order has light with name "SRoom", description "Strange eldritch marks cover every inch of this room. The room seems to pulse with a powerful energy. Scanning the room, you see a black door to the south, and the last part of the stone seal!", s_to Black_Door; Object seal_3 "thirdpart of the stone seal" Seal_Room !final part of the stone seal... once taken the player is given the completed stone seal with name "part" "third" "stone" "seal", description "This is the third, and final, part of the stone seal. Like the first it's a flat piece of stone with a rounded edge, and looks like it's part of a larger object. The front face of the stone is covered in strange runes and sigils. The back of the stone is smooth. The stone seems to pulse in your hand... it almost feels like a heartbeat.", before [; take: if (seal_number < 2) "You reach for the part of the stone seal, but a flash of energy stops you! A barrier of energy seems to surround the stone seal. You can't reach it. You suddenly recieve a flash of knowledge. This part waits for it's brothers."; ], after [; remove seal_1; remove seal_2; remove seal_3; move seal_4 to player; "As you pick up the final part of the the stone seal there is a blinding flash of light. You see all three parts of the seal before you. Each in a halo of light and energy. The three parts move closer and closer together. The light and energy increaseing till you can no longer look directly at the stones. Then they touch... there's a second blinding flash... you're thrown to the floor... When you stand you see the completed stone seal before you."; ]; object seal_4 "completed stone seal" !the key to the final door in the prison with name "seal" "completed" "stone", description "This is the competed stone seal. The front of face of the seal is covered in runes and glyphs. The back face is smooth. The seal pulses in time with your heartbeat. Energy seems to crackle round the seal, and down your arms as you hold it."; object Door_Room "Blank Room" !final room it contains the eldritch door... when unlocked with the completed stone seal the player wins! has light with name "DRoom", description "This room seems completely empty. Almost like it isn't even here. It seems somehow less real then the other places you have been. In the northern part of the room, however, stands a strange door. This door seems more real then anything you've seen before.", s_to Black_Door; object Final_Door "Eldritch Door" Door_Room !unlock it with completed stone seal and WIN! has door static openable lockable locked with name "eldritch" "door" "final" "magic", description "This door pulses with stange energies. As you move closer to it you notice that the stone seal, the door, and your heart all beat in time. You can see a circluar indentation in the door that looks like it would fit the seal perfectly.", before [; unlock: remove seal_4; give Final_Door ~locked; give Final_Door open; deadflag = 2; "You place the seal into the door. The room goes still... Then the reality around you shatters... you're falling through an empty void... for an age... a lifetime... you fall... an endless empty expanse surrounds you... Then in a rush reality returns. You find yourself standing in the center of a city square. People bussle around you going through there lives. No one seems to notice that you weren't there a second before. You look up and see the sun and sky above you. A warm wind blows past you. You start laughing... You're free... The nightmare is over... you laugh for a long time... some people stare then, but none of them pay you much attention... Then you stop. You look around at the world around you... You turn then, and start walking down the street... It's time you started living......"; ], with_key seal_4; !******************************************************************************************** object Black_Door "black door" !this door takes the player to a random room if the player is in the black room, and leads back to the black room from any other toom on this level has door static openable open with name "black" "door", description "This door is completely black.", door_to [; if (self in Black_Room) { seal_room_moves = 0; door_room_moves = 0; return random(Red_Room, Green_Room, Blue_Room, Orange_Room, Yellow_Room, Purple_Room, White_Room); } else return Black_Room; ], door_dir s_to, found_in Black_Room Red_Room Green_Room Blue_Room Orange_Room Yellow_Room Purple_Room White_Room Seal_Room Door_Room; object Red_Door "red door" !leads to the red room, enter in the correct order to get to the seal and door room has door static openable open with name "red" "door", description "This door is completely red.", door_to [; if (location == White_Room) { if (seal_room_moves >= 6) return Seal_Room; else { seal_room_moves = seal_room_moves + 1; door_room_moves = 0; return Red_Room;} } else if (location == Purple_Room) { if (door_room_moves >= 6) return Door_Room; else { door_room_moves = door_room_moves + 1; seal_room_moves = 0; return Red_Room;} } else return Red_Room; ], door_dir sw_to, found_in Red_Room Green_Room Blue_Room Orange_Room Yellow_Room Purple_Room White_Room; object Green_Door "green door" !leads to the green room, enter in the correct order to get to the seal and door room has door static openable open with name "green" "door", description "This door is completely green.", door_to [; if (location == Yellow_Room) { if (seal_room_moves >= 6) return Seal_Room; else { seal_room_moves = seal_room_moves + 1; door_room_moves = 0; return Green_Room;} } else if (location == Orange_Room) { if (door_room_moves >= 6) return Door_Room; else { door_room_moves = door_room_moves + 1; seal_room_moves = 0; return Green_Room;} } else return Green_Room; ], door_dir w_to, found_in Red_Room Green_Room Blue_Room Orange_Room Yellow_Room Purple_Room White_Room; object Blue_Door "blue door" !leads to the blue room, enter in the correct order to get to the seal and door room has door static openable open with name "blue" "door", description "This door is completely blue.", door_to [; if (location == Green_Room) { if (seal_room_moves >= 6) return Seal_Room; else { seal_room_moves = seal_room_moves + 1; door_room_moves = 0; return Blue_Room;} } else if (location == Yellow_Room) { if (door_room_moves >= 6) return Door_Room; else { door_room_moves = door_room_moves + 1; seal_room_moves = 0; return Blue_Room;} } else return Blue_Room; ], door_dir nw_to, found_in Red_Room Green_Room Blue_Room Orange_Room Yellow_Room Purple_Room White_Room; object Orange_Door "orange door" !leads to the orange room, enter in the correct order to get to the seal and door room has door static openable open with name "orange" "door", description "This door is completely orange.", door_to [; if (location == Red_Room) { if (seal_room_moves >= 6) return Seal_Room; else { seal_room_moves = seal_room_moves + 1; door_room_moves = 0; return Orange_Room;} } else if (location == Purple_Room) { if (door_room_moves >= 6) return Door_Room; else { door_room_moves = door_room_moves + 1; seal_room_moves = 0; return Orange_Room;} } else return Orange_Room; ], door_dir ne_to, found_in Red_Room Green_Room Blue_Room Orange_Room Yellow_Room Purple_Room White_Room; object Yellow_Door "yellow door" !leads to the yellow room, enter in the correct order to get to the seal and door room has door static openable open with name "yellow" "door", description "This door is completely yellow.", door_to [; if (location == Orange_Room) { if (seal_room_moves >= 6) return Seal_Room; else { seal_room_moves = seal_room_moves + 1; door_room_moves = 0; return Yellow_Room;} } else if (location == Red_Room) { if (door_room_moves >= 6) return Door_Room; else { door_room_moves = door_room_moves + 1; seal_room_moves = 0; return Yellow_Room;} } else return Yellow_Room; ], door_dir e_to, found_in Red_Room Green_Room Blue_Room Orange_Room Yellow_Room Purple_Room White_Room; object Purple_Door "purple door" !leads to the purple room, enter in the correct order to get to the seal and door room has door static openable open with name "purple" "door", description "This door is completely purple.", door_to [; if (location == Blue_Room) { if (seal_room_moves >= 6) return Seal_Room; else { seal_room_moves = seal_room_moves + 1; door_room_moves = 0; return Purple_Room;} } else if (location == Green_Room) { if (door_room_moves >= 6) return Door_Room; else { door_room_moves = door_room_moves + 1; seal_room_moves = 0; return Purple_Room;} } else return Purple_Room; ], door_dir se_to, found_in Red_Room Green_Room Blue_Room Orange_Room Yellow_Room Purple_Room White_Room; object White_Door "white door" !leads to the white room, enter in the correct order to get to the seal and door room has door static openable open with name "white" "door", description "This door is completely white.", door_to [; if (location == Purple_Room) { if (seal_room_moves >= 6) return Seal_Room; else { seal_room_moves = seal_room_moves + 1; door_room_moves = 0; return White_Room;} } else if (location == Blue_Room) { if (door_room_moves >= 6) return Door_Room; else { door_room_moves = door_room_moves + 1; seal_room_moves = 0; return White_Room;} } else return White_Room; ], door_dir n_to, found_in Red_Room Green_Room Blue_Room Orange_Room Yellow_Room Purple_Room White_Room; !********************************************************************************************* Object chair2 "chair" !more scenery has static enterable, with name "chair", description "It's a rough wooded chair. It looks poorly made, and in bad shape.", after [; enter: "The chair creaks as you sit down."; ], found_in Guard_Station_2 Captains_Room; object torch "torch" !more scenery has scenery with name "light" "torch" "fire", description "A torch hangs on the wall producing an eerie light. As you examine it more closely you notice that the torch itself doesn't seem to burn. You move your hand near the flame... you feel no heat. You touch the fire and your hand doesn't burn. This torch seems to produce light but no heat.", before [; take: "You try to remove the torch from the wall. It won't budge. You try harder... still nothing. You put your full weight into it, but the torch is secured fast to the wall. You can't take the torch."; ], found_in Corridor_Abandoned_Cell Corridor_Prisoners_Cell Guard_Station_1 Crossway Guard_Station_2 Stairs Hall Corridor_South_Wing_1 Corridor_South_Wing_3;