!Rat Race by Lydia Mauti ! !9/21 started initial room !9/27 trying to figure out doors !9/29 still trying to figure out doors and light/darkness !10/3 finally figured out the stupid doors and locking them and whatnot. yay! first room completed Constant Story "CAPTIVE"; Constant Headline "^An Interactive Fiction Game^by Lydia Mauti^"; Constant DEBUG; Include "parser"; Include "verblib"; Include "grammar"; Global light_on=0; Global ouch=0; Global floor=2; Global keynum= 0; Global code = 0; Global readpapers = 0; Global sleeprat = 0; [ Initialise; location = Empty_Room; print "^^^^^The sun burns the African sands while the sparse scenery before you ripples from the heat. An angry pink elephant rages past, hunting the green spotted llama 50 yards away. All of a sudden a mighty raptor swoops in to rip off your...^^Your screams are so loud you wake yourself up, but for some reason your eyes won't open. After blinking several times you realize your eyes really are open but you have no idea where you are...^^"; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! The starting room !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Empty_Room "Empty room" has light with name "empty" "room", description [; if (light_on==1) "This room is very plain and very empty. It's about the size of a small office, but its purpose evades you. The windowless walls are covered in steel grey paint, and the concrete floors are cold to the touch. A single chair sits in the middle of the room and a metal door is on the east wall."; else "Pitch black darkness envelops the entire room. You can't see a thing."; ], !!!!Funny stuff for trying to go through closed/locked doors!!!! e_to [; if (metal_door has locked && metal_door hasnt open) { if (ouch ==0 && light_on==1) {ouch = 1; print "*BAM!* You walk face first into the locked door. Hopefully no one will be around to notice your gradually swelling nose. You think unlocking the door and opening it is a better idea for next time.^"; } else if (light_on==0) print "You can't see a thing, much less go anywhere. Try turning on a light.^"; else print "*BAM!*^Shouldn't you have learned your lesson by now?! Unlock that door first, before trying to walk through it!^"; } else if (metal_door hasnt locked && metal_door hasnt open){ if (ouch ==0 && light_on==1) {ouch = 1; "*BAM!* You walk face first into the door. Hopefully no one will be around to notice your gradually swelling nose. You think opening the door first is a better idea for next time.^"; } else if (light_on==0) print "You can't see a thing, much less go anywhere. Try turning on a light.^"; else print "*BAM!*^Shouldn't you have learned your lesson by now?! Open that door first, before trying to walk through it!^"; } else if (light_on ==1 && metal_door has open) return Living_Room; ]; Object light_bulb "light bulb" Empty_Room has static concealed with name "light" "bulb" "string" "cord", description "A simple light bulb hanging from a wire. A cord hangs down next to it. I bet pulling it would shed some light on things!", before[; Pull,SwitchOn: if (light_on==0) light_on=1; "You find a cord hanging down from the ceiling and decide to pull on it. Light fills the room and your eyes burn from its sudden exposure. Rubbing your eyes you slowly adjust to the brightness." ; SwitchOff: light_on=0; "You pull the cord and turn off the light. Now you can't see anything. Again."; ]; Object small_key "small key" with name "small" "silver" "key", description "It's a small silver key."; Object wooden_chair "wooden chair" Empty_Room has concealed static supporter enterable ! general if you've found the small key under it with name "chair" "wooden", initial "A single chair stands in the middle of the room.", description [; if (self hasnt general && light_on==1) "It's a sturdy looking chair. Something shiny is lying underneath."; else if (light_on==0) "You can't see a thing, much less look at something that might not be there. Try turning on a light."; else "It's a sturdy looking chair."; ], before [; Take: "Though it's sturdy, the chair looks quite happy sitting where it is."; Push,Pull: "The chair is quite happy where it's at."; LookUnder: if (self hasnt general && light_on==1) { give self general; move small_key to player; "You bend over to look under the chair and discover a small shiny key. You pick it up and put it in your pocket."; } else "You can't see a thing, much less look under something that might not be there. Try turning on a light."; ]; Object metal_door "metal door" has concealed static door openable lockable locked with name "metal" "door", description "The metal of this door is very cold, and very uninviting.", when_open "The door is open.", when_closed "The door is closed.", door_to [; if (self in Empty_Room) return Living_Room; return Empty_Room;], door_dir[; if (self in Living_Room) return w_to; return e_to;], with_key small_key, found_in Empty_Room Living_Room; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! the living room !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Living_Room "Living Room" has light scenery with name "living" "room", description "Cream colored carpet adorns the floors and serene paintings of country landscapes line the walls. A long comfy couch sits before a cozy fire, which is safely burning in an ornate fireplace. To the north you can see a study, to the south you see glowing light, and back west is that awful room.", w_to Empty_Room, n_to Study_Room, s_to Tv_Room; Object comfy_couch "comfy couch" Living_Room has concealed static enterable with name "big" "comfy" "couch" "sofa", description "It is a big comfy couch!"; Object fireplace "ornate fireplace" Living_Room has concealed static light with name "ornate" "fire" "place" "fireplace", description "Fierce lions are carved into the white marble that surround the hearth. A large fire burns slowly, filling the air with scents of oak as swirling smoke rises up through the chimney. Some old candlesticks and ceramic vases sit upon the mantel."; Object vases "vases" Living_Room has concealed static with name "vase" "vases", description "They're just some ceramic white vases. You notice nothing special about them."; Object candlesticks "candlesticks" Living_Room has concealed static with name "candlestick" "candlesticks", description "They're white, like the rest of the room."; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! the study !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Study_Room "Study" has light with name "study" "den" "room", description "Ah, this is a study fit for a king. A large leather executive chair sits before a stately wooden desk which faces a window. Green striped wallpaper line the walls but are mostly covered by bookcases. You can go west to a hallway and south to the living room.", s_to Living_Room, w_to Hallway; Object study_desk "desk" Study_Room has concealed static with name "desk", description "The desk is highly polished and has several drawers."; Object study_desk_drawers "drawers" Study_Room has concealed openable container with name "drawer" "drawers", description "They are drawers of a desk.", before[; move brass_key to study_desk_drawers; ]; Object leather_chair "leather chair" Study_Room has concealed enterable with name "leather" "chair" "executive", description "Soft brown leather covers this chair. It looks very comfortable."; Object window "window" Study_Room has concealed static with name "window", description "You look through the window, but the view is a little odd. With closer inspection you notice the scenery is painted on.", before [; Open: "You try to open the window, but it is sealed shut."; ]; Object brass_key "brass key" with name "brass" "key", description "It is a brass key."; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! tv room !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Tv_Room "TV Room" has light with name "TV room" "television room", description "An old tv and a simple couch fill up this room. A brass floor lamp provides some light. You see the living room to the north and a bathroom to the west.", n_to Living_Room, w_to Bathroom; Object television "television" Tv_Room has static concealed with name "TV" "television" "tube", description "This television dates to the late 50s. Two antennae stick out from the top, picking up old re-runs of I Love Lucy. The picture is quite fuzzy and has some static."; Object tv_antenna "antenna" Tv_Room has concealed with name "antennae" "antenna" "tv antennae", description "It is a long antenna from a TV. It's quite sturdy.", before[; Push,Pull: if (self hasnt general){ give self general; move tv_antenna to player; "You move the antennae, trying to fix the picture, but all of a sudden one snaps off in your hand. You decide to keep it.";} ]; Object simple_couch "couch" Tv_Room has concealed enterable static with name "simple" "couch", description "It's a nice comfy couch."; Object floor_lamp "floor lamp" Tv_Room has concealed static light with name "brass" "floor" "lamp", description "It's just a plain floor lamp."; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Hallway !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Hallway "Hallway" has light with name "hallway", description "You find yourself standing in a hallway, a simple connector between two rooms. A wooden door lies along the north wall, you can see the study to the east and a bedroom to the west.", e_to Study_Room, w_to Bedroom, n_to [; if (closet_door has locked && closet_door hasnt open) { if (ouch ==0) {ouch = 1; print "*BAM!* You walk face first into the locked door. Hopefully no one will be around to notice your gradually swelling nose. You think unlocking the door and opening it is a better idea for next time.^"; } else print "*BAM!*^Shouldn't you have learned your lesson by now?! Unlock that door first, before trying to walk through it!^"; } else if (closet_door hasnt locked && closet_door hasnt open){ if (ouch ==0) {ouch = 1; "*BAM!* You walk face first into the door. Hopefully no one will be around to notice your gradually swelling nose. You think opening the door first is a better idea for next time.^"; } else print "*BAM!*^Shouldn't you have learned your lesson by now?! Open that door first, before trying to walk through it!^"; } else if (closet_door has open) return Janitor_Closet; ]; Object closet_door "closet door" has concealed static door openable lockable locked with name "closet" "door", description "A simple wooden door.", when_open "The door is open.", when_closed "The door is closed.", door_to [; if (self in Hallway) return Janitor_Closet; return Hallway;], door_dir[; if (self in Hallway) return n_to; return s_to;], with_key brass_key, found_in Hallway Janitor_Closet; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Janitor Closet !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Janitor_Closet "Janitor's Closet" has light with name "closet" "janitor^s", description "You find yourself in some sort of janitor's closet. A mop and bucket are in one corner of the room. You also see a large metal shelving unit with various tools and cleaning equipment on it.", s_to Hallway; Object metal_shelves "metal shelves" Janitor_Closet has static concealed with name "metal" "shelves" "shelf" "unit" "shelving", description "These shelves have tons of stuff on them. You see a screwdriver, a knife, Windex, rags, a hammer, clothespins, liquid soap, a wrench, rubber gloves, and some other random items."; Object knife "knife" Janitor_Closet has concealed with name "knife", description "It's a knife. What did you expect?"; Object mopbucket "mop and bucket" Janitor_Closet has concealed static with name "mop" "and" "bucket", description "It looks like one of those commercial ones you see in hotels and restaurants and such."; Object screwdriver "screwdriver" Janitor_Closet has concealed with name "screwdriver", description "It's a screwdriver. What did you expect?"; Object windex "Windex" Janitor_Closet has concealed pluralname with name "windex", description "Windex. For all your cleaning needs."; Object rags "rags" Janitor_Closet has concealed pluralname with name "rags", description "Just some rags"; Object hammer "hammer" Janitor_Closet has concealed with name "hammer", description "It's a hammer. What did you expect?"; Object clothespins "clothespins" Janitor_Closet has concealed pluralname with name "clothespins", description "Just some clothespins"; Object liquidsoap "liquid soap" Janitor_Closet has concealed pluralname with name "liquid" "soap", description "Lemon scented. Smells so good!"; Object wrench "wrench" Janitor_Closet has concealed with name "wrench", description "It's a wrench. What did you expect?"; Object rubbergloves "rubber gloves" Janitor_Closet has concealed pluralname clothing with name "rubber" "gloves", description "Yellow rubber gloves. They look like fun to wear."; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Bedroom !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Bedroom "Bedroom" has light with name "bedroom", description [; if (cheese in player) "What a charming little bedroom. There's a bed with a blue patterned quilt on it and a dresser with a mirror above it."; else "What a charming little bedroom. There's a bed with a blue patterned quilt on it and a dresser with a mirror above it. A foul stench fills the room."; ], e_to Hallway, s_to Lobby_Upstairs; Object bed "bed" Bedroom has static concealed enterable with name "bed", description "This bed looks super comfy."; Object mirror "mirror" Bedroom has concealed static with name "mirror", description "You see yourself. You don't look too well."; Object dresser "dresser" Bedroom has static concealed openable with name "dresser", description "As you get closer to the dresser the stench gets worse. Inspecting further, you notice a vent behind the dresser."; Object vent "vent" Bedroom has static concealed openable container with name "vent", description "Your standard vent. You can see something behind it.", before [; move note1 to vent; move cheese to vent; ]; Object cheese "moldy cheese" has edible pluralname container openable with name "cheese" "moldy" "smelly", description [; if (crushed_pills in cheese) "This is a tasty treat for an unsuspecting recipient."; else "This cheese is green, and almost glowing. Its stench makes you gag."; ], before [; Eat: if (random(100) <= 30) { deadflag = true; "You decide to taste the cheese. Before you know it you collapse to the ground and the world slowly fades to black."; } "Ugh, I don't think so!"; ]; Object note1 "folded note" with name "folded" "note", description [; "You unfold the note and find this written on it:^", " _____________ ^ | |^ | Behold |^ | the power |^ | of cheese |^ |_____________|^"; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Upstairs Lobby !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Lobby_Upstairs "Lobby" has light with name "lobby", description "This place is getting weirder every minute. There is an elevator here, but only one button to push. It appears you may only go down.", n_to Bedroom, s_to Kitchen, w_to [; if (elevator_door hasnt open) { if (ouch ==0) {ouch = 1; print "*BAM!* You walk face first into the door. Hopefully no one will be around to notice your gradually swelling nose. You think pushing the button and waiting for the door to open is a better idea for next time.^"; } else print "*BAM!*^Shouldn't you have learned your lesson by now?! Wait for the door to open, before trying to walk through it!^"; } else if (elevator_door has open){ ! move small_key to Lobby_Upstairs; !move brass_key to Lobby_Upstairs; !print "Some weird force grabs your keys from your pocket and drops !them on the lobby floor. It seems like you can't bring them with you !on the elevator.^"; return Elevator; } ]; Object elevator_door "elevator door" has concealed static door with name "elevator" "door", description "It's an elevator door. It's very shiny and you can see your reflection in it.", when_open "The door is open.", when_closed "The door is closed.", door_to [; if (player in Elevator && floor == 2) return Lobby_Upstairs; else if (player in Elevator && floor == 1) return Lobby_Downstairs; return Empty_Room; ], door_dir [; if (self in Lobby_Upstairs || self in Lobby_Downstairs) return w_to; return e_to;], with_key small_key, found_in Lobby_Upstairs Lobby_Downstairs Elevator; Object button "button" Lobby_Upstairs has concealed static with name "button", description "It's an elevator button. There is a down arrow on it.", before [; Push: give elevator_door open; "You push the button. A few moments later the elevator doors open."; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Elevator !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Elevator "Elevator" has light with name "elevator", description "Faint sounds of typical elevator music are playing through speakers you can't see. You don't see the typical elevator buttons here, but rather a keypad with 11 keys on it.", e_to [; if (elevator_door hasnt open) { if (ouch ==0) {ouch = 1; print "*BAM!* You walk face first into the door. Hopefully no one will be around to notice your gradually swelling nose. You think pushing the button and waiting for the door to open is a better idea for next time.^"; } else print "*BAM!*^Shouldn't you have learned your lesson by now?! Wait for the door to open, before trying to walk through it!^"; } else if (elevator_door has open && floor == 2) return Lobby_Upstairs; else if (elevator_door has open && floor == 1) return Lobby_Downstairs; ]; Object keypad "keypad" Elevator has concealed static with name "keypad", description "There are 11 keys on this keypad, labeled with numbers from 0 to 9 and one labeled 'CLEAR'. A LED display is lit up in green"; !!!! I tried to make this code shorter, !!!! !!!! (like with a switch, class, etc) !!!! !!!! but I couldn't figure out how! !!!! Object keyclear "key clear" Elevator has concealed with name "key" "clear", description "This key has CLEAR printed on it.", before[; Push: code = 0; print "The display is reset to 0. "; Take: "It is fixed in place."; ]; Object key0 "key 0" Elevator has concealed with name "key" "0", description "This key has the number 0 printed on it.", before[; Push: keynum = 0; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33) {print "The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; Object key1 "key 1" Elevator has concealed with name "key" "one" "1", description "This key has the number 1 printed on it.", before[; Push: keynum = 1; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33) {print "The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; Object key2 "key 2" Elevator has concealed with name "key" "two" "2", description "This key has the number 2 printed on it.", before[; Push: keynum = 2; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33) {print "^^The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; Object key3 "key 3" Elevator has concealed with name "key" "three" "3", description "This key has the number 1 printed on it.", before[; Push: keynum = 3; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33) {print "^^The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; Object key4 "key 4" Elevator has concealed with name "key" "four" "4", description "This key has the number 4 printed on it.", before[; Push: keynum = 4; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33) {print "^^The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; Object key5 "key 5" Elevator has concealed with name "key" "five" "5", description "This key has the number 5 printed on it.", before[; Push: keynum = 5; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33) {print "^^The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; Object key6 "key 6" Elevator has concealed with name "key" "six" "6", description "This key has the number 6 printed on it.", before[; Push: keynum = 6; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33) {print "^^The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; Object key7 "key 7" Elevator has concealed with name "key" "seven" "7", description "This key has the number 7 printed on it.", before[; Push: keynum = 1; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33) {print "^^The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; Object key8 "key 8" Elevator has concealed with name "key" "eight" "8", description "This key has the number 8 printed on it.", before[; Push: keynum = 1; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33){ print "^^The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; Object key9 "key 9" Elevator has concealed with name "key" "nine" "9", description "This key has the number 9 printed on it.", before[; Push: keynum = 9; code = code + keynum; print "The number ", code, " is shown on the display. "; if (code == 33) {print "^^The elevator doors close and you feel it moving.^ Moments later the elevator stops and the doors open up.^"; if (floor == 2) floor = 1; else if (floor == 1) floor = 2;} rtrue; Take: "It is fixed in place."; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Kitchen !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Kitchen "Kitchen" has light with name "kitchen", description "This appears to be your typical kitchen, complete with stove and fridge. Cabinets line the walls and a metal sink is built into the granite counter. You see a lobby to the north and the bathoom to the east.", e_to Bathroom, n_to Lobby_Upstairs; Object cabinet "cabinet" Kitchen has concealed static openable container with name "cabinet" "cabinets", description "Standard wood cabinets with metal fixtures.", before [; move sleeping_pills to cabinet; ]; Object sleeping_pills "sleeping pills" has pluralname edible with name "sleeping" "pills" "medicine", description "These are really strong!", before [; Eat: deadflag = 3; "You pop a pill and instantly fall asleep."; Attack: if (hammer in player) {print "You crush the pills into a fine powder.^"; move sleeping_pills to trash;; move crushed_pills to player; rtrue; } else "Perhaps you should use something heavier."; ]; !!!! for getting rid of the pills !!!! Object trash has concealed; Object crushed_pills "crushed pills" has concealed pluralname with name "crushed" "pills", description "A fine powdery mixture."; Object sink "sink" Kitchen has concealed static container supporter open with name "sink" "metal", description "It's a metal sink.", before[; move note2 to sink; ]; Object counter "counter" Kitchen has concealed static supporter with name "granite" "counter", description "That's some nice granite."; Object stove "stove" Kitchen has concealed static container supporter with name "stove", description "It's a gas stove."; Object fridge "fridge" Kitchen has concealed static container with name "refridgerator" "fridge", description "It's kinda plain since there's no magnets on it.", before [; move cheeses to fridge; Open: "There's a ton of cheese in here!"; ]; Object cheeses "lots of cheese" has concealed with name "cheese" "lots" "of", description "That's a lot of cheese.", before [; Take: "That's a bit too much cheese for you to carry."; ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Bathroom !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Bathroom "Bathroom" has light with name "bathroom", description "You find exactly what you'd expect to find in a bathroom: a sink and a toilet. The floors are amazingly spotless and it smells like cleaning solution. You see a kitchen to the west and the tv room to the east.", e_to Tv_Room, w_to Kitchen; Object bathroom_sink "sink" Bathroom has static concealed container open with name "sink" "bathroom", description "Gross! The sink is full of murky brown water. It smells like it's been sitting for a while. You can vaguely see a wad of paper clogging the drain.", before[; move note2 to bathroom_sink; ]; Object note2 "wet note" Bathroom has concealed with name "wad" "of" "paper" "note", description [; if (note2 in player){ print "It reads:^", " _____________ ^ | |^ | |^ | 3 3 |^ | |^ |_____________|^"; } else "It looks wet. And crumpled up."; ], after[; Take: if (tv_antenna in player && rubbergloves has worn){ print "You manuever the antenna to snag the paper and slowly lift it out of the sink.^"; move note2 to player; rtrue; } else if (tv_antenna in player && rubbergloves hasnt worn){ print "You're not touching that thing with your bare hands!^"; rtrue; } else if (tv_antenna notin player && rubbergloves has worn){ print "The gloves are too short for you to put your hand in there without getting wet.^"; rtrue; } else if(tv_antenna notin player && rubbergloves hasnt worn) {print "No way are you sticking your hands in there without some protection!^"; rtrue; } ]; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Downstairs Lobby !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Object Lobby_Downstairs "Lobby" has light with name "lobby", description "This lobby looks just like the one upstairs. There is an elevator here, but only one button to push. It appears you may only go up.", n_to Strange_Room1, s_to Strange_Room6, w_to [; if (elevator_door hasnt open) { if (ouch ==0) {ouch = 1; print "*BAM!* You walk face first into the door. Hopefully no one will be around to notice your gradually swelling nose. You think pushing the button and waiting for the door to open is a better idea for next time.^"; } else print "*BAM!*^Shouldn't you have learned your lesson by now?! Wait for the door to open, before trying to walk through it!^"; } else if (elevator_door has open) return Elevator; ]; Object Strange_Room1 "Strange Room" has light with name "strange" "room", description "This room resembles that grey room you woke up in. Except it's white. You can go east or south.", e_to Strange_Room2, s_to Lobby_Downstairs; Object Strange_Room2 "Strange Room" has light with name "strange" "room", description "This room resembles that grey room you woke up in. Except it's white. You can go east or west.", e_to Strange_Room3, w_to Strange_Room2; Object Strange_Room3 "Strange Room" has light with name "strange" "room", description "This room resembles that grey room you woke up in. Except it's white. You can go west or south.", w_to Strange_Room2, s_to Main_Lobby; Object Strange_Room4 "Strange Room" has light with name "strange" "room", description "This room resembles that grey room you woke up in. Except it's white. You can go north or west.", n_to Main_Lobby, w_to Strange_Room5; Object Strange_Room5 "Strange Room" has light with name "strange" "room", description "This room resembles that grey room you woke up in. Except it's white. You can go east or west.", e_to Strange_Room4, w_to Strange_Room6; Object Strange_Room6 "Strange Room" has light with name "strange" "room", description "This room resembles that grey room you woke up in. Except it's white. You can go north or east.", n_to Lobby_Downstairs, e_to Strange_Room5; Object Main_Lobby "Main Lobby" has light with name "main" "lobby", description "You're in what seems to be the main lobby of the building, and it almost looks normal. There's a large reception desk in the middle of the room, some couches are arranged near the door and lush green plants flank either side. You also see an elaborate door on the west wall and a door that appears to lead out on the east wall. You can go north or south.", n_to Strange_Room3, S_to Strange_Room4, w_to [; if (elaborate_door has locked && elaborate_door hasnt open) { if (ouch ==0) {ouch = 1; print "*BAM!* You walk face first into the locked door. Hopefully no one will be around to notice your gradually swelling nose. You think unlocking the door and opening it is a better idea for next time.^"; } else print "*BAM!*^Shouldn't you have learned your lesson by now?! Unlock that door first, before trying to walk through it!^"; } else if (elaborate_door hasnt locked && elaborate_door hasnt open){ if (ouch ==0) {ouch = 1; "*BAM!* You walk face first into the door. Hopefully no one will be around to notice your gradually swelling nose. You think opening the door first is a better idea for next time.^"; } else print "*BAM!*^Shouldn't you have learned your lesson by now?! Open that door first, before trying to walk through it!^"; } else if (elaborate_door has open) return Rat_Room; ], e_to [; if (exit_door has locked && exit_door hasnt open) { if (ouch ==0) {ouch = 1; print "*BAM!* You walk face first into the locked door. Hopefully no one will be around to notice your gradually swelling nose. You think unlocking the door and opening it is a better idea for next time.^"; } else print "*BAM!*^Shouldn't you have learned your lesson by now?! Unlock that door first, before trying to walk through it!^"; } else if (exit_door hasnt locked && exit_door hasnt open){ if (ouch ==0) {ouch = 1; "*BAM!* You walk face first into the door. Hopefully no one will be around to notice your gradually swelling nose. You think opening the door first is a better idea for next time.^"; } else print "*BAM!*^Shouldn't you have learned your lesson by now?! Open that door first, before trying to walk through it!^"; } else if (exit_door has open) return End_Room; ]; Object reception_desk "reception desk" Main_Lobby has static concealed container openable with name "desk" "reception" "drawers", description "It's a nice desk. It has some drawers like most desks do.", before[; Open: readpapers=1; "You open the drawers and seach around. You find some papers with scribbles on them. Or maybe it's some strange language. This whole place is strange, afterall."; ]; Object papers "papers" Main_Lobby has concealed with name "papers" "strange", description "These papers have weird scribbles on them.", before [; Take: move elaborate_key to player; "Under the papers you find an elaborate key. You pick it up and put it in your pocket."; ]; Object elaborate_door "elaborate door" has concealed static door openable lockable locked with name "elaborate" "door", description [; if(readpapers==1) print "This door is made out of very fine wood. You notice the same scribbles engraved in the door as you saw on the paper.^"; else print "The door is made out of very fine wood. You notice some strange scribbles engraved in the door.^"; ], when_open "The door is open.", when_closed "The door is closed.", door_to [; if (self in Main_Lobby) return Rat_Room; return Main_Lobby;], door_dir[; if (self in Main_Lobby) return w_to; return e_to;], with_key elaborate_key, found_in Main_Lobby Rat_Room; Object elaborate_key "elaborate key" with name "elaborate" "key", description "It's a small elaborate key."; Object Rat_Room "Rat Room" has light with name "rat" "room", description [; if (Rat_Room hasnt visited){ print "Rats, rats, everywhere! Except they're standing on their hind legs. And they're just slightly shorter than you. They immediately notice your presence and advance toward you.^^", "'What are you doing here?' asks one rat.^^", "Holy crap they can talk!^^", "'You are not supposed to be down here,' he continues. 'You must be smarter than the rest, to have made it here without our supervision.'^^"; if (cheese in player) print "Another rat chimes in: 'I smell cheese. Our special green cheese. Give it to me!^^' The rats move in on you and you start to get nervous."; else {print "'Get him! We must figure out how this happened!'"; deadflag = true; } } else "All the rats are sleeping. Or dead. You're not quite sure, but at least they're not awake."; ], e_to [; if (sleeprat == 1) return Main_Lobby; else {print "'Get him! We must figure out how this happened!"; deadflag = true; } ]; Object rats "rats" Rat_Room has concealed static animate with name "rats", description "They are rats, walking on their hind legs. They appear to be conducting scientific experiments of some sort...on humans.", life[; ThrowAt,Show,Give: if (noun == cheese) { move cheese to rats; print "'That's right, you better give us that cheese. Mmm it smells so good.. Let's eat it!' ^^ The rats jump on the cheese, and somehow they all get a piece.^^"; if (crushed_pills in cheese) {print "One by one they collapse to the floor. Those really were some strong pills!^^"; sleeprat = 1; rtrue; } else if (sleeping_pills in cheese) {print "Uh oh.. the rats have found the sleeping pills!^^ 'Wha..What is this? Pills?? You're trying to drug us! Get him!'^^"; deadflag = true; rtrue; } else {print "'That hit the spot,' says the leader rat. 'Now to take care of you and figure out how this happened.'^^The rats slowly move in. You wish you had stayed upstairs."; deadflag = true; rtrue; } } else print "Who were you planning on giving that to?^"; ]; Object leader_rat "leader rat" Rat_Room has concealed static animate with name "leader" "rat" "boss", description "He appears to be the boss rat, since he has a red little hat on his head.", before [; Cut: if (knife in player){ move rat_hand to player; "You cut the rat's hand off and pocket it.";} else "You'll need something sharp."; ]; Object exit_door "exit" has concealed static door openable lockable locked with name "exit" "door", description "The way out! Why isn't there a handle? Oh... you notice a small scanner mounted next to the door.", when_open "The door is open.", when_closed "The door is closed.", found_in Main_Lobby; Object scanner "scanner" Main_Lobby has concealed static supporter with name "scanner", description "It appears to be a hand reader of some sort. But it's much too small to scan your hand."; Object rat_hand "rat^s hand" Rat_Room has concealed with name "rat^s" "hand", description "It's smaller than your hand.", before [; PutOn: if (noun == rat_hand){ give exit_door open; print"You place the rat's hand on the scanner. A beam of light runs its length and then makes three short beeps. You hear a click."; rtrue; } ]; Object End_Room "Outside" has light with name "outside", description [; "You made it outside! Congrats! Now you just have to find out who you are, what you're doing here, and why there are more rats everywhere you look...", deadflag = 2; ];