!------------------------------------------------------------------------------ ! ! ! D E A D L I N E ! ! ! Inform Port ! ! ! This material contains elements based on the game Deadline. ! It is used with permission as instructive material. ! Original Deadline material is (c) 1982, 1999 Activision, Inc. ! Deadline and Activision are registered trademarks of Activision, Inc. ! All rights reserved. ! ! Inform Port written by Volker Lanz. Please do not distribute modified ! versions of these files. ! You can contact me via e-mail: volker.lanz@gmx.net ! ! GROUNDFLOOR.INF ! =============== ! The ground floor of the house ! ! !------------------------------------------------------------------------------ !------------------------------------------------------------------------------ Groundfloor Foyer "Foyer" with description [; "This is the foyer of the Robner house, beautifully appointed with a fine crystal chandelier, marble floors, and a large marble-topped table. The front door, to the south, is ", (DoorStatus) Front_Door, ". The foyer continues north."; ], after [; Go: if (noun == n_obj && self hasnt visited && the_time < 11*60+30) { print "Mrs. Robner appears, walking down a hallway from the north.^"; HelloMrsRobner(); new_line; } rfalse; ], s_to Front_Door, n_to North_Of_Foyer, npc_subway green_line, has corridor; !------------------------------------------------------------------------------ Object -> Marble_Table "table" with name "marble" "table", capacity 4, has scenery supporter; !------------------------------------------------------------------------------ Groundfloor North_Of_Foyer "North of Foyer" with description "This is a hallway north of the foyer. To the west is an open doorway, and to the east is the foot of a staircase. The hall continues north.", s_to Foyer, w_to Living_Room, e_to Bottom_Of_Stairs, n_to Corner, npc_subway green_line red_line, has corridor; !------------------------------------------------------------------------------ Groundfloor Living_Room "Living Room" with name "living" "room", description [; "This is a large and impressive room, whose furnishings bespeak the great personal wealth of the Robners. The south side of the room is a large bay window, now ", (DoorStatus) Bay_Window, ", which looks out onto the front yard.^ A wood pile sits beside a huge fieldstone fireplace. A double doorway leading to the main hall is the only exit. Pictures of Mrs. Robner's colonial ancestors line one wall. The room contains formal seating for at least fifteen people, in several groups of chairs and couches. Tables and cabinets, all of the finest mahogany and walnut, complete the furnishings. On one of the tables is a telephone."; ], npc_subway red_line, e_to North_Of_Foyer, s_to Bay_Window; !------------------------------------------------------------------------------ Object -> Living_Room_Couch "couch" with name "couch" "couches" "sofa", capacity 20, space 12, has scenery supporter enterable; !------------------------------------------------------------------------------ Object -> Living_Room_Table "table" with name "table" "tables", capacity 15, space 9, has scenery supporter; !------------------------------------------------------------------------------ Object -> -> Book "mystery book" with name "mystery" "hardcover" "book", size 3, weight 3, initial "Sitting on a table is a hardcover book.", description "This is a novelization of DEADLINE, a classic work of computer fiction.", before [; Consult, Open, Read: "The book is a novelization of DEADLINE. You start to read it, and it seems oddly familiar, as if you had lived it."; ], has legible topic; !------------------------------------------------------------------------------ Object -> -> -> Ending "ending" with name "ending" "end", before [; Read: if (Book in player) { print "You thumb to the last page and start to read the ending, in which the protagonist reads the plot of the story and kills himself in disgust. Disgustedly, you reach into your pocket, remove a gun, and end your life.^"; EndOfGame(0); } "You don't have the book that tells the ending."; Find: "That's up to you!"; default: L__M(##Miscellany, 30); rtrue; ], found_in [; rtrue; ], has scenery legible concealed; !------------------------------------------------------------------------------ Object -> Living_Room_Chair "chair" with name "chair" "chairs", capacity 12, space 6, has scenery supporter enterable; !------------------------------------------------------------------------------ Object -> Telephone "telephone" with name "telephone" "phone", before [; MyAnswer: << TAKE self >>; Take: if (Mrs_Robner.go_phone == 3) { Mrs_Robner.go_phone = 0; Mrs_Robner.phonecall_state = 1; "You can hear Mrs. Robner and a man whose voice you don't recognize. Robner: ~...much too early to consider it.~^ Man's Voice: ~But we couldn't have planned it better. You're free.~^ Robner: ~Yes, but it will...Wait a second...I think...~^ ~Click.~ You realize that the call has been disconnected."; } else if(DaemonRunning(PhoneRing)) { StopDaemon(PhoneRing); Mrs_Robner.npc_move_type = 2; move Mrs_Robner to Living_Room; Mrs_Robner.go_phone = 2; NPC_Path(Mrs_Robner, Master_Bedroom); print "You take the phone and hear an unfamiliar man's voice say ~Hello? Is Leslie there?~ You start to reply, but Mrs. Robner "; if (location == Living_Room) "enters and takes the phone from you. ~Thank you, Inspector,~ she says, and then into the telephone: ~Hello? Oh, hi. I can't really talk now. I'll call you back soon, OK? Bye.~ She hangs up and starts toward the door.^"; "picks up the phone from another extension and hears you. ~I've got it, Inspector,~ she says. ~Hello? Oh, it's you. I can't talk now. I'll call you back soon. Bye!~ You hear two clicks and the line goes dead."; } "All you hear is a dial tone."; ], found_in Living_Room Library Master_Bedroom, has scenery; !------------------------------------------------------------------------------ Object -> Living_Room_Cabinets "find wooden cabinets" with name "cabinet" "cabinets", description "The cabinets are beautifully handworked walnut and mahogany.", has scenery pluralname; !------------------------------------------------------------------------------ Object -> Living_Room_Pictures "collection of paintings" with name "collection" "of" "pictures" "paintings" "picture" "painting", description "There are five portraits: two on each side of and one above the bay window. The fading portraits are of members of the Phillips family, among the oldest in New England.", before [; Take: "You would be an impolite guest to fool with these things without cause."; ], has scenery; !------------------------------------------------------------------------------ Object -> Fireplace "fireplace" with name "fieldstone" "fireplace", has scenery; !------------------------------------------------------------------------------ Object -> Wood_Pile "wood pile" with name "wood" "pile", has scenery; !------------------------------------------------------------------------------ Object -> Bay_Window "bay window" with description [; print (The) self, " is "; if (self has open) "open, but you can't tell what's beyond it."; "closed."; ], name "bay" "window", before [; Open: if (self in West_Of_Front_Door && Foyer hasnt visited) "The window seems to be latched from the inside."; rfalse; LookThrough: if (self in West_Of_Front_Door) "You see the living room through the window."; if (Mr_McNabb in South_Lawn) { print "Through the bay windows the gardener, Mr. McNabb, can be seen "; print (string) DescribeMcNabbWork(); " on the south lawn."; } "You can see the south lawn."; ], door_to [; if (self in West_Of_Front_Door) return Living_Room; return West_Of_Front_Door; ], door_dir [; if (self in West_Of_Front_Door) return n_to; return s_to; ], found_in West_Of_Front_Door Living_Room, has scenery door openable; !------------------------------------------------------------------------------ Groundfloor Bottom_Of_Stairs "Bottom of Stairs" with description "You are at the foot of the stairs to the second floor. Open archways lead west and south.", npc_subway red_line brown_line, w_to North_Of_Foyer, s_to South_Hallway, u_to Stairs, has corridor; !------------------------------------------------------------------------------ Object -> Staircase "stairs" with name "stair" "stairs" "stairway" "staircase", before [; Climb, ClimbCarefully: switch(location) { Bottom_Of_Stairs, Stairs: if (action == ##ClimbCarefully) print "The stairs are still quite noisy even when walking up very slowly.^^"; << Go u_obj >>; default: "Bizarre!"; } rtrue; ClimbDown, ClimbDownCarefully: switch(location) { Bottom_Of_Stairs: "Bizarre!"; Stairs, Top_Of_Stairs: if (action == ##ClimbDownCarefully) print "The stairs are still quite noisy even when walking down very slowly.^^"; << Go d_obj >>; } rtrue; ], found_in Bottom_Of_Stairs Stairs Top_Of_Stairs, has static concealed; !------------------------------------------------------------------------------ Groundfloor Corner "Corner" with description "You are at the corner of two halls, one a short hallway to the west ending with a set of doors, and the other a long hall leading south toward the front door. To the north are swinging double doors leading into the kitchen.", npc_subway green_line pink_line, s_to North_Of_Foyer, w_to Dining_Room, n_to Kitchen, has corridor; !------------------------------------------------------------------------------ Groundfloor Kitchen "Kitchen" with name "kitchen", description "This is the Robner kitchen, quite large and with a full complement of appliances and labor-saving devices. On one wall, a beautifully-crafted shelf unit contains rare china, a unique hand-painted family heirloom depicting scenes from Greek mythology. The china consists of many place settings of plates, teacups, and saucers. There are several cabinets which likely contain silverware, glasses, and the like. To the east is a pantry.", npc_subway green_line, s_to Corner, e_to Pantry; !------------------------------------------------------------------------------ Window_Class -> Kitchen_Window "window" with name "kitchen" "window", before [i; LookThrough: if(self in Orchard_Path or In_The_Orchard) { print "You can see the kitchen beyond the tangle of trees and branches. "; i = HowManyAreThere(Kitchen); if (i > 1) "You can vaguely see ", (LanguageNumber) i, " people inside the kitchen."; else if (i == 1) "You can vaguely see someone inside the kitchen."; new_line; rtrue; } "You can barely see through the thick leaves of the grape arbor, but a lawn and lake can be seen in the distance."; ], found_in Orchard_Path In_The_Orchard Kitchen; !------------------------------------------------------------------------------ Object -> Appliances "appliances" with name "appliances", before [; Take: "The appliances here are useful in preparing meals, cleaning dishes, and the like. It is unlikely that Mrs. Rourke would like you using them."; ], has scenery pluralname; !------------------------------------------------------------------------------ Object -> Kitchen_Shelf "shelf" with name "shelf" "shelves", has scenery; !------------------------------------------------------------------------------ Object -> Kitchen_China "china" with name "china" "porcelain", description [; ! If the player has seen the china in the kitchen, he will be told ! that the fragment looks just like it. give self general; "Each one is hand-painted and depicts a scene from Greek mythology."; ], before [; Take: "These items are very rare and delicate, and were used only by Mr. Robner himself. You shouldn't even be touching them."; Count: "There are eight large and small plates, seven saucers, and six cups."; Break: if (random(100) > 75) { print "With a sweep of your hand, you smash all of them! Mrs. Rourke runs "; if (Mrs_Rourke in location) print "up to you"; else print "into the room"; print ", screaming. "; BehavedBadly(); rtrue; } else "As you reach for the ", (name) inputobjs-->2, ", you think of the pension awaiting you upon retirement. ~Is it worth it?~ you think, to be booted off the force for an impulse of anger and stupidity. Fortunately, you calm your temper."; ], has scenery pluralname; !------------------------------------------------------------------------------ Object -> Kitchen_Plates "plates" with name "plates", description [; << EXAMINE Kitchen_China >>; ], before [; Take, Break: << (action) Kitchen_China >>; Count: "There are eight of both the large and the small plates."; ], has scenery pluralname; !------------------------------------------------------------------------------ Object -> Kitchen_Cups "teacups" with name "cups" "teacups", description [; << EXAMINE Kitchen_China >>; ], before [; Take, Break: << (action) Kitchen_China >>; Count: "There are six handpainted cups."; ], has scenery pluralname; !------------------------------------------------------------------------------ Object -> Kitchen_Saucers "saucers" with name "saucers" "saucer", description [; << EXAMINE Kitchen_China >>; ], before [; Take, Break: << (action) Kitchen_China >>; Count: "There are seven handpainted saucers."; ], has scenery pluralname; !------------------------------------------------------------------------------ Object -> Kitchen_Cabinet "cabinet" with name "cabinet" "cabinets", capacity 15, space 10, before [; Open: give self ~scenery; Close: give self scenery; ], has scenery container openable; !------------------------------------------------------------------------------ Object -> -> Silverware "set of silverware" with name "set" "silverware", description "The silver is of the finest quality and design.", before [; Take: "Although the set would make a fine addition to your home, you resist the temptation. You would never get away with it anyway, as Mrs. Robner will no doubt count the silverware upon your departure."; Count: "There are 16 complete sets of silver."; ]; !------------------------------------------------------------------------------ Object -> -> Glass_Collection "glass collection" with name "glass" "collection", before [; Take: "You would be an impolite guest to fool with these things without cause."; Count: "There are at least two dozen."; ]; !------------------------------------------------------------------------------ Groundfloor Dining_Room "Dining Room" with name "dining" "room", description "You have entered the dining room. A long table seating twelve is in the center of the room and a large trestle table is against the south wall. A large picture window to the north allows a view of the rose garden. Hanging on the wall are several cheerful paintings, including one by Seurat which appears to be an original.", npc_subway pink_line, e_to Corner; !------------------------------------------------------------------------------ Object -> Red_Herrings "red herrings" with name "red" "herring" "herrings", before [; Find: if (location == Dining_Room && George in Dining_Room) "There are more in this room than elsewhere."; "They're all around you."; Why: "That would be telling."; Take, Eat, Taste: if (George in Dining_Room) "You reach for the juicy herrings, but George forces you away. He is a killer where herrings are concerned."; L__M(##Miscellany, 30); rtrue; Smell: if (George in Dining_Room) "They smell deliciously, but there's a certain scent in the air that makes you think."; L__M(##Miscellany, 30); rtrue; default: if(George notin Dining_Room) { L__M(##Miscellany, 30); rtrue; } rfalse; ], has edible pluralname concealed topic; !------------------------------------------------------------------------------ Window_Class -> Dining_Room_Window "window" with name "window", before [i; LookThrough: if(self in Dining_Room) { print "Through the window, the rose garden can be seen, and, off to the north, a wide lawn ending on a blue lake.^"; NPC_LookThroughWindow(self); rtrue; } if (self in Garden_Path) { print "You can see the dining room through the window"; i = HowManyAreThere(Dining_Room); if (i) { print ". You can vaguely see "; if (i == 1) print "someone"; else print (LanguageNumber) i, " people"; print " inside the dining room"; } "."; } print "You can see the dining room pretty clearly through the window.^"; PrintWhosIn(Dining_Room); rtrue; ], door_to Among_The_Roses, door_dir n_to, looks_to Among_The_Roses Garden_Path North_Lawn, found_in Dining_Room Among_The_Roses Garden_Path, has scenery; !------------------------------------------------------------------------------ Object -> Paintings "paintings" with name "paintings" "pictures" "paiting" "picture", description "The paintings are by various artists. They are brightly colored (but not overly loud) works of cheerful outdoor scenes and still-lifes. They give the room a light and pleasant feel.", before [; Take: "You would be an impolite guest to fool with these things without cause."; ], has scenery pluralname; !------------------------------------------------------------------------------ Object -> Seurat "seurat" with name "seurat", description "The painting by Seurat is a cheerful design which suits the bright decor of the dining room. It must be worth a fortune.", before [; Take: << Take Paintings >>; ], has scenery; !------------------------------------------------------------------------------ Object -> Long_Table "long table" with name "long" "table", capacity 15, space 9, has scenery supporter; !------------------------------------------------------------------------------ Object -> Trestle_Table "trestle table" with name "trestle" "table", capacity 15, space 9, has scenery supporter; !------------------------------------------------------------------------------ Groundfloor Pantry "Pantry" with name "pantry", description "This is the pantry with shelves containing a large selection of canned and packaged foods, such as fruits, vegetables, and dry goods.", w_to Kitchen; !------------------------------------------------------------------------------ Object -> Pantry_Shelf "set of wooden shelves" with name "set" "of" "wooden" "shelves" "shelf", capacity 12, space 10, description [; if(children(self) == 0) "There is nothing on ", (the) self, "."; Locale(self); rtrue; ], has scenery supporter; !------------------------------------------------------------------------------ Object -> -> Food_Assortment "food assortment" with name "food" "assortment", before [; Eat, Take: "Although manners are not taught at the Academy, surely your mother must have given you some sense of proper behavior."; ], has static; !------------------------------------------------------------------------------ Groundfloor South_Hallway "South Hallway" with description [; "You are in an east-west hallway south of the staircase. A door to the south is ", (DoorStatus) Rourke_Door, "."; ], npc_subway brown_line, n_to Bottom_Of_Stairs, e_to South_Hallway_End, s_to Rourke_Door, has corridor; !------------------------------------------------------------------------------ Door_Class -> Rourke_Door "door" with name "door", door_to [; if (self in South_Hallway) return Rourke_Room; return South_Hallway; ], door_dir [; if (self in South_Hallway) return s_to; return n_to; ], found_in South_Hallway Rourke_Room; !------------------------------------------------------------------------------ Groundfloor Rourke_Room "Mrs. Rourke's Room" with name "mrs" "rourke^s" "rourke" "room" "bedroom", description [; "This is the bedroom of the housekeeper, Mrs. Rourke, and is very simply furnished. A single bed, flanked by bare wooden end tables, sits below a closed window on the south end of the room. The floor is hardwood, with no rug. The only exit is a door to the north, which is ", (DoorStatus) Rourke_Door, "."; ], npc_subway brown_line, n_to Rourke_Door, has proper; !------------------------------------------------------------------------------ Window_Class -> Rourke_Window "window" with name "dirty" "window", before [; Clean: "You think you're clever, don't you? The window is so dirty that it isn't easily cleaned."; LookThrough: "The window is dirty and impossible to see through clearly."; Open: "The window is securely locked."; ], found_in East_Of_Front_Door Rourke_Room; !------------------------------------------------------------------------------ Bed_Class -> Rourke_Bed "bed"; !------------------------------------------------------------------------------ Groundfloor South_Hallway_End "South Hallway" with description [; "This is the end of the east-west hallway. To the south a small door is ", (DoorStatus) South_Closet_Door, ". Another door, to the east, is ", (DoorStatus) Rourke_Bathroom_Door, "."; ], w_to South_Hallway, s_to South_Closet_Door, e_to Rourke_Bathroom_Door, has corridor; !------------------------------------------------------------------------------ Groundfloor South_Closet "South Closet" with name "south" "closet", description "This is a little-used storage closet containing odds and ends of no interest whatsoever. The exit is to the north.", n_to South_Closet_Door; !------------------------------------------------------------------------------ Door_Class -> South_Closet_Door "south closet door" with name "small" "south" "closet" "door", door_to [; if (self in South_Hallway_End) return South_Closet; return South_Hallway_End; ], door_dir [; if (self in South_Hallway_End) return s_to; return n_to; ], found_in South_Hallway_End South_Closet, has open; !------------------------------------------------------------------------------ Groundfloor Rourke_Bathroom "Mrs. Rourke's Bathroom" with name "mrs" "rourke^s" "bathroom", description [; "This is Mrs. Rourke's bathroom. Aside from the usual bathroom fixtures are two shelves affixed to the wall. The door at the west side of the room is ", (DoorStatus) Rourke_Bathroom_Door, "."; ], w_to Rourke_Bathroom_Door, has proper; !------------------------------------------------------------------------------ Object -> Rourke_Bathroom_Shelves "shelves" with name "shelf" "shelves", capacity 12, space 10, has supporter scenery pluralname; !------------------------------------------------------------------------------ Door_Class -> Rourke_Bathroom_Door "bathroom door" with name "bathroom" "door", door_to [; if (self in South_Hallway_End) return Rourke_Bathroom; return South_Hallway_End; ], door_dir [; if (self in South_Hallway_End) return e_to; return w_to; ], found_in South_Hallway_End Rourke_Bathroom;