Constant Story "BREAKOUT"; Constant Headline "^Escape From Prison^by Peter Wilkins^"; Constant DEBUG; Include "parser"; Include "verblib"; Include "grammar"; global ventOpen = false; global sinkPulled = false; global lighterLit = false; global lighterTaken = false; global clothTaken = false; global fileTaken = false; global wrenchTaken = false; global lighterWet = true; global dogsEluded = false; global copsEluded = false; global fanStopped = false; !Grammar--------------------------------------------------------------------------- Verb "use" *held ->Use * held "on" noun ->Use; [UseSub;]; !Rooms----------------------------------------------------------------------------- Object prisonCell "Prison Cell" has light with name "sheets" "lights" "bars", description "You find yourself in a small one man cell on death row. It is night, and all lights have been turned off except for one. Its light shines through the bars and reflects off the metal sink and toilet. A cool breeze blows from the vent above, rustling the sheets on your bed.", e_to [; if (ventOpen == true) { return airDuct; } ], n_to [; if (sinkPulled == true) { return pipeTunnel; } ]; Object airDuct "Air Duct" has light with name "duct", description [; if (lighterLit == true && wrenchTaken ~= true) { "You are in a small cramped duct. The only direction to move forward is east. A wrench is laying in the middle of the duct, perhaps left behind by a careless maintenence man."; } else if (lighterLit == true && wrenchTaken == true) { "You are in a small cramped duct. The only direction to move is east."; } else { "It is pitch black and you cannot see a thing."; } ], w_to prisonCell, e_to [; if (lighterLit == true) { return ductExit; } else { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], n_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], s_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], nw_to [; if (lighterLit == true) { return sewers; } else { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], ne_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], sw_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], se_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ]; Object pipeTunnel "Water Pipe Tunnel" has light with name "tunnel" "pipe", description [; if (lighterLit == true) { "You are in a narrow tunnel with water pipes along the walls. There is a small stream of sewage flowing down the middle. The only direction to move forward is north."; } else { "It is pitch black and you cannot see a thing."; } ], s_to prisonCell, n_to [; if (lighterLit == true) { return sewers; } else { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], w_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], e_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], nw_to [; if (lighterLit == true) { return sewers; } else { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], ne_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], sw_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ], se_to [; if (lighterLit ~= true) { print "It is pitch black and you cannot see a thing. Perhaps if you had some light, you might be able to see where you are going.^"; return true; } ]; Object sewers "Sewers" has light with name "sewers", description "You are in a wider tunnel now. The water pipes stray from the tunnel path to reveal a small gap in the wall. The stream of sewage is practically a river now, up to your ankles. An alarm has sounded, and you can hear officers and dogs to the north and south. You are certain the officers will easily spot you, and the dogs will track your scent. You better stay put and figure this out quickly before it is too late.", n_to [; if (copsEluded ~= true && dogsEluded ~= true) { deadflag = true; "The guards have easily spotted you, not to mention the dogs smelling you from afar. You are placed in handcuffs and taken to a new cell with guards to watch you 24/7 until the execution.^^GAME OVER."; } else if (copsEluded == true && dogsEluded ~= true) { deadflag = true; "The guards were not able to spot you until the dogs sniffed you out of your hiding spot. You are placed in handcuffs and taken to a new cell with guards to watch you 24/7 until the execution.^^GAME OVER."; } else if (copsEluded ~= true && dogsEluded == true) { deadflag = true; "The dogs may not have smelled you, but the guards easily spot you. You are placed in handcuffs and taken to a new cell with guards to watch you 24/7 until the execution.^^GAME OVER."; } else { deadflag = false; "You follow the tunnels to a manhole cover in a construction zone. You easily convince the workers that you were a sewage worker that had an accident. They may have been that gullible since you smelled horrible, and they didn't want you around anymore. You clean yourself off and find a change of clothes. You are home free.^^ GAME OVER."; } ], s_to [; if (copsEluded ~= true && dogsEluded ~= true) { deadflag = true; "The guards have easily spotted you, not to mention the dogs smelling you from afar. You are placed in handcuffs and taken to a new cell with guards to watch you 24/7 until the execution.^^GAME OVER."; } else if (copsEluded == true && dogsEluded ~= true) { deadflag = true; "The guards were not able to spot you until the dogs sniffed you out of your hiding spot. You are placed in handcuffs and taken to a new cell with guards to watch you 24/7 until the execution.^^GAME OVER."; } else if (copsEluded ~= true && dogsEluded == true) { deadflag = true; "The dogs may not have smelled you, but the guards easily spot you. You are placed in handcuffs and taken to a new cell with guards to watch you 24/7 until the execution.^^GAME OVER."; } else { return pipeTunnel; } ]; Object ductExit "Air Duct Exit" has light with name "duct", description "You are in a small cramped duct. A large industrial fan spinning quite fast consumes the width of the duct to the east.", e_to [; if (fanStopped ~= true) { deadflag = true; "The fan rips you to pieces. It was not a great idea to crawl head first into an industrial fan.^^ GAME OVER."; } else { deadflag = false; "With the fan stopped you easily pass through. After following the ducts, you come across an exhaust duct. You kick it out and make the rest of your escape on foot. You are home free.^^GAME OVER."; } ], w_to airDuct; !Objects----------------------------------------------------------------------------- Object sink "sink" prisonCell has concealed supporter with name "sink", description [; if(sinkPulled ~= true) { "The metal sink hangs from the north wall. It has a slight lean to one side, and water slowly drips from the bottom."; } else { "The metal sink lays on the ground underneath a hole in the north wall with the hoses still attached."; } ], before [; Take: print "You can't take this, it is too heavy.^"; return true; Pull, Push: if (sinkPulled ~= true) { print "The sink breaks free from the north wall and rests on the ground. There is a hole in the wall where it once was. A metal nail file falls to the ground. It must have been hidden there by a previous inmate.^"; move file to prisonCell; sinkPulled = true; return true; } ]; Object bed "bed" prisonCell has static concealed supporter with name "bed", description [; if (clothTaken ~= true) { "The bed sits in the northwest corner of the cell. Its shotty metal frame holds a thin lumpy mattress covered with sheets. A piece of torn cloth hangs from the metal frame, perhaps from the previous inmate's sheets."; } else { "The bed sits in the northwest corner of the cell. Its shotty metal frame holds a thin lumpy mattress covered with sheets."; } ]; Object vent "vent" prisonCell has static concealed supporter with name "vent" "air vent" "air-vent", description [; if (ventOpen ~= true) { "The vent is fairly large, and is fastened tightly to the east wall with several screws."; } else { "The vent is fairly large. It hangs below the duct opening on the east wall by one screw."; } ]; Object toilet "toilet" prisonCell has static concealed supporter with name "toilet" "john" "pooper", description "The metal toilet sits in the northeast corner of the cell. Something appears to be hanging from the underside of the seat."; Object seat "toilet seat" toilet has static concealed supporter with name "seat" "toilet seat" "toilet-seat", description [; if (lighterTaken ~= true) { "The seat is made of cold hard metal. There is a lighter taped to the underside. Perhaps the previous occupant was a smoker."; } else { "The seat is made of cold hard metal."; } ]; Object lighter "lighter" seat has concealed supporter with name "lighter", description [; if (lighterWet == true) { "The lighter is a nice zippo lighter. It is wet from being under the toilet seat, and may prove difficult to light."; } else { "The lighter is a nice zippo lighter."; } ], before [; Take: lighterTaken = true; Use: if (lighterWet == true) { print "You strike the lighters flint without result. It may be too wet to light.^"; } else { print "You strike the lighters flint, which emits a spark. The wick lights and the warm glow of the flame lights the way.^"; lighterLit = true; } ]; Object cloth "cloth" bed has concealed supporter with name "cloth" "piece of cloth" "piece", description "The piece of cloth is torn. It most likely came from some bedsheets.", before [; Use: if (lighterTaken == true && second == lighter) { print "You wipe the lighter off with the cloth. You should be able to light it now.^"; lighterWet = false; } ]; Object file "nail file" sink has concealed supporter with name "file" "nail file" "nail-file", description "The nail file is made of metal and is quite strong. The tip is flat and tapered, which may suggest it doubles as another tool.", before [; Take: fileTaken = true; Use: if (player in prisonCell && second == vent) { print "You use the file to unscrew the vent from the east wall.^"; ventOpen = true; } ]; Object wrench "wrench" airDuct has concealed supporter with name "wrench", description "The wrench is old and covered in dust.", before [; Take: wrenchTaken = true; Use: if (player in ductExit && second == fan) { print "You jam the wrench into the fan's gears causing it to come to a hault.^"; fanStopped = true; } ]; Object fan "fan" ductExit has static concealed supporter with name "fan", description [; if (fanStopped ~= true) { "The fan is spinning very fast. Its gears churn with all their power."; } else { "The fan has been stopped. Its gears are permanently damaged. "; } ]; Object gap "gap" sewers has static enterable concealed supporter with name "gap", description "The gap is bathed in darkness, it looks like one could squeeze into it.", before [; Enter: print "You manage to squeeze into the gap. "; copsEluded = true; if (dogsEluded ~= true) { deadflag = true; "The guards were not able to spot you until the dogs sniffed you out of your hiding spot. You are placed in handcuffs and taken to a new cell with guards to watch you 24/7 until the execution.^^GAME OVER."; } else { print "The guards walk right past your hiding spot. The dogs smell nothing but sewage and continue on. As you step out of the gap, you wipe the sweat from your brow, and realize that was too close.^"; return true; } ]; Object sewage "sewage" sewers has concealed supporter with name "sewage" "waste", description "The sewage flows like a river, is about ankle deep, and smells absolutely horrible.", before [; Take: print "You cup your hands and let them fill with sewage.^"; Use: print "You splash the sewage all over yourself. This should throw off those dogs.^"; dogsEluded = true; ]; Object hole "hole" prisonCell has static concealed supporter with name "hole", description "The hole is quite large, and reveals a dark tunnel to the north."; [Initialise; location = prisonCell; "^^^^^^^^After being prosecuted for a murder you didn't commit, you have been sentenced to death. Desperate to continue your life, you decide to attempt a breakout.^"; ];