| ! ------------------------------------------------------------ | |
| ! 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: <<Open room3drawer>>; | |
| Close: <<Close room3drawer>>; | |
| ], | |
| 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) <<Pay self>>; | |
| 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:^^"; | |
| <<Examine mazeplaque>>; } | |
| print "so your attention wanders to the plaque on the wall:^^"; | |
| <<Examine mazeplaque>>; | |
| ], | |
| 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: <<Examine self>>; | |
| ], | |
| 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; | |
Xet Storage Details
- Size:
- 40.6 kB
- Xet hash:
- 3296a4874cd125b83f342056650e8dd0dc89dbad186486ac44d771ac7eb24392
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.