! ------------------------------------------------------------ ! This is a port to Inform 5.5+ of Michael J. Roberts' game ! Ditch Day Drifter, from TADS. It is only partial, with ! most of the surface rooms and objects done, but none of ! the major puzzles. About 1/3 of the full game is here. ! If anyone wants to finish it off, feel free. I started it ! as an exercise to teach myself Inform, and never finished. ! It compiles and is playable in this form, though there's ! not much to do. ! ------------------------------------------------------------- Constant Story "DITCH DAY DRIFTER"; Constant Headline "^An Interactive Translation^\ Copyright (c) 1990 by Michael J. Roberts^\ Translated to Inform 5.5 by Chris Markwyn^"; Constant OBJECT_SCORE 5; Constant MAX_SCORE 80; Include "Parser.h"; Include "VerbLib.h"; Class Treasure with number 5, after [; Insert: if (second==alley1slot) { remove self; score=score+self.number; alley1slot.number=alley1slot.number+1; } ], has scored; Object Room_3 "Room 3" with description "This is your room. You live a fairly austere life, being a \ poor college student. The only notable features are the bed \ (unmade, of course) and a small wooden desk. An exit is west.", w_to Alley1, out_to Alley1, has light; Nearby room3desk "small wooden desk" with name "small" "wooden" "wood" "desk", before [; Examine: print "It's the small desk that comes with all of the rooms in the \ house. The desktop is pitifully small, especially \ considering that you often need to have several physics \ texts and tables of integrals open simultaneously. The \ desk has a small drawer ("; if (room3drawer has open) "open)."; "closed)."; Open: <>; Close: <>; ], has scenery container; Nearby wastebasket "waste basket" with name "waste" "basket" "wastebasket", initial "There is a wastebasket here.", has container open; Nearby bed "bed" with name "bed", description "It's a perfectly ordinary bed. It's particular ordinary \ (for around here, anyway) in that it hasn't been made in \ a very long time.", before [; LookUnder: if (self hasnt general) { move dollar to Player; give self general; print "You find a dollar bill! You pocket the bill. \ (Okay, so it's an obvious adventure game \ puzzle, but I'm sure you would have been \ disappointed if nothing had been there.^"; rtrue; } "You don't find anything of interest."; ], has enterable supporter scenery; Object dollar "one dollar bill" with name "dollar" "one" "bill"; Object room3drawer "drawer" room3desk with name "drawer", has openable; Object Alley1 "Alley One" with describe [; print "You are in the eternal twilight of Alley One, one of the twisty \ little passages (all different) making up the student house in \ which you live. Your room (room 3) is to the east. To the west \ is a door ("; if (alley1door hasnt open) "closed), affixed to which is a large sign. An exit is \ south, and the hallway continues north."; "open), affixed to which is a large sign. An exit is \ south, and the hallway continues north."; ], e_to Room_3, n_to Alley1North, s_to Breezeway, out_to Breezeway, w_to [; if (alley1door has open) return Room4; "The door is closed and locked. You might read the sign on the \ door for more information."; ], has light; Nearby alley1door "door" with name "door", before [; Examine: if (self has open) "It's open."; "The door is closed and locked. There is a slot in the \ door, and above that, a large sign is affixed to the \ door."; ], door_to [; if (location==Alley1) return Room4; return Alley1; ], door_dir [; if (location==Alley1) return w_to; return e_to; ], found_in Alley1 Room4, has scenery door openable locked; Nearby alley1slot "slot" with name "slot", number 0, before [; Receive: "The slot will only accept items on the treasure list."; ], after [; if (self.number == 4) { give alley1door ~locked open; "As the treasure disappears into the slot, you hear a klaxon \ from the other side of the door. An elaborate series of clicks \ and clanks follows, then the door swings open."; } ], has scenery container; Nearby alley1sign "sign" with name "sign", description "The sign says:\ ^ Welcome to Ditch Day!\ ^This stack is a treasure hunt. Gather all of the treasures, and you \ break the stack.\ ^^To satisfy the requirements of this stack, you must find the \ items listed below, and deposit them in the slot in the door. When \ all items have been put in the slot, the stack will be solved and \ the door will open automatically. The items to find are:^\ ^ The Great Seal of the Omega\ ^ Mr. Happy Gear\ ^ A Million Random Digits\ ^ A DarbCard^\ ^These items are hidden amongst the expanses of the Great \ Undergraduate Excavation project. Happy hunting! ^\ ^For first-time participants, please note that \ this is a ~finesse stack.~ You are not permitted to attempt to break \ the stack by brute force. Instead, you must follow the rules above.", has scenery; Object Room4 "Room 4" with description "This is room 4, where the weird senior across the hall \ lives. An exit is to the east, and a strange passage \ leads down.", e_to Alley1, out_to Alley1, has light; Object Alley1North "Alley One" with description "You are at the north end of alley 1. A small room is \ to the west.", s_to Alley1, w_to Alley1Comp, has light; Object Alley1Comp "Computer Room" with description "You are in a small computer room. Not surprisingly, \ the room contains a personal computer. The exit is \ east.", initial [; if (Player hasnt visited) StartDaemon(compstudents); ], e_to [; StopDaemon(compstudents); return Alley1North; ], has light; Nearby alley1pc "personal computer" with name "personal" "computer", description "The computer is in use by a couple of your fellow \ undergraduates. Closer inspection of the screen shows that they seem \ to be playing a text adventure. You've never really understood the \ appeal of those games yourself, but you quickly surmise that the \ game is part of one of the seniors' stacks.", before [; SwitchOff: "The students won't let you, since they're busy using \ the computer."; ], has scenery; Nearby compstudents "students" with article "a", name "couple" "of" "students", description "The students are busy using the computer.", initial "A couple of your fellow undergraduates are here, using the \ computer. They seem quite absorbed in what they're doing.", life [; Ask: "They're too busy to answer."; ], orders [; default: "They're too wrapped up in what they're doing."; ], number 0, daemon [ i; i=self.number+1; self.number=i; switch(i) { 1: "^~Where are we going to find the dollar bill?~ one of the \ students asks the other. They sit back and stare at the \ screen, lost in thought."; 2: "^~Hey!~ says one of the students. ~Did you look under the \ bed?~ The other student shakes his head. ~No way, that would \ be a stupid puzzle!~"; 3: "^One of the students using the computer types a long string \ of commands, and finally types ~look under bed.~ ~Wow! The \ dollar bill actually was under the bed! How lame!~"; default: "^The students continue to play with the computer."; } self.number=self.number+1; ], has animate; Object Breezeway "Breezeway" with description "You are in a short passage that connects a courtyard, \ to the east, to the outside of the building, which lies \ to the west. A hallway leads north.", n_to Alley1, e_to Courtyard, w_to OrangeWalk1, has light; Object Courtyard "Courtyard" with description "You are in a large outdoor courtyard. An arched passage \ is to the west. A passage leads east, and a stairway \ leads down.", w_to Breezeway, e_to Lounge, d_to Hall1, has light; Object Lounge "Lounge" with description "You are in the lounge. A passage leads west, and a \ dining room lies to the north.", w_to Courtyard, out_to Courtyard, n_to DiningRoom, has light; Object DiningRoom "Dining Room" with description "You are in the dining room. There is a wooden table in \ the center of the room. The lounge lies to the south, \ and a passage to the east leads into the kitchen.", e_to Kitchen, s_to Lounge, has light; Nearby diningtable "wooden table" with name "wooden" "table", has scenery supporter; Object fishfood "fish protein module" diningtable with name "fish" "protein" "module", description "It's a small pyramid-shaped white object, which is widely \ considered to consist primarily of fish protein. The food service \ typically resorts to such unappetizing fare toward the end of the \ year.", has edible; Object Kitchen "Kitchen" with description "You are in the kitchen. A ToxiCola(tm) machine is here. \ A passage leads into the dining room to the west.", w_to DiningRoom, out_to DiningRoom, has light; Nearby toxicolamachine "ToxiCola machine" with name "machine" "compartment" "toxicola", before [; Examine: print "The machine dispenses ToxiCola, one of the big losers in the \ Cola Wars. But, hey, it's cheap, so the food service installed it. \ The machine consists of a compartment large enough for a cup, \ and a button for dispensing ToxiCola into the cup."; if (cup in self) "The compartment contains a cup."; Receive: if (noun ~= cup) "That won't fit in the compartment."; ], has container open scenery; Object cup "coffee cup" diningtable with name "coffee" "cup", before [; Examine: if (self has general) "It's full of a viscous brown fluid."; "It's empty."; Receive: "It won't fit in the cup."; ], has transparent; Object toxicola "toxicola" with name "toxicola" "cola", description "It's a thick brown fluid. It appears to be quite flat.", before [; Take: "You'll have to leave it in the cup."; Drink: give cup ~general; remove self; "You drink the ToxiCola, despite your better judgment. It \ initially sparks a sugar and caffeine rush, but that rapidly \ fades, to be replaced by a strange dull throbbing. You enter \ a semi-conscious state for several hours. It finally passes, \ but you're not sure if it's been hours, weeks, or years. "; ], has scenery; Object toxicolabutton "button" Kitchen with name "button", before [; Push, SwitchOn: if (cup in toxicolamachine) { if (cup has general) { print "ToxiCola spills over the \ already full cup, and drains away."; rtrue; } give cup general; move toxicola to cup; "The horrible brown viscous fluid you have come \ to know as ToxiCola fills the cup."; } "Horrible viscous brown fluid spills into the empty \ compartment and drains away."; ], has scenery switchable; Object OrangeWalk1 "Orange Walk" with description "You are on a walkway lined with orange trees. The \ walkway continues to the north, and an arched passage \ leads into a building to the east.", e_to Breezeway, n_to OrangeWalk2, has light; Object OrangeWalk2 "Orange Walk" with description "You are on a walkway lined with orange trees. The \ walkway continues to the south, and leads into a large \ grassy square to the north.", n_to Quad, s_to OrangeWalk1, has light; Object orangetree "orange trees" with description "The orange trees are perfectly ordinary.", article "a", name "orange" "tree" "trees", found_in OrangeWalk1 OrangeWalk2, before [; Climb: "You climb into one of the orange trees, and quickly find \ the view from the few feet higher to be highly uninteresting. \ You soon climb back down."; ], has scenery; Object Quad "Quad" with description "You are on the quad, a large grassy square in the \ center of campus. The bookstore lies to the northwest; the \ health center lies to the northeast; Buildings and Grounds \ lies to the north; and walkways lead west and south.^\ ^Some students dressed in radiation suits are staging a bogus \ toxic leak, undoubtedly to fulfill the requirements of one of the \ stacks. They are wandering around, looking very busy. Many reporters \ are standing at a safe distance, looking terrified. \ The supposed clean-up crew is pouring lots of liquid nitrogen onto \ the ground, resulting in huge clouds of water vapor.", s_to OrangeWalk2, nw_to Bookstore, w_to Walkway, ne_to HealthCenter, n_to BandG, has light; Nearby students "group of students" with article "a", name "group" "of" "students" "student", description "The students are making quite a good show of the simulated \ nuclear waste spill. They're all wearing white clean-room suits with \ official-looking ~Radiation Control District~ badges. They're \ scampering about purposefully, keeping the crowd of reporters back \ at a safe distance. ", has scenery; Nearby presscorp "group of reporters" with article "a", name "group" "of" "reporters" "reporter", has scenery; Nearby flask "flask" with name "flask", description "The flask appears to have lots of liquid nitrogen in it; \ it's hard to tell just how much, since the opening is perpetually \ clouded over with thick plumes of water vapor.", before [; Receive: print "You know from experience that it wouldn't be a good \ idea to put ", (the) noun, " into the liquid nitrogen, \ since the LN2 is really, really cold."; ], has transparent; Object ln2 "liquid nitrogen" flask with name "liquid" "nitrogen" "ln2", article "some", description "You can't see much, thanks to the thick clouds of water \ vapor that inevitable form over such a cold substance.", before [; Take: "You're better off leaving the liquid nitrogen in the flask."; ]; Object BandG "B&G" with description "You are in the Buildings and Grounds office. The exit \ is to the south.", s_to Quad, out_to Quad, has light; Nearby bngmemo "scrap of paper" with name "scrap" "of" "paper", description "Most of the paper has been torn away; the part that \ remains seems to have a list of numerical codes of \ some kind on it:^\ ^ 293 -- north tunnel lighting \ ^ 322 -- station 2 lighting \ ^ 612 -- behavior lab^\ ^The rest is missing."; Object HealthCenter "Health Center" with description "You are in the health center. Like the rest of campus, \ this place is deserted because of Ditch Day. The large \ desk would normally have a receptionist behind it, but \ today, no one is in sight.", sw_to Quad, out_to Quad, has light; Nearby healthdesk "desk" with name "desk" "large", has scenery supporter; Object healthmemo "health memo" healthdesk with name "health" "memo", description "From: Director of the Health Center^\ To: All Health Center Personnel^\ Subject: ToxiCola toxicity^\ ^Many students have visited the Health Center recently, complaining \ that the ToxiCola that is served in the student houses has not been \ properly caffeinated. The students are complaining of drowsiness, \ dizziness, and other symptoms that are normally associated with an \ insufficient intake of caffeine.^\ Upon investigation, we have learned that the ToxiCola dispensers \ in the student houses have become contaminated with a substance that \ induces these effects. The substance has not yet been identified, but \ the concentration seems to be increasing. All Health Center personnel \ are urgently directed to advise students to avoid the ToxiCola if at \ all possible. Students should be informed that their student health \ insurance coverage will cover any purchases of other caffeinated \ beverages that they need for their studies."; Object Walkway "Walkway" with description "You are on a walkway. A large grassy square lies to \ the east; buildings lie to the north and south. The \ walkway continues west.", e_to Quad, n_to BehaviorLab, s_to Security, w_to Walkway2, has light; Object Walkway2 "Walkway" with description "You are on a walkway, which continues to the east. \ Buildings are to the north and south.", e_to Walkway, s_to ExplosiveLab, n_to Biobuilding, has light; Object Biobuilding "Biology Building" with description "You are in the biology building. The exit is south.", s_to Walkway2, out_to Walkway2, has light; Nearby bionotes "notebook" with name "notebook" "book", description "The notebook explains various lab techniques used in cloning \ organisms. Since the invention of the CloneMaster, which requires only \ a sample of genetic material from a subject (such as some blood, or a \ bit of skin, or the like) and the basic skills required to operate a \ household blender, most of the techniques are obsolete. Some of the data, \ however, are interesting. For example, the notebook outlines the procedure \ for reversing the sex of a clone; the introduction of chemicals identified \ herein only as Genetic Factor XQ3, Polymerase Blue, and Compound T99 at \ the start of the cloning process aparently does the trick. Most of the \ rest of the document is a discussion of the human immune system; the \ author comes to the conclusion that the human immune system, though a \ novel idea, is far too improbable to ever actually be implemented."; Object ExplosiveLab "Explosive Lab" with description "It's not that the lab itself is explosive (though it has \ blown up a couple times in the past); rather, they study \ explosives here. Unfortunately, all the good stuff has \ been removed by other Ditch Day participants who got up \ earlier than you did. The exit is north.", n_to Walkway2, out_to Walkway2, has light; Nearby ln2doc "thesis" with name "thesis", description "The thesis is about Thermal Expansion Devices. It explains about \ a new class of explosives that are made possible by low-temperature \ fluid technology (i.e., liquid nitrogen) and high-tension polymer \ containment vessels (i.e., plastic bottles). A great deal of jargon and \ complicated theories are presented, presumably to fool the faculty \ advisor into thinking the author actually did something useful with his \ research funds; after wading through the nonsense, you find that the \ paper is merely talking about putting liquid nitrogen into a plastic \ soft-drink bottle, closing the bottle, then letting nature take its \ course. Since the nitrogen will tend to evaporate at room temperature, \ but will have no place to go, the bottle will eventually explode.^\ ^On the cover page, you notice this important warning: ~Kids! Don't \ try this at home! Liquid nitrogen is extremely cold, and can cause severe \ injuries; it should only be handled by trained professionals. Never \ put liquid nitrogen in a closed container.~"; Object money "five dollar bill" with name "five" "dollar" "bill" "money"; Object Bookstore "Bookstore" with description "You are in the bookstore. The shelves are quite empty; \ no doubt everything has been bought up by seniors in \ attempts to build their stacks and underclassmen in \ attempts to break them. The exit is to the southeast.", se_to [; if (battery in Player && battery hasnt general) { "The clerk notices that you want to buy the battery. ~That'll \ be five dollars,~ she says, waiting patiently."; } return Quad; ], has light; Nearby battery "battery" with name "battery"; Nearby clerk "clerk" with name "clerk", description "The clerk is a kindly lady to whom you have paid many \ hundreds of dollars for books and other college necessities.", initial "A clerk is near the exit, prepared to ring up any purchases \ you might want to make (not that there's much left here to \ buy).", before [; Pay: if (battery notin Player) "The clerk looks confused. ~I don't see what you're paying \ for,~ she says. She then looks amused, realizing that \ the students here sometimes get a little ahead of \ themselves."; if (battery has general) "The clerk looks confused and says, ~You've already paid!~ \ She then looks amused, realizing that the students here \ can be a bit absent-minded at times."; if (money notin Player) { if (dollar in Player) "The clerk reminds you that the battery is five \ dollars. All you have is one dollar. She looks \ amused. ~They can do calculus in their sleep but \ they can't add,~ she jokes."; "You unfortunately don't have anything with which to pay \ the clerk."; } give battery general; remove money; "The clerk accepts your money and says, ~Thank you, have a nice \ day.~"; ], life [; Give: if (noun==money || noun==dollar) <>; if (noun==darbcard) "The clerk shakes her head. ~Sorry,~ \ she says, ~we only accept cash.~"; if (noun==cup && cup has general) "~I never drink that stuff,~ the clerk says, \ ~and neither should you! Do you have any \ idea what's in there? I probably don't \ know half as much chemistry as you, but I \ know better than to drink that."; "She doesn't appear interested."; ], has animate female; Object BehaviorLab "Behavior Lab" with description "You are in the behavior lab. The exit is to the south, \ and a locked door is to the north. The door is labelled \ ~Maze - Experimental Subjects Only.~ In additon, a \ passage labelled ~Viewing Room~ leads east.", s_to Walkway, out_to Walkway, e_to Mazeview, n_to "The door is closed and locked. Besides, do you really want to \ be an ~Experimental Subject~?", has light; Nearby behaviordoor "behavior door" with name "door", description "The door is closed and locked, and labelled ~Experimental \ Subjects Only.~", has scenery; Object Mazeview "Maze Viewing Room" with describe [; print "The entire north wall of this room is occupied by a window \ overlooking a vast human-sized labyrinth. No experimental subjects \ (i.e., students) seem to be wandering through the maze at the \ moment, "; if (MazeStart hasnt visited) { print "but you have the strange feeling that you will have to find \ your way through the maze some day. You read with a sense of \ foreboding the plaque affixed to the wall:^^"; <>; } print "so your attention wanders to the plaque on the wall:^^"; <>; ], w_to BehaviorLab, has light; Nearby mazewindow "window" with name "window", before [; Examine: print "The window looks out onto a vast human-sized labyrinth. \ The maze is currently devoid of experimental subjects"; if (MazeStart hasnt visited) { print ", but you have the strange feeling that you'll \ have to find your way through the maze some day.^"; rtrue; } print ".^"; rtrue; Search: <>; ], has scenery; Nearby mazeplaque "plaque" with name "plaque", description "*** The Behavioral Biology Laboratory Psycho-Magnetic Maze ***^\ ^The Psycho-Magnetic Maze that is visible through the \ window has been constructed to determine how the human \ directional sense interacts with strong electromagnetic \ and nuclear fields. Through careful tuning of these fields, \ we have found that human subjects often become completely \ disoriented in the maze, resulting in hours of random \ and desperate wandering, and much amusement to those of \ us in the observation room.", has scenery; Object Security "Security Office" with description "You are in the campus security offiice, the very \ nerve-center of the elite Kaltech Kops. The officers all \ appear to be absent; undoubtedly they are all scurrying \ hither and yon trying to deal with the Ditch-Day \ festivities. There is a desk in the center of the room. \ The exit is to the north.", n_to Walkway, out_to Walkway, has light; Nearby securitydesk "security desk" with name "desk" "security", has supporter scenery; Nearby flashlight "flashlight" with name "flashlight" "flash" "light", before [; Receive: if (noun~=battery) print_ret "You can't put ", (the) noun, " into \ the flashlight."; move noun to flashlight; Remove: if (noun==battery) give flashlight ~light; Examine: if (battery in flashlight) { if (flashlight has light) "The flashlight (which contains a battery) is \ turned on and is providing a warm, reassuring \ beam of light."; "The flashlight (which contains a battery) is currently \ off."; } "The flashlight is off. It seems to be missing a battery."; SwitchOn: if (flashlight has light) "It's already on!"; if (battery in flashlight) { give flashlight light; "The flashlight is now on."; } "The flashlight won't turn on without a battery."; SwitchOff: if (flashlight hasnt light) "It's not on."; give flashlight ~light; "Okay, the flashlight is now turned off."; ], has container open ~light; Object securitymemo "security memo" securitydesk with name "security" "memo" "memos", description "From: Director of Security^\ To: All Security Personnel^\ Subject: Great Underground Excavation^\ It has come to the attention of the Kaltech Kops that the student \ activity in the steam tunnels, known as the ~Great Undergraduate \ Excavation~ project, has escalated vastly in recent years. Due to \ objections from city officials about noise from underground and the \ fear local residents have expressed that their property will be \ undermined, this office has taken action to halt all GUE activity. \ Effective immediately, a security officer will be posted at all \ known steam tunnel entrances, and shall under no circumstances allow \ students to enter."; Object Hall1 "Hallway" with description "You are at the west end of a basement hallway. A stairway \ leads up.", u_to Courtyard, e_to Hall2, has light; Object Hall2 "Hallway" with description "You are in an east-west hallway in the basement. Another \ hallway goes off to the north.", w_to Hall1, e_to Hall3, n_to Hall4, has light; Object Hall3 "Hallway" with description "You are at the east end of a hallway in the basement. A \ passage leads north.", w_to Hall2, n_to Laundry, has light; Object Laundry "Laundry Room" with description "You are in the laundry room. There is a washing machine \ against one wall. The exit is to the south.", s_to Hall3, out_to Hall3, has light; Nearby washingmachine "washing machine" with name "washing machine" "washing" "machine", has scenery container openable; Object jeans "blue jeans" washingmachine with name "blue" "jeans" "pants" "pair" "of", article "a pair of", before [; Examine, Search: if (self has general) "It's an ordinary pair of jeans."; move masterkey to location; give self general; "It looks like an ordinary pair of jeans, though not your \ size. As you inspect them, you notice a key fall out of \ them and to the ground."; Wear: "They're not your size."; ]; Object masterkey "master key" with name "master" "key", before [; Take: if (self hasnt general) { give self general; "*Some* adventure games would try to impose their authors' \ misguided sense of ethics on you at this point, telling you \ that you don't feel like picking up the key, or you don't have \ time to do that, or that it's against the rules to even possess \ a master key, much less steal one from some other student's \ pants that you happened to find in a laundry, or even more \ likely that you are unable to take the key while wearing that \ dress. However, you're the player, and you're in charge around \ here, so I'll let you make your own judgments about what's \ ethical and proper here..."; } move self to Player; "Taken."; ]; Object Hall4 "Hallway" with description "You are in a north-south hallway in the basement.", s_to Hall2, n_to Hall5, has light; Object Hall5 "Hallway" with description "You are at a corner in the basement hallway. You can go \ east or south.", s_to Hall4, e_to Hall6, has light; Object Hall6 "Hallway" with description "You are at the east end of a basement hallway. To the \ north is a ~storage room,~ which everyone knows is \ actually an entrance to the steam tunnels.", w_to Hall5, n_to Storage, has light; Object Storage "Storage Room" with describe [; print "You are in a large storage room. There really hasn't been \ anything stored here for a long time (at least, not anything that \ anybody wanted to ever see again.) The exit is to the south. To \ the north lies a door, which is "; if (tunneldoor has open) "open. A small card table is sitting in \ front of the door."; "closed. A small card table is sitting in front of the door."; ], s_to Hall6, n_to [; if (guard hasnt general) "The guard won't let you enter the tunnel."; if (tunneldoor hasnt open) "A closed door stands in your way."; return(Tunnel1); ], has light; Nearby tunneldoor "tunnel door" with name "door", with_key masterkey, has scenery openable lockable locked; Nearby guard "guard" with name "guard" "security", initial [; if (self hasnt general) "A guard is sitting at the card table in \ front of the door. He watches you carefully, \ evidently thinking that you might be planning \ to try to go through the door."; "A guard is slumped over a small card table in front of the steam \ tunnel entrance, evidently fast asleep. How typical."; ], before [; Examine: print "The guard is a member of the Kaltech Kops, the elite \ corps of dedicated men and women that keep the campus \ safe from undesirables (i.e., the students). "; if (self has general) "Currently, the guard is fast asleep, which is \ quite typical."; ], life [; Give: if (self has general) "The guard appears to be fast asleep."; if (noun==dollar || noun==money) "The guard looks at you sternly. ~You should be ashamed \ of yourself, trying to bribe a member of the elite \ Kaltech Kops!~ he admonishes you, refusing your offer."; if (noun~=cup || cup hasnt general) "The guard doesn't appear interested."; if (noun==cup) { give self general; give cup ~general; remove toxicola; move cup to cardtable; score = score + 10; "The guard happily accepts your offer; ~ToxiCola! My \ favorite!~ he says appreciatively, not knowing the evil \ deed that you have in mind. He quickly drinks the entire \ cup of ToxiCola. Wow! Just the caffeine pickup I needed,~ \ he says happily.^\ ^After a few moments, though, he looks rather queasy. ~That \ caffeine just doesn't last long enough,~ he says just before \ he passes out, slumping over the card table."; } ], each_turn [ r; if (self hasnt general) { r=random(5); if (r==1) "^The guard eyes you warily."; if (r==2) "^The guard looks at his empty glass, probably \ wishing he had something to drink."; if (r==3) "^The guard flips purposefully through the pages \ of his memo pad."; if (r==4) "^The guard writes something down on his memo pad, \ glancing up from time to time to eye you \ suspiciously."; if (r==5) "^The guard picks up his empty glass and starts to \ drink, then realizes it is empty and puts it \ back down."; } ], has animate; Nearby cardtable "card table" with name "card" "table", has scenery supporter; Object emptyglass "empty glass" cardtable with article "an", name "empty" "glass", before [; Take: if (guard has general) { move self to Player; "Taken."; } "The guard won't let you take the glass. ~Get your own,~ \ he says."; Insert: if (second==ln2) "The liquid nitrogen evaporates on contact."; "It won't fit in the glass."; ], has transparent; Object Tunnel1 "Steam Tunnel" with description "You are in a steam tunnel. It is very hot and dry in here. \ The place has a strange musty odor; the air is very still, but there \ are distant sounds of all sorts that vibrate through the pipes. The \ pipes all seem to be hissing quietly, and a low rumbling sound constantly \ reverberates through the tunnel. Occasionally a distant clang or thud \ or crack emanates from the pipes.^\ ^The steam tunnel runs east and west. A small passage leads south.", s_to Storage, has light; Object MazeStart "Start of Maze" with description "You are at the start of the maze. A passage into the maze \ is to the east, and a heavy one-way door marked ~Exit~ \ is to the south.", s_to BehaviorLab, has light; Object darbcard "DarbCard" class Treasure, with name "darbcard" "darb" "card"; [ Initialise; location = Room_3; "^^^^^^You wake up to the sound of voices in the hall. You are confused for \ a moment; it's only 8 AM, far too early for anyone to be getting up. \ Then, it dawns on you: it's ditch day here at the fictitious California \ Institute of Technology in the mythical city of Pasadena, California. \ Ditch Day, that strange tradition wherein seniors bar their doors with \ various devices and underclassmen attempt to defeat these devices (for \ no other apparent reason than that the devices are there), has arrived.^"; ]; [ PrintRank; print ", earning you a score of "; if (score >=80) "graduate."; if (score > 60) "senior."; if (score > 40) "junior."; if (score > 25) "sophomore."; if (score > 10) "freshman."; "high-school hopeful."; ]; [ DarkToDark; "You stumble around in the dark, and don't get anywhere."; ]; [ PaySub; if (location ~= Bookstore) "I don't see anyone to pay."; if (noun hasnt animate) print "You can't pay ", (the) noun, " for that."; ]; Include "Grammar.h"; Verb "pour" * -> Empty; Extend only "pay" replace * creature "for" noun -> Pay * creature -> Pay; end;