Constant Story "Vendetta"; Constant Headline " By Shaun West (2002)^^ Rated 'M' for Mature^"; Constant MAX_SCORE 74; Serial "021109"; Release 1; Include "Parser"; Include "VerbLib"; !------------------------------------------------------------------------------ ! Initialize ! !------------------------------------------------------------------------------ [ Initialise; location = F2; startdaemon(kang); ]; [ PrintRank; print ", earning you the rank of "; if (score >= 70) "the greatest."; if (score >= 60) "above average."; if (score >= 45) "average."; if (score >= 30) "below average."; if (score >= 15) "wuss."; "pansy."; ]; !------------------------------------------------------------------------------ ! Globals !------------------------------------------------------------------------------ global cheat=0; global visited_northside; global visited_downtown; global hp=6; !------------------------------------------------------------------------------ ! Attributes !------------------------------------------------------------------------------ Attribute consciousness; Attribute alive; Attribute awake; Attribute aphone; Attribute gavephonenumber; Attribute broken; Attribute knockdown; !------------------------------------------------------------------------------ ! Classes !------------------------------------------------------------------------------ Class Person has consciousness alive; Class Bouncer ! Bouncers guard the entrance to Kang Woo's Club with life [; answer: "Nothing but silence."; ask: "~End of the line, punk.~"; ], before [; shoot: if(gun in player)print "Upon attacking the bouncer, five more bouncers appear out of nowhere and pounce on you. You don't have a chance. Unfortunately two broken legs and two broken arms significantly impedes your mission of vengeance. Well, at least you'll be able to visit with Cousin Willy some more."; punch, kick: print "Upon attacking the bouncer, five more bouncers appear out of nowhere and pounce on you. You don't have a chance. Unfortunately two broken legs and two broken arms significantly impedes your mission of vengeance. Well, at least you'll be able to visit with Cousin Willy some more."; deadflag=1; ], has consciousness alive animate; Class Thug ! Thugs are daemons found in various locations. with standing 1, active 0, daemon [; if (self.standing==0) { if(random(2)==1) { self.standing=1; "^The thug gets up!^"; } "^The thug tries to get up, but stumbles over again!^"; } if (random(4)==1) { print "^The thug fires his gun and hits you!^"; CheckVest(); } else { "^The thug fires his gun but misses you!^"; } ], before [; Shoot: if(gun notin player)"With what?"; if(self hasnt alive)"The thug seems to be dead already."; if(self hasnt consciousness) { give self ~alive; self.active=0; stopdaemon(self); "You shoot the thug while he's down."; } if(self.active==0) { give self ~alive; score=score+5; "You shoot the thug. He falls down dead."; } if(random(3)<3) { give self ~alive; stopdaemon(self); self.active=0; score=score+5; "^You fire at the thug and hit! He falls down dead.^"; } else { "^You fire at the thug but miss!^"; } Kick: if(player in bulldozer)"You better get out of your vehicle first."; if(self hasnt alive)"You kick the dead thug."; if(self hasnt consciousness)"You kick the thug to make sure he stays down!"; if(self.standing==0 || self.active==0) { give self ~consciousness; stopdaemon(self); self.active=0; score=score+5; "^You kick the thug in the head and knock him out!^"; } if(random(2)==1) { self.standing=0; "^You kick the thug and knock him down!^"; } else { "You try to kick the thug but he dodges out of the way!"; } Punch: if(player in bulldozer)"You better get out of your vehicle first."; if(self hasnt alive)"You punch the dead thug."; if(self hasnt consciousness)"You punch the thug to make sure he ain't gettin' back up."; if(self.standing==0 || self.active==0) { give self ~consciousness; self.active=0; stopdaemon(self); score=score+5; "^You punch the thug in the face and knock him out!^"; } if(random(3)==1) { stopdaemon(self); give self ~consciousness; self.active=0; score=score+5; "^You punch the thug in the face and knock him out!^"; } ], life [; answer: switch(random(3)) { 1:"The thug says, ~Shut up and fight!~"; 2:"The thug says, ~You's gonna die boy!~"; 3:"The thug responds with silence."; } ], has animate consciousness alive; !Describe sections of the north side. Class NorthSide with initial [; if(visited_northside==0) { visited_northside=1; "You've entered the city's North Side. This place is a little tougher than the South Side. You had better be careful."; } ], has light; !Describe sections of the Downtown. Class Downtown with initial [; if(visited_downtown==0) { visited_downtown=1; "You are now downtown. Skyscrapers rise up all around you and the streets bustle with activity."; } ], has light; Class SouthSide has light; !------------------------------------------------------------------------------ ! Locations !------------------------------------------------------------------------------ Object vest "Kevlar Vest" with damage 2, !The vest can take 2 hits. name "vest" "kevlar" "bulletproof", description [; !Report different descriptions depending on the damage taken. if(self.damage==2)"A bullet proof vest in excellent condition."; if(self.damage==1)"A bullet proof vest, with some damage, but it looks like its still good."; if(self.damage==0)"The wearer of this vest hasn't been having a very good day, I wager."; ]; Object flashlight "Flashlight" with name "flash" "light" "flashlight", description "A durable flash light, should light up darkened areas pretty well.", before[; switchon: give player light; print "You switch the flashlight on."; rfalse; switchoff: give player ~light; print "You switch the flashlight off."; rfalse; ], has switchable; Object gun "Beretta Elite II Handgun", with name "gun" "beretta" "handgun", description "This is one fine weapon. 9mm or 40S&W caliber, semi-automatic, stainless steel, double or single action, oh yeah."; !---- Start location ----! ! This is where the player begins the game. SouthSide F2 "The Street" with description [; if(self hasnt visited) "After giving the driver the last of your money, you exit the cab and stand on the sidewalk before the City Hospital. Inside, Cousin Willy awaits your arrival. The cab speeds quickly away."; print "The street goes north, east, and west. Directly to the south is the City Hospital."; ], initial [; if(self hasnt visited)"^^^For many years you worked for your family, the most powerful crime family in the city, as an enforcer. But eventually you grew tired of that line of work and left. You found yourself high in the mountains of Tibet, where, over the years, you learned many things.^^ Then, one day, the letter arrived. It said, ~Your father and the remainder of the family are dead. Do not return, it's too dangerous. I am sorry.~ It was signed, ~Cousin Willy~.^^ Soon after, filled with many questions and great anger, you left the peaceful mountains and returned to the city of your dark past.^^"; ], n_to E2, s_to hospital_lobby, w_to F1, e_to F3; !---- City Hospital ----! Object hospital_lobby "The Hospital Lobby" with knows_room_number 0, description [; if(self hasnt visited) "The hospital is bustling with activity. Doctors, nurses, patients, and families hurry about, tending to their business. A young blonde receptionist sits at the front desk."; print "You can see the front desk, a hallway leading south, and the exit doors."; ], before [; Go: if(noun == s_obj && self.knows_room_number==0)"Wait a sec, you don't know which room Willy's in. Better ask the receptionist."; ], s_to willys_room, n_to F2, has light; ! The receptionist can tell the player where to find Cousin Willy's Room Person -> receptionist "receptionist" with name "receptionist" "young" "blonde" "girl" "hot", description "This girl is pretty hot.", initial [; if(self has consciousness && self has aphone)"The receptionist chatters annoyingly on the phone."; if(self has consciousness && self hasnt aphone)"The receptionist seems very irritated."; "The receptionist is laying on the floor."; ], yell [; print "The receptionist yells, ~Hey jerk!~^"; ], before [; if(action==##Punch || action==##Kick) { if(self has consciousness) { give self ~consciousness; "~Oof!~ the receptionist moans as she falls to the floor unconscious."; } "Wow, kicking a girl when she's already down? That's not very manly."; } if(action==##Shoot) { if(gun notin player)"With what?"; "Now that wouldn't be very nice."; } ], life [; Answer: if(self hasnt consciousness)"The girl is lying on the floor unconscious, she isn't going to be too responsive."; switch(noun) { 'hello', 'hi': if(self has aphone)"The girl ignores you and continues talking on the phone."; if(self hasnt aphone)"The girl glares at you."; } Ask: if(self hasnt consciousness)"The girl isn't even conscious! How is she supposed to answer you?"; switch(second) { 'willy', 'cousin': if(self hasnt aphone && hospital_lobby.knows_room_number==0) { hospital_lobby.knows_room_number=1; score=score+2; "She turns to the computer and hits a few keys, then replies, ~He's like, in room 213. Can I have my phone now?~"; } if(self hasnt aphone) { "The receptionist replies, ~I already told you, 213! Now give me my phone!~"; } } if(self hasnt aphone) "The receptionist stares blankly and replies, ~Like, I can't help you with that, would you please give me my phone back...NOW!~"; if(self has aphone) "The girl keeps on talking as if you weren't even there."; Kiss: if(self has aphone && self hasnt gavephonenumber) { move receptionist_phonenumber to player; give receptionist gavephonenumber; "The girl blushes, writes something on a piece of paper and hands it to you. Then she winks and returns to her phone conversation."; } if(self hasnt aphone) { "~What's wrong with you?~"; } "~Hey man, later tonight, okay? I'm working...~"; Give: if(noun==phone && phone in player) { move phone to hospital_lobby; give receptionist aphone; "She snatches the phone away and throws you an evil glare. Then she dials a number and continues talking."; } ], has animate aphone; Object -> receptionist_phonenumber "piece of paper" with name "piece" "paper" "phonenumber", description "It says, ~368-972...~ and you can't quite make out the last number.", after [; Drop: give self ~concealed; ], has concealed; ! The player must take the phone to be able to speak to the receptionoist. Object -> phone "phone" with name "phone" "telephone" "panasonic", description "Looks like a Panasonic KX TGA 420B 2.4 GHz phone", after [; Take: if(receptionist has aphone) { give receptionist ~aphone; receptionist.yell(); } ], has concealed; Object willys_room "Cousin Willy's Room" with description [; if(self hasnt visited) "You quickly find room 213. Your heart sinks as you enter the room and see Cousin Willy lying in bed, wrapped in bandages."; print "The hospital room smells terrible. There are two beds, a tv, and a nice view of the cheap motel next door. The exit is to the north."; ], n_to hospital_lobby, has light; Person -> cousin_willy "Cousin Willy" with toldabouthelp 0, name "cousin" "willy" "william" "bill" "will", description "Cousin Willy looks pretty bad.", before [; Kick, Punch: "Why would you want to do that to poor Cousin Willy?"; Shoot: if(gun notin player)"With what?"; "Why would you want to do that to poor Cousin Willy?"; ], life [; Ask: if(self hasnt awake)"He seems to be asleep. Maybe you should wake him first."; if(second == 'family') "~It was awful! They took out the whole gang, all in one night. Your father, mother, and brothers. Even my son! They threw me off the roof of my own apartment building! We're done, cousin! You and I are the only ones left. You shouldn't have come back here, The King will come after you too.~"; if(second == 'enemy' || second == 'killer' || second == 'king' || second == 'theking') "~It was Kang ~The King~ Woo who dunnit. He and his cronies, You aint gonna try to take them out are ya? If you are, you're making a big mistake, Cousin. But I know where you can get some help.~"; if(second == 'help' || second == 'where') { !Willy tells the player the password to talke to Dirty Phil. if(self.toldabouthelp) { "~I already told ya, go see Dirty Phil. He's north a couple blocks and to the east. The password's 'cheesesticks'~"; } self.toldabouthelp=1; score=score+2; "~I ain't gonna be any help like this, but I know someone who might be able to help ya out. Go find Dirty Phil. He's an old guy, lives in an rundown apartment not too far from here. I think it's called Sunny Days or some crap like that. Go north a couple blocks and turn left. Can't miss it. Oh, and he'll know I sent you if you give him the password, 'cheesesticks'~"; } wakeother: if(self hasnt awake) { give self awake; "You shake Willy a bit and he slowly comes to. ~Oh...hello there, Cousin, I was beginning to think you weren't coming...~"; } "He's already awake."; ], has proper animate; !---- End City Hospital ----! !---- Sunny Days Apartments ----! Object apartment_lobby "The Sunny Days Apartments Lobby" with description [; if(self hasnt visited) { "The inside looks - and smells - even worse than the outside. The place is a complete mess. A dog drinks from a puddle of something on the floor, an old bum sleeps on the couch, and you see a fat guy sitting behind the desk watching a small black and white TV."; } "The lobby looks and smells like a dump. The exit is to the east and it looks like a hall leading to rooms is to the west."; ], before[; go: switch(noun) { w_obj: "Which apartment would you like to visit?^^ 101^ 102^ 103^"; } ], e_to D1, has light; Person -> fatguy "Fat Hairy Guy" with name "fat" "hairy" "guy", description "This guy is fat, hairy, and looks a little creepy.", life[; ask: if(self hasnt alive)"He seems to be dead."; if(self hasnt consciousness)"He's not conscious."; switch(second) { 'dirty', 'phil': "The man replies, ~103,~ never taking his eyes off the football game."; default: "He glances at you, burps, then turns back to the TV."; } answer: if(self hasnt alive)"He seems to be dead."; if(self hasnt consciousness)"He's not conscious."; switch(noun) { 'hello', 'hi': "~Hey.~"; default: "The fat guy keeps on watching his football game."; } shoot: if(gun notin player)"With what?"; give self ~alive; "You shoot the fat hairy guy."; kick, punch: give self ~consciousness; "You knock out the fat hairy guy."; ], has animate; Object apartment_103_ext "Outside Room 103" with description "You stand before the door of room 103. The lobby is to the east.", e_to apartment_lobby, n_to door_103, in_to door_103, has light; Object -> door_103 "Door to 103" with name "door", description "An old warped wooden door.", before [; Knock: if(self has broken) { print "Umm...the door is laying on the floor."; } if(self hasnt open && dirty_phil.metplayer==0) { print "You hear an elderly man's voice, ~I don't want none! Get outta here!~ Probably Dirty Phil."; rtrue; } if(self hasnt open && dirty_phil.metplayer) { print "~Quit playing around and get in here!~"; } "The door is opened, stupid."; Kick: if(self hasnt open) { give self ~locked; give self open; give self broken; if(dirty_phil.metplayer==0) { "You kick the door down with ease. Inside the room, an elderly man screams and runs to the window. He attempts to open the window but seems to be having some trouble."; } print "Dirty Phil yells, ~What are you doing!!?!~"; rtrue; } "Seems like a waste of time."; Fix: if(self has broken) { give self ~broken; "It takes a little bit of work, but you manage to re-attach the door almost as good as it was before."; } Close: if(self has broken) { "You broke the door. Gonna have to fix it before you can close it."; } ], door_to [; if(location==apartment_103_ext)return apartment_103_int;return apartment_103_ext;], door_dir [; if(location==apartment_103_ext)return n_to;return s_to;], found_in apartment_103_ext apartment_103_int, has static door openable lockable locked; Object -> dirty_phil "Dirty Phil" with metplayer 0, name "phil" "man" "dirty", life [; answer: switch(noun) { 'cheesesticks': if(self.metplayer==0) { if(door_103 has open) { self.metplayer=1; "The crusty old man turns around and looks at you, ~Willy sent ya? Why, you...you're... The prodigal son has returned! Fix that door and we can get ta talkin'. I ain't sayin' nothin without a door between us and the outside!~"; } print "~Eh? Willy sent ya?~^"; give door_103 open; give door_103 ~locked; print "^The door opens and a crusty old man stares at you, ~Why, you...you're... The prodigal son has returned! Well, don't be standin' out there all day, get in here!~"; self.metplayer=1; rtrue; } "~Only Willy knows about my secret love for cheesesticks.~"; } ask: switch(second) { 'willy': if(self.metplayer==0)"~Don't know what yer talkin' about.~"; if(door_103 has broken)"~Fix my door first!~"; if(door_103 has open)"~Close the door!~"; "~I practically raised Willy. Poor guy.~"; 'kang', 'woo', 'king': if(self.metplayer==0)"~Don't know nothin' 'bout him, begone.~"; if(door_103 has broken)"~Fix my door first!~"; if(door_103 has open)"~Close the door!~"; "~He's the leader of the new gang takin' over the city. He owns 'The King's Club' Downtown. He got plenty o' loyal cronies and controls a ton o' hired thugs. And he aint no pushover 'imself. He's a martial-arts master. If any ordinary person were to go after this guy, I'm willing to wager they'd be dead fast. You on the other hand, may have a chance against him. I'll try to help you however I can, but don't be expectin' too much from me, since I'm just an old coot.~"; 'frankie', 'four-fingers', 'fingers', 'four': if(self.metplayer==0)"~Who's that. I don't know 'im.~"; if(door_103 has broken)"~Fix my door first!~"; if(door_103 has open)"~Close the door!~"; "~Frankie Four-Fingers? That's one of Kang's henchmen. Frankie may be of some use to you. He's mostly a pushover if you can get rid of any thugs around him. You can probably find him somewhere in the North Side. You might want to get a gun before you go after him.~"; 'help', 'gun': if(self.metplayer==0)"~Sorry, can't help ya.~"; if(door_103 has broken)"~Fix my door first!~"; if(door_103 has open)"~Close the door!~"; if(player has iou)"~Like I said, I'll help however I can.~"; print "~I'll try to help ya however I can. I bet ya can get yerself a gun at Guns 'R' Us. It's on the north side of town. Go two blocks north from here, then head east another two blocks. Hey, wait a sec, take this.~^^The old codger hands you a ticket.^^~That there is an IOU from Pete, the owner of Guns 'R' Us. Give 'im that and he'll help ya out.~"; move iou to player; score=score+5; rtrue; 'vest', 'kevlar': "Pete up at Guns 'R' Us might be able to help ya. Not sure though. Ask 'im about it."; 'flashlight': "Hmm...if ya had money I'd suppose you could buy one. I'd say keep an eye out around the city, surely you'll find something."; } ], found_in apartment_103_ext apartment_103_int, has animate proper concealed; Object -> -> iou "IOU" with name "iou" "stationary", description "The piece of stationary says, ~IOU, Dirty Phil. -Pete~"; Object apartment_103_int "Dirty Phil's Apartment" with description "Dirty Phil's apartment fits right in with the rest of the place. You can't even find the floor. The exit is to the south.", s_to door_103, in_to door_103, has light; ! ---- End Sunny Days Apartments ---- ! ! ---- Guns 'R' Us ---- ! ! This is where the player can get the Kevlar vest and the Handgun. Object guns_r_us "Guns 'R' Us" with description [; if(self hasnt visited) { "This place is pretty cool. From guns and knives to grenades and bazookas, it has everything. Too bad you don't have any money."; } "This store has guns, knives, grenades, bazookas, and more. The exit is to the south."; ], s_to B3, has light; Object -> pete "Pete" with gavevestquest 0, name "bald" "guy" "pete" "owner", description "A big bald guy. Doesn't look too friendly", initial "A big bald guy with a mustache stands behind the counter.", life [; Ask: switch(second) { 'guns', 'gun', 'knife', 'sword', 'knives', 'bazookas', 'bazooka', 'grenade', 'grenades': "~I got plenty of those.~"; 'buy': if(iou in self)"I can give you a bulletproof vest, if ya help me out."; "~Sure if you got money.~^^ Hmmm, you don't seem to have any money. This isn't good."; 'phil', 'dirty': if(iou in self)"He's a good guy. He saved my life once."; "~Dirty Phil? I know that old guy. Lives down in the Sunny Days Apartment Complex.~"; 'iou': if(iou in self)"Yeah, old Phil saved my life once, hehe."; "~What are you talkin' about?~"; 'vest': if(iou in self && self.gavevestquest==0) { self.gavevestquest=1; score=score+1; "You know, I can give you a vest if you do a small job for me. My hubcaps got stolen the other day. If you could find some new ones for me, maybe in the dump, I'll be ever grateful, and you'll get the vest for free."; } if(iou in self && vest in player && vest.damage<2) { vest.damage=2; "~Uh oh, looks like you went and got yourself into a little trouble. Here I'll fix that vest for ya.~ Pete walks into the back room and returns pretty fast with your vest all patched up.^ ~Now try to be a little more careful this time, kid.~"; } "~I got kevlar vests, you got money?~"; } Give: if(noun==iou && iou in player) { move iou to self; print "~What's this?~ He examines the piece of stationary for a minute, then says, ~You know Dirty Phil, eh? My name's Pete. I own this here shop. And have I got just the gun for you.~ He goes into the back room and returns a few minutes later with a box in his hand. He opens the box and pulls out a pretty decent sized handgun. This here is a Beretta 92G Elite II Brigadier with a few personal modifications of my own to increase range and accuracy.~^^ Pete hands you the gun."; score=score+5; move gun to player; rtrue; } if(noun==hubcaps && hubcaps in player && self.gavevestquest && iou in self) { move hubcaps to self; print "~Hey, thanks man! That was pretty fast.~ Pete goes into the back room and returns a few minutes later with a Kevlar Vest. ~Here ya go, hope ya don't need it, hehe. But if you do need it fixed, just bring it back here.~"; move vest to player; score=score+5; rtrue; } if(noun==hubcaps && hubcaps in player && self.gavevestquest==0 && iou in self) { move hubcaps to self; print "~Wow, its like you read my mind! My hubcaps just got stolen the other day! Just a sec!~ Pete goes into the back room and comes back a few minutes later with a Kevlar Vest. ~Here ya go, hope ya don't need it, hehe. But if you do need it fixed, just bring it back here.~"; move vest to player; rtrue; } if(noun==hubcaps && iou notin self) { "I don't even know you man, why are you giving these to me? No thanks."; } answer: if(noun=='fix') { if(vest in player) { vest.damage=2; "~You need me to fix your vest? All righty.~ He takes the vest into the back room. Surprisingly, you don't need to wait long before he comes back with the vest, all patched up.^ ~Here ya go. Now don't be messin' that up any more, ya hear?~"; } "~What vest?~"; } if((noun=='hello' || 'hi') && iou in pete)"Pete says, ~Hey, how's it goin?~"; if(noun=='hello' || 'hi')"~Yo.~"; Kick, Punch: "That's not a good idea. This guy can help you out."; Shoot: if(gun notin player)"With what?"; "Shoot good ol' Pete with the gun he gave you? Man, that's cold. I don't think I'm going to let you do that."; ], has animate proper; ! ---- End Guns 'R' Us ---- ! ! ---- The dump ---- ! Object citydump "The City Dump", with description[; if(self hasnt visited)"Oh boy, this place stinks. Hopefully you won't need to come here too often."; "There's trash all over the place, as would be expected in the city dump. The exit is to the north."; ], n_to E4, has light; Object -> oldcar "old car", with description "An old pink Chevy Malibu.", name "old" "car" "chevy" "malibu" "pink", has static; Object -> hubcaps "old hubcaps", with description "These hubcaps are actually in pretty good condition.", before [; take: if(player in chest)"You better get off the chest first."; if(crowbar notin player) { "They seem to be stuck on there real tight. Probably gonna need something to pry them off."; } if(hubcaps notin player) { move self to player; score=score+3; "You use the crowbar and pry them off with ease."; } ], name "hubcap" "hubcaps", has pluralname concealed; Object -> refrigerator "old refrigerator", with description "A very old appliance. Might be something inside.", name "frige" "refrigerator" "frigerator", before [; open: if(player in chest && chest.ismoved && crowbar notin player) { move crowbar to player; score=score+1; "You open the refrigerator and to your surprise find a crowbar inside!"; } "It's up on a big pile of junk, you'll need to stand on something to reach it."; ], has static container; Object -> -> crowbar "crowbar", with description "A little rusty, but still in pretty good condition.", name "crowbar"; Object -> chest "chest", with ismoved 0, description "A large clothing chest.", name "clothing" "chest", before [; push: if(player in chest) { "You better get off the chest first."; } if(self.ismoved) { self.ismoved=0; "You push the chest away from the pile of junk"; } self.ismoved=1; "You push the chest over to the pile of junk on which the old refrigerator sits."; climb: move player to chest; "You climb up onto the chest."; ], has supporter enterable; ! ---- The Warehouse ----! Object warehouse_ext "Outside the Warehouse", with voices 1, description [; if(self.voices) { "The warehouse door is closed, but you can hear some muffled voices on the other side. The street is to the south."; } "The warehouse is dark and quiet. The street is to the south."; ], before [; go: switch(noun) { in_obj: if(player in bulldozer) { print "You crash through the side of the warehouse!"; } } use: if(noun==crowbar && second==warehouse_window) { give warehouse_window open; give warehouse_window general; "You use the crowbar to pry the window opened."; } ], in_to [; if(player in bulldozer)return warehouse_int; return warehouse_door; ], n_to warehouse_door, s_to A1, has light; Object -> warehouse_window "window", with name "window", description "The window is pretty dirty, tough to see anything on the other side.", before [; open: if(self hasnt open && self hasnt general)"It seems to be stuck. If only you had something to pry it opened with."; give self open; enter: if(self has open) { if(location==warehouse_ext)playerto(warehouse_int); else playerto(warehouse_ext); rtrue; } "Better open it first."; close: if(self hasnt open)"The window is already closed."; give self ~open; ], found_in warehouse_ext warehouse_int, has static; Object -> warehouse_door "warehouse door", with name "door" "metal", description "A strong metal door.", before [; Knock: if(warehouse_ext.voices && self hasnt open) { warehouse_ext.voices=0; "You knock on the metal door and the sound seems to echo for miles. The voices inside stop."; } if(self hasnt open)"You knock on the door."; "The door's already opened."; Kick: if(warehouse_ext.voices && self hasnt open) { warehouse_ext.voices=0; "You kick the door good and hard but it has no effect. The door is too strong. The voices inside stop."; } if(self hasnt open)"You kick the door. It has no effect."; "What's the point? It's opened."; Punch: if(warehouse_ext.voices && self hasnt open) { warehouse_ext.voices=0; "You punch the door and wail loudly as you clutch your swolen hand. This door is way too strong to break that way. The voices inside stop."; } if(self hasnt open)"You punch the door. It has no effect other than hurting your hand."; "The door's opened already."; open: if(location==warehouse_int) { give self ~locked; print "You unlock the door.^"; } ;], door_to [; if(location==warehouse_ext)return warehouse_int;return warehouse_ext;], door_dir [; if(location==warehouse_ext)return n_to;return s_to;], found_in warehouse_ext warehouse_int, has static door openable lockable locked; Object -> bulldozer "bulldozer", with gas 4, name "bulldozer", description "Looks like a good strong vehicle.", before [; open: if(self hasnt open) { give self open; "You open the bulldozer door."; } "The door is already opened."; close: if(self has open) { give self ~open; "You close the bulldozer door."; } "The door is already closed."; Enter: if(self hasnt open)"You might want to open the door first."; SwitchOn: if(self has on)"It's already on."; if(player in self && self hasnt on) { give self on; warehouse_ext.voices=0; "You turn on the bulldozer. The engine rumbles loudly."; } "You've got to get in it first."; SwitchOff: if(self hasnt on)"It's not even turned on."; if(player in self && self has on) { give self ~on; "You turn off the bulldozer."; } "Better get in first."; Go: if(self has on && self.gas > 0) { self.gas--; "^Rumble, rumble!"; } if(self hasnt on && self.gas >0) { "Better turn the bulldozer on first!"; } print "Uh oh, it seems that the bulldozer is out of gas! "; rfalse; ], has static enterable switchable container; Object -> garbage "garbage cans", with name "garbage" "cans", description "Some garbage cans full of trash.", before [; take: "Why?"; ], has static proper; Object warehouse_int "Inside the Warehouse", with description [; if(self hasnt visited){ score=score+5; "The warehouse is pretty big. A skinny guy with a mustache and four fingers on his right hand and a bigger guy stand next to what looks like a bunch of stolen goods."; } "The warehouse is quite large. The door is to the south."; ], initial [; if(warehouse_ext.voices==0) { if(thug1 has consciousness && thug1 has alive) { startdaemon(thug1); thug1.active=1; } } if(frankie has consciousness && frankie has alive)startdaemon(frankie); ;], before [; go: if((noun==s_obj || noun==in_obj) && thug1.active) { print "As you turn to leave, the thug shoots you in the back!^"; deadflag=1; rtrue; } if((noun==s_obj || noun==in_obj) && (frankie has alive && frankie has consciousness)) { print "As you turn to leave, Frankie pulls out a knife and throws it in your back!^"; deadflag=1; rtrue; } ], s_to warehouse_door, in_to [; if(noun=='hole')return warehouse_ext; ], has light; Thug -> thug1 "thug", with name "thug", description [; if(self hasnt alive)"A dead thug."; if(self hasnt consciousness)"He's taking a little nap."; "He's big and dumb, but dangerous."; ]; Person -> frankie "Frankie Four-Fingers", with saidgotcompany 0, name "frankie" "four-fingers", description [; if(self has alive)"A skinny guy with a mustache and four fingers on his right hand."; "He looks pretty dead."; ], daemon [; if(thug1 has alive && thug1 has consciousness && thug1.active) { if(self.saidgotcompany==0) { self.saidgotcompany=1; "~Looks like we got company!~ the skinny guy yells, as the big guy pulls out a gun."; } switch(random(3)) { 1:"Frankie says, ~Yeah, get 'im!~"; 2:"Frankie yells, ~You's gonna be dead!~"; 3:"Frankie says, ~Hehehehehe!~"; } } if(thug1 hasnt consciousness || thug1 hasnt alive) { print "Frankie cries, ~Ah! Don't hurt me! I'll give ya whatever ya want!~"; warehouse_ext.voices=0; stopdaemon(frankie); } ], before [; ask: switch(second) { 'key': if(key in frankie) { print "Frankie says, ~The key to the club? Here, take it!~^"; move key to player; "^Frankie hands you a golden key."; } if(player has key) { "~You already got the key, I gave it to ya.~"; } 'kang', 'king', 'woo': "Frankie says, ~He's at the club, the King's Club. Everyone knows that!~"; 'club': if(key in frankie) { print "Frankie says, ~What? The King's Club? Here, here, I got a key!~"; move key to player; score=score+5; "^Frankie hands you a golden key."; } if(player has key) { "~You already got the key, I gave it to ya."; } 'family': "Frankie replies, ~Hey man, I didn't have nothin' ta do with dat. Honest!~"; 'willy': "Frankie says, ~Who? I...I don't know who you're talkin' about.~"; } Punch: if(player in bulldozer)"Better get out of the bulldozer first."; give self ~consciousness; stopdaemon(frankie); warehouse_ext.voices=0; if(thug1 has alive && thug1 has consciousness && thug1.active==0) { startdaemon(thug1); thug1.active=1; } "You punch Frankie and he falls to the ground, unconscious."; Kick: if(player in bulldozer)"Better get out of the bulldozer first."; stopdaemon(frankie); give self ~consciousness; warehouse_ext.voices=0; if(thug1 has alive && thug1 has consciousness && thug1.active==0) { startdaemon(thug1); thug1.active=1; } "You kick Frankie in the head and he falls to the ground, unconscious."; Srch: if(key in frankie) { move key to player; score=score+5; "You find a golden key in Frankie's pocket."; } Shoot: if(gun notin player)"With what?"; give self ~alive; stopdaemon(frankie); warehouse_ext.voices=0; if(thug1 has alive && thug1 has consciousness && thug1.active==0) { startdaemon(thug1); thug1.active=1; } "You shoot Frankie and he falls down dead."; ], has animate proper; Object -> -> key "golden key", with name "key" "golden", description "A golden key that says ~The King~ on it."; !------ End Warehouse -------! !------ The King's Club -----! Object kingsclub_ext_front "Outside The King's Club" with description "Looks like two bouncers are guarding the front entrance. To the north is an alleyway that appears to lead to the back. The street is to the south.", s_to C6, n_to kingsclub_ext_rear, in_to kingsclub_frontdoor, before[; go: if(noun==in_obj) { "As you walk in, the bouncers stop you. ~Hey, get in line, buddy.~"; } ], has light; Bouncer -> bouncer1 "Left Bouncer" with name "left" "bouncer", description "A big, tough, dumb-looking guy.", has animate; Bouncer -> bouncer2 "Right Bouncer" with name "right" "bouncer", description "Not all that tough, just dumb-looking.", has animate; Object -> kingsclub_frontdoor "entrance" with description "Two large glass double doors lead into the club.", has static door openable; Object kingsclub_ext_rear "Behind The King's Club" with description "The back alley behind the club is mostly vacant, with the exception of some stray cats.", in_to kingsclub_door, has light; Object -> kingsclub_door "back door" with name "door" "iron" "club", description "An iron door", door_dir[; if(location==kingsclub_ext_rear)return s_to;return n_to;], door_to[; if(location==kingsclub_ext_rear)return kingsclub_int_1;return kingsclub_ext_rear;], with_key key, found_in kingsclub_ext_rear kingsclub_int_1, has static door openable lockable locked; Object kingsclub_int_1 "Back Room" with description [; if(self hasnt visited)score=score+4; "Seems to be some kind of back room. To the south is a staircase, leading up. The exit is to the north."; ], before [; go: if(player hasnt light && noun ~= n_obj)"You can't go anywhere, because you can't see anything."; ], n_to kingsclub_door, s_to kingsclub_int_2; Object kingsclub_int_2 "Hall" with description "A large hallway leads south to a door. Various paintings line the walls. The back room is to the north.", before [; go: if(noun==s_obj && ((thug_a has alive && thug_a has consciousness) || (thug_b has alive && thug_b has consciousness))) { give halldoor open; if(thug_a has alive && thug_a has consciousness) { move thug_a to kingsclub_int_2; thug_a.active=1; startdaemon(thug_a); } if(thug_b has alive && thug_b has consciousness) { move thug_b to kingsclub_int_2; thug_b.active=1; startdaemon(thug_b); } "Before you can reach the door, it opens and two thugs enter the hall! They immediately pull their weapons!"; } if(noun==s_obj && thug_c has alive) { startdaemon(thug_c); thug_c.active=1; } if(noun==n_obj && (thug_a.active || thug_b.active)) { print "As you turn to leave, a thug shoots you in the back!^"; deadflag=1; rtrue; } ], s_to halldoor, n_to kingsclub_int_1, has light; Object -> rug "fine rug" with pulled 0, name "fine" "rug", description "An expensive red carpet.", before [; pull: if(self.pulled)"You already pulled it."; self.pulled=1; if(thug_a.active && thug_b.active) { thug_a.standing=0; thug_b.standing=0; "You pull the rug out from under the thugs and they both fall to the ground!"; } if(thug_a.active) { thug_a.standing=0; "You pull the rug out from under the thug and he falls to the ground!"; } if(thug_b.active) { thug_b.standing=0; "You pull the rug out from under the thug and he falls to the ground!"; } "You pull the rug. That was fun."; ]; Object -> halldoor "hall door" with name "hall" "door", description "A wooden door", before [; open: if((thug_a has alive && thug_a has consciousness) || (thug_b has alive && thug_b has consciousness)) { give halldoor open; if(thug_a has alive && thug_a has consciousness) { move thug_a to kingsclub_int_2; thug_a.active=1; startdaemon(thug_a); } if(thug_b has alive && thug_b has consciousness) { move thug_b to kingsclub_int_2; thug_b.active=1; startdaemon(thug_b); } "Before you can reach the door, it opens and two thugs enter the hall! They immediately pull their weapons!"; } ], door_dir[; if(location==kingsclub_int_2)return s_to; return n_to;], door_to[; if(location==kingsclub_int_2)return kingsclub_int_3;return kingsclub_int_2;], found_in kingsclub_int_2 kingsclub_int_3, has static door openable; Thug thug_a "Left Thug" with name "leftthug" "left" "thug", description "A tall, tough looking guy."; Thug thug_b "Right Thug" with name "rightthug" "right" "thug", description "A short, mean looking fellow."; Object kingsclub_int_3 "Loft" with description [; print "A large, open room, well decorated with a heavy eastern flavor. A winding staircase in the back of the room leads up. The exit is the the north."; if(thug_c has alive) " A thug, who was sitting on the couch, immediately stands up and goes for his gun."; ], go [; if(noun==u_obj && kang has alive) { move gun to rooftop; give gun broken; rtrue; } if(noun==n_obj && thug_c has alive && thug_c.active) { print "As you turn to leave, the thug shoots you in the back!^"; deadflag=1; rtrue; } ], n_to kingsclub_int_2, u_to rooftop, has light; Thug -> thug_c "thug" with name "thug", description "He's a large man wearing a pretty decent suit."; Object -> chandelier "chandelier" with name "chandelier", description [; if(self has broken)"Once an absolutely magnificent chandelier."; "An absolutely magnificent chandelier."; ], before [; shoot: if(gun in player && thug_c.active && self hasnt broken) { thug_c.active=0; stopdaemon(thug_c); give thug_c ~consciousness; give self broken; score=score+5; "You shoot the chandelier and it falls down on top of the thug in an explosion of expensive crystal!"; } if(gun in player && self hasnt broken) { give self broken; "You shoot the chandelier and it falls down in an explosion of expensive crystal!"; } if(gun in player)"You shoot the chandelier. Crystals fly off in all directions."; ]; Object rooftop "The Club Rooftop" with description [; if(self hasnt visited && kang has alive && gun in player) { move gun to rooftop; give gun broken; "You feel a strong breeze and hear the sounds of cars going by below. Night has fallen, and Kang Woo stands before you.^^ Kang says ~So, you finally found me. Here to avenge the death of your family, I suppose. Well, you shall soon find that your vendetta was a foolish waste of time! I am the greatest fighter in the world! You cannot beat me! Especially with that coward's gun!^^ Kang pulls out a gun and shoots your gun clean out of your hand. Then he throws his gun over the side, tears off his shirt and flexes his muscles. ^^~Now the real fight begins!~^"; } else if(self hasnt visited && kang has alive) "You feel a strong breeze and hear the sounds of cars going by below. Night has fallen, and Kang Woo stands before you.^^ Kang says ~So, you finally found me. Here to avenge the death of your family, I suppose. Well, you shall soon find that your vendetta was a foolish waste of time! I am the greatest fighter in the world! You cannot beat me! He tears off his shirt and flexes his muscles. ^^~Now the real fight begins!~^"; "The rooftop is cold and dark. A staircase leads down."; ], before [; go: "This is it, the final battle! There's no leaving the final battle!"; ], has light; Person -> kang "Kang ~The King~ Woo", with khp 6, name "kang" "king" "woo", description "A rather young asian man, dressed in a nice suit.", kCheckDamage [; if(self.khp < 1) { stopdaemon(kang); give kang ~consciousness; score=score+15; print "Kang falls... you have beaten him!^"; PlayerWins(); } ], daemon [att; if(location ~= rooftop)return; if(self has knockdown) { switch(random(2)) { 1: give self ~knockdown; "Kang gets up!^"; 2:"Kang tries to get up, but stumbles and falls back down!^"; } } if(player has knockdown) { switch(random(3)) { 1,2: print "Kang kicks you!^"; hp--; CheckDamage(); rtrue; 3: "Kang tries to kick you, but you roll out of the way.^"; } } switch(random(2)) { 1: att=random(6); if(att<3) { print "Kang throws a kick and hits you!^"; hp--; CheckDamage(); rtrue; } else if(att<4) { print "Kang throws a kick and it connects, knocking you to the ground!^"; give player knockdown; hp--; CheckDamage(); rtrue; } else if(att<6)print "Kang throws a kick at you, but you nimbly dodge out of the way!^"; else if(att<7)print "Kang throws a kick at you, but misses!^"; 2: att=random(6); if(att<2) { print "Kang punches you in the face!^"; hp=hp-2; CheckDamage(); } else if(att<4) { print "Kang punches you in the stomach!^"; hp--; CheckDamage(); } else if(att<6)print "Kang throws a punch at you, but you block it!^"; else if(att<7)print "Kang throws a punch at you, but misses!^"; } switch(random(7)) { 1:"~Die!~^"; 2:"~Fear my awesome technique!~^"; 3:"~You will soon be finished!~^"; 4:"~Fool!~^"; 5:"~I shall kill you!~^"; 6:"~You are weak!~^"; 7:"~You suck!~^"; } ], before [patt; kick: if(player has knockdown)"You've got to get up first!"; if(self has knockdown) { switch(random(3)) { 1,2: print "You kick Kang while he's down!^"; self.khp--; self.kCheckDamage(); rtrue; 3:"You try to kick Kang but he rolls out of the way!^"; } } patt=random(6); if(patt<2) { print "You throw a kick and hit Kang!^"; self.khp--; self.kCheckDamage(); rtrue; } if(patt<4) { print "You throw a kick and it connects, knocking Kang to the ground!^"; give self knockdown; self.khp--; self.kCheckDamage(); rtrue; } if(patt<6)"You throw a kick, but Kang swiftly dodges out of the way!^"; if(patt<7)"You throw a kick at Kang, but miss!^"; punch: if(player has knockdown)"You've got to get up first!"; if(self has knockdown) { switch(random(3)) { 1,2: print "You punch Kang in the face while he's down!^"; self.khp=self.khp-2; self.kCheckDamage(); rtrue; 3:"You try to punch Kang but he rolls out of the way!^"; } } patt=random(6); if(patt<2) { print "You punch Kang in the face!^"; self.khp=self.khp-2; self.kCheckDamage(); rtrue; } if(patt<4) { print "You punch Kang in the stomach!^"; self.khp--; self.kCheckDamage(); rtrue; } if(patt<6)"You throw a punch, but Kang blocks it!^"; if(patt<7)"You throw a punch, but miss!^"; shoot: if(gun in player && gun has broken)"It's broken, it won't work!"; if(gun notin player)"You don't have a gun!"; ], has animate proper; !----- End King's Club ----- ! ! -- Row F --! SouthSide F1 "The Street" with description "The street makes a sharp turn at the end of the block, and runs north and east. About a block east you can see the City Hospital.", e_to F2, n_to E1; ! F2 See initial location SouthSide F3 "The Street" with description "The street curves north and west. About a block west you can see the City Hospital and to the east is the city river.", w_to F2, n_to E3; !-- Row E --! SouthSide E1 "The Street" with description "The street goes north, south and east. About a block north is the Sunny Days Apartment Complex.", s_to F1, e_to E2, n_to D1; SouthSide E2 "The Street" with description "There are various shops and buildings on all sides, none being of any particular interest. The street goes north, south, east, and west. About a block to the south you can see the City Hospital.", s_to F2, w_to E1, e_to E3, n_to D2; SouthSide E3 "The Street" with description "The street runs north, south, east and west. To the east is the City Dump. If you go a block east you'll be downtown.", w_to E2, s_to F3, n_to D3, e_to E4; !-- Row D --! SouthSide D1 "The Street" with description [; if(self hasnt visited) "The Sunny Days Apartment's - directly to the west - have definitely seen sunnier days. Various animals scavenge through the piles of garbage in the alleyway, pieces of the building fall off right before your eyes, and some really strange sounds emanate from at least a couple windows."; "The street goes north, south, and east. Directly to the west is the Sunny Days Apartment Complex."; ], s_to E1, e_to D2, n_to C1, w_to apartment_lobby, in_to apartment_lobby; SouthSide D2 "The Street" with Description "The street runs north, south, east and west. About a block west is the Sunny Days Apartment Complex.", s_to E2, w_to D1, e_to D3, n_to C2; SouthSide D3 "The City Park" with description "The park is quite nice this time of year. Children are playing, joggers are jogging, old folks are strolling, and bums are sleeping. To the north, south, east and west is the street. If you go a block east you'll be downtown.", before [; srch: if(flashlight notin player) { move flashlight to player; score++; "You search about the place and surprisingly you find a flashlight under a bush. Wonder who left that there?"; } ], s_to E3, w_to D2, n_to C3, e_to D4; !---- The North Side ----! !-- Row C --! NorthSide C1 "The Street" with description "The street runs north, south, and east. About a block south you can see the Sunny Days Apartment Complex.", s_to D1, n_to B1, e_to C2; NorthSide C2 "The Street" with description "The street runs north, south, east and west. Just south of here is the city's South Side.", s_to D2, n_to B2, e_to C3, w_to C1; NorthSide C3 "The Street" with description "The street runs north, south, east and west. Just south of here is the city's South Side, and if you go east you'll be downtown.", s_to D3, n_to B3, w_to C2, e_to C4; NorthSide B1 "The Street" with description "The street runs north, south and east. About a block north you can see some warehouses.", s_to C1, n_to A1, e_to B2; NorthSide B2 "The Street" with description "The street runs north, south, east and west.", s_to C2, e_to B3, w_to B1, n_to A2; NorthSide B3 "The Street" with description [; if(self hasnt visited) { "There are various shops on this street, but one of paricular interest jumps out at you, ~Guns 'R' Us~."; } "You notice the shop called ~Guns 'R' Us.~ The street runs north, south, east and west. If you go east from here you'll be downtown."; ], s_to C3, w_to B2, n_to A3, e_to B4, in_to guns_r_us; NorthSide A1 "The Street" with description [; if(self hasnt visited) { "There are a bunch of warehouses here. Most of them look abandoned, save for one from which you can see light emanating."; } "The street curves south and east. Directly to the north is the lighted warehouse."; ], s_to B1, e_to A2, n_to warehouse_ext; NorthSide A2 "The Street" with description "The street runs east, west and south. About a block to the west you can see some warehouses.", s_to B2, w_to A1, e_to A3; NorthSide A3 "The Street" with description "The street curves west and south. To the north and east is the city river.", s_to B3, w_to A2; ! ---- End North Side ----! ! ---- Downtown ---- ! Downtown B4 "The Street" with description "The street runs east, west and south.", w_to B3, e_to B5, s_to C4; Downtown B5 "The Street" with description "The street curves west and south. To the north and east is the city river.", w_to B4, s_to C5; Downtown C4 "The Street" with description "The street runs north, south, east and west.", w_to C3, e_to C5, n_to B4, s_to D4; Downtown C5 "The Street" with description "The street runs north, south, east and west. About a block east is the infamous ~King's Club.~", w_to C4, e_to C6, n_to B5, s_to D5; Downtown C6 "The Street" with description "You can see ~The King's Club~ here, directly to the north. It appears to be a pretty happening place, the line wraps around the block. The street runs west and south. To the north and east is the city river.", w_to C5, s_to D6, n_to kingsclub_ext_front, in_to kingsclub_ext_front; Downtown D4 "The Street" with description "The street runs north, south, east and west.", w_to D3, e_to D5, s_to E4, n_to C4; Downtown D5 "The Street" with description "The street runs north, south, east and west.", w_to D4, e_to D6, s_to E5, n_to C5; Downtown D6 "The Street" with description "The street curves north and west. About a block to the north is the infamous ~King's Club.~ To the east and south is the city river.", w_to D5, n_to C6; Downtown E4 "The Street" with description "You can see (and smell) the city dump here, directly to the south. The street runs east, west and north.", w_to E3, n_to D4, e_to E5, in_to citydump, s_to citydump; Downtown E5 "The Street" with description "The street curves north and west. To the south and east is the city river.", w_to E4, n_to D5; ! ---- End Downtown ---- ! ! --------------------------------------- ! Death ! --------------------------------------- [ AfterLife; "You seem to be dead. Well, I guess you didn't get to have your vengeance afterall^"; ]; ! --------------------------------------- ! Win ! --------------------------------------- [PlayerWins; print "You have avenged the death of your family and restored your honor.^"; deadflag=2; ]; ! --------------------------------------- ! New Verbs ! --------------------------------------- [KickSub; "You do a lightning fast snap kick."; ]; [PunchSub; "You throw a quick punch."; ]; [CheatOnSub; cheat=1; "Cheat mode is now enabled"; ]; [CheatOffSub; cheat=0; "Cheat mode is now disabled"; ]; [JumplocSub; if(cheat) { print "^Suddenly you're whisked away to...^"; switch(verb_word) { 'gowilly': playerto(willys_room); 'gosunny': playerto(apartment_lobby); 'goguns': playerto(guns_r_us); 'gowarehouse': playerto(warehouse_ext); 'goclub': playerto(kingsclub_ext_rear); 'goloft': playerto(kingsclub_int_3); 'goroof': playerto(rooftop); 'gohall': playerto(kingsclub_int_2); } } ]; [GoRoomSub; switch(verb_word) { '103': if(location == apartment_lobby) { print "You quickly find room 103.^"; playerto(apartment_103_ext); rtrue; } "Don't know what you're talking about...might be useful later on though ;)"; '101','102': if(location == apartment_lobby) { "You don't want to go to that room. Surely it's empty. :)"; } "Don't know what you're talking about."; } ]; [KnockSub; if(noun hasnt door) { print "I don't see a door."; } ]; [FixSub; if(noun hasnt broken) { print "If it ain't broke don't fix it."; } ]; [ShootSub; if(gun in player) { print "That wouldn't be a very good idea."; rtrue; } "With what?"; ]; [SitSub; "Sit where?"; ]; [SrchSub; "You search around the area but find nothing of interest."; ]; [UseSub; "You probably don't want to use that here."; ]; [StandSub; if(player has knockdown) { switch(random(2)) { 1: give player ~knockdown; "You stand up."; 2: "You try to stand up, but stumble over again!"; } } "You're already standing"; ]; [AttckSub; "Please specify whether you would like to kick or punch.^"; ]; [CheckVest; if(vest in player) { if(vest.damage==2) { vest.damage--; "Good thing you're wearing a vest, you would have been dead!"; } if(vest.damage==1) { vest.damage--; "Good thing you're wearing a vest! Unfortunately its taken about as much as it can. Better be careful!"; } } deadflag=1; ]; [CheckDamage; if(hp<1) { deadflag=1; "Uh oh, You've taken one too many hits!"; } if(hp<2)"You're about to go down..."; if(hp<3)"You can't take much more of this..."; if(hp<4)"You're still going, but not for too much longer."; if(hp<5)"You've taken a beating, but you've still got plenty of fight left."; if(hp<6)"Still going strong."; ]; ! ---------------------------------------------------------------------------- ! Grammar ! ! The grammar section includes the file "Grammar" and will later include ! extensions to the standard grammar library. ! ! ---------------------------------------------------------------------------- Include "Grammar"; Verb "kick" * noun -> Kick; Extend only "punch" replace * noun -> Punch; Verb meta "cheaton" * -> CheatOn; Verb meta "cheatoff" * -> CheatOff; Verb meta "gowilly" "gosunny" "goguns" "gowarehouse" "goclub" "gohall" "goroof" "goloft" * -> Jumploc; Verb "103" "101" "102" * -> GoRoom; Verb "knock" * noun -> Knock * "on" noun -> Knock; Extend only "fix" replace * noun -> Fix; Verb "shoot" * noun -> Shoot; Extend only "sit" replace * "on" noun -> Sit * "in" noun -> Sit; Extend only "stand" replace * -> Stand; Extend "attack" replace * -> Attck; Extend only "search" replace * -> Srch * noun -> Srch; Verb "use" "employ" "utilize" * noun "on" noun -> Use;