Constant Story "SNEAKY GAME"; Constant Headline "^A stealth adventure by Jim Nardecchia^"; !Constant DEBUG; Include "parser"; Include "verblib"; Include "grammar"; Global firstmove = true; !*** Flag for making sure opening text is only printed once Global guardoutside = false; !*** Flag for checking where the guard is Global spottedbylight = false; !*** Flag to see if player has been spotted by the light !*********** AREAS *************** !**** Starting area Object Outside_Gate "Outside front gate" has light with name "outside" "outside gate" "starting spot" "start" "starting", description "You are hiding in a wooded area in front of the complex.", n_to Center, before[; !**** To ensure that the opening text is only printed once if(firstmove == true) { print"Your orders are to infiltrate the enemy complex, and steal a CD-ROM containing vital enemy secrets. You have limited information about the complex, and no weapons to speak of. You must use your intuition and smarts to make it through the complex. Once you have recovered the CD you are to head to the roof where a helicopter will swoop in to recover you. Good luck, you'll need it! ^^ The front gate of the complex stands before you, it is heavily armed and locked down tight. There is a guard tower inside the gate which is shining a spotlight infront of the gate entrance. If anything is spotted by the spotlight, a guard would surely come out to investigate.^^ As you stand in the bushes outside the complex, you notice that Its a very dark night, perhaps you could use the darkness to your advantage. You think about your plan of attack,and what move to make first.^^"; } firstmove = false; ], after[; if(spottedbylight == true) !*** Prints if the player steps into the light { "The guard comes out of the complex to investigate what he saw, he opens the front gate and stands in the spotlight.The gate is unlocked! Now is your chance to gain access to the complex.^"; } ]; !*** Area between the starting point and the gate, contains the spotlight Object Center "Center field, right by the spotlight" has light with name "center" "field" "center field", description "The spotlight is directly in front of you", n_to Front_Gate, s_to Outside_Gate; !*** Area right in front of the front gate Object Front_Gate "At the front gate" has light with name "at gate" "outside gate", description "The front gate is directly in front of you", n_to Gate, s_to Center; !*** Area between the front gate and the complex Object Courtyard "Courtyard inside the gate" has light with name "courtyard" "yard" "court", description "You go through the gate into the courtyard, the complex is just ahead", n_to Complex_Entrance, s_to Gate; !*** Right outside the complex door object Complex_Entrance "Entrance to the complex" has light with name "entrance", description "You stand directly in front of the door to the complex. There is an access panel to the right of the door", n_to Complex_Door, s_to Courtyard; !*** First room inside the comlpex object Complex_Front "Inside the Complex" has light with name "front", description "You are now inside the complex, there is a hallway to the west.", w_to Offices, s_to Complex_Door; !*** Center room in the complex object Offices "Offices" has light with name "offices", description "You step into the main offices of the complex, you notice several rooms around you, and a stairway to the roof north of you. One room in particular catches your eye, the room marked Data Entry to the south", n_to [; if(CD_Rom in player) { deadflag = 2; return Roof; } else print "You can't leave yet! You don't have the CD-Rom! Go back and find it!"; ], e_to Complex_Front, s_to Data_Entry; !*** Room that contains the CD-Rom object Data_Entry "Data Entry room" has light with name "Data entry room", description "There are many items in the office, a desk, a binder, a cup of paperclips, among others.", n_to Offices; !*** End room of the game, the player wins when they reach the roof object Roof "Roof of the complex" has light with name "roof", description "Its the roof of the complex, you can see everything from here."; !************** DOORS ******************* !*** Allows access to the inside of the gate Object -> Gate "Front Gate" has static door openable lockable locked with description "It's a large steel gate, looks pretty sturdy.", name "gate" "front gate" "door", when_closed "The gate is closed", when_open "The gate is open, the way through is clear", door_to [; if(self in Front_Gate) return Courtyard; return Front_Gate; ], door_dir [; if(self in Front_Gate) return n_to; return s_to; ], found_in Front_Gate Courtyard; !*** Allows access to the inside of the complex Object -> Complex_Door "Complex Door" has static door openable lockable locked with description "Its a reinforced door, somehow it doesn't seem like knocking will work.", name "door" "complex door", when_closed "The door is closed", when_open "The door has slided open", door_to [; if(self in Complex_Entrance) return Complex_Front; return Complex_Entrance; ], door_dir [; if(self in Complex_Entrance) return n_to; return s_to; ], found_in Complex_Entrance Complex_Front, before[; Unlock: "It doesn't seem like the door can be unlocked directly. The lock must be controlled by something else."; ]; !************** OBJECTS ****************** !*** Can be thrown at the spotlight or at the guard Object stone "stone" Outside_Gate with name "stone" "rock" "ball", initial "A stone is laying within reach of your hiding spot^", description "A hard grey stone, about the size of your hand, perfect for throwing"; !*** Player must interact with the spotlight in order for the gate to be unlocked Object Spotlight "Spotlight" Center has enterable static with name "light" "spotlight" "spot", initial "The spotlight shines between you and the gate", description "The spotlight cuts through the darkness, it shines directly in front of the gate. If the guards see something, they are sure to come out of the gate to investigate. You could probably make it around the spotlight without being detected.^^", before[; ThrownAt: !*** If player throws the stone at the spotlight give Gate ~locked; move Front_Guard to Center; guardoutside = true; "You throw the stone into the spotlight, the guard The guard comes out of the complex to investigate what he saw, he opens the front gate and stands in the spotlight. The gate is unlocked! Now is your chance to gain access to the complex.^"; Enter: !*** If player enters the spotlight if(spottedbylight == false) { spottedbylight = true; print "You step into the spotlight, a guard spots something and is coming to check it out! You'd better hide before he gets here!^^"; give Gate ~locked; move Front_Guard to Center; guardoutside = true; } else !*** If player enters the light after the guard has entered it { spottedbylight = false; deadflag = 1; "You step into the light and the guard spots you immediately, he shoots you on sight!"; } ], after[; if(spottedbylight == true) PlayerTo(Outside_Gate); ]; !*** Guards the front of the complex Object Front_Guard "Guard" Courtyard has static with name "guard", initial "You see the guard standing before you", description "The guard is wearing what looks like military fatigues, looks like he means business. Be careful not to get spotted by him.", before[; ThrownAt: "You throw the stone at the Guard, perfectly striking him between the eyes. He goes down hard, looks like hes out cold, won't have to worry about him anymore."; ]; !*** Tower inside the gate that contains the access card Object Guard_Tower "Guard Tower" Courtyard has enterable static with name "guard tower" "guard" "tower", initial "The guard tower is empty", description "The guard tower looks pretty bland and uncomfortable, you wonder how the guards manage to sit there for hours on end. Perhaps the pay is excellent."; !*** Card that allows access to the complex Object Card "Access Card" Guard_Tower with name "card" "access" "access card", initial "A guards access card is lying on the counter of the guard tower", description "An access card for the complex, might be useful."; !*** Panel that controls the lock on the complex door Object Access_Panel "Access Panel" Complex_Entrance has concealed lockable locked with name "panel" "access panel", description "An access panel, it must be to unlock the door, looks like it has a card slot.", with_key Card, before[; Unlock: give Complex_Door ~locked; "You hear the locks of the door release"; ]; !*** Dummy item to throw the player off Object Binder "Binder" Data_Entry has concealed with name "binder", description "Its a binder full of paper, you look through it. Hmm.. no CD in here"; !*** Desk in the Data_Entry office that contains the drawer Object Desk "Desk" Data_Entry has concealed static with name "desk", description "Its a basic office desk, it has one drawer"; !*** Drawer in the desk that contains the CD-Rom Object Desk_Drawer "Desk drawer" Data_Entry has concealed static container openable lockable locked with name "drawer" "desk drawer", description "The drawer to the office desk, I wonder why it would be locked.", with_key Paperclip, before[; Unlock: if(Paperclip in player) { give Desk_Drawer ~locked; "You bend the paperclip into a lockpick and pick the drawers lock"; } else "You don't have anything that can unlock the drawer"; ]; !*** Sits on the desk and holds the paperclip Object Paperclip_Cup "Cup of paperclips" Data_Entry has concealed static with name "cup" "cup of paperclips", description "Its a cup full of paperclips, I wonder if one would come in handy. I'm sure they wouldn't mind if you borrowed one"; !*** Can be used to pick the lock on the desk drawer Object Paperclip "paperclip" Data_Entry has concealed with name "paperclip" "clip" "single paperclip" "one paperclip", description "A single paperclip, easily bendable."; !*** Object of the game, needed to complete the game Object CD_Rom "CD-Rom" Desk_Drawer with name "CD" "CD-ROM" "Disk", initial "You see the CD-ROM!!", description "Its a CD-Rom marked secrets, you wonder who would be so dumb as to mark it that way, but its not your job to wonder that."; [ Initialise; location = Outside_Gate; ];