Global hint_menu = wasp_hints; !START STUFF Constant Story "Sting of the Wasp"; Constant Headline "^Interactive Damage-Control^by Jason Devlin.^(First time players should type ABOUT)^"; Constant SACK_OBJECT = purse; !Constant DEBUG; Constant MAX_CARRIED = 3; Constant DEATH_MENTION_UNDO; Constant MANUAL_PRONOUNS; Constant MAX_SCORE = 20; Constant TASKS_PROVIDED; Constant AMUSING_PROVIDED; Constant NUMBER_TASKS = 20; Array task_scores -> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1; Release 1; Serial "040622"; !FOR pname Replace MakeMatch; Replace Identical; Replace NounDomain; Replace TryGivenObject; !FOR DoMenu Replace DoMenu; Replace LowKey_Menu; Include "Parser"; Include "pname"; Include "smartcantgo"; Include "locksmith"; !LIBRARY MESSAGES Object LibraryMessages with before [; Wear: if (lm_n == 1) "Who are you, Sarah Jessica Parker?"; else return false; Touch: if (lm_n == 3) "You don't have time for that. Too bad, because you've heard some mighty good things about yourself."; if (lm_n == 1) { if (noun has female) "She wouldn't appreciate that."; if (noun has male && noun ~= charles or scott) "You don't think he'd appreciate that. Well, he probably would, but you still shouldn't do it."; if (noun has male && noun == charles or scott) "He wouldn't appreciate that."; } else return false; Search: if (noun has female) "You're not a lady cop, and this isn't Cinemax After Dark."; if (noun has male && noun ~= charles or scott) "You don't think he'd appreciate that. Well, he probably would, but you still shouldn't do it."; if (noun has male && noun == charles or scott) "He wouldn't appreciate that."; else return false; WaveHands: "Waving is generally a sign of enthusiasm. As such, you never do it."; Wave: "You'd rather not."; Dig: "You only dig up dirt in the metaphorical sense."; Pray: "You're not getting on your knees unless there's a fur coat in it for you."; Sleep: "There's no time for that now!"; Sorry: "You don't apologize even when you're wrong. What chances does someone have of getting one out of you when you're right?"; Swim: "As great as you look in swimwear, there's no way you're going to touch public water."; Answer: "If you want to say something, type TALK TO (SOMEONE) ABOUT (SOMETHING)."; Attack: "What? And break a nail?"; Blow: "Save it for Keith."; Burn: "What, you're a pyro? Couldn't you have a more fashionable neurosis?"; Buy: "Most things at Pine Meadows are covered by your dues."; Climb: "Not in that skirt, you don't."; Cut: "Ever since Frank made you cut up your platinum card, you haven't had the heart to do it to anything else."; Eat: "You're on the Kate Moss diet, so unless that's cigarettes or celery, put it down."; Fill: "You'd rather not."; Give: "What are you, Mother Theresa? They can get their own."; Jump: "Jazzercise went out in the eighties."; JumpOver: "You were too cool to play leapfrog as a kid, what makes you think you'll take it up now?"; LookUnder: "Bending over has already gotten you in to one awkward position today."; Pull,Push,Turn: if (lm_n == 1 or 2) "You do manual labour? Get real."; if (lm_n == 4) "That would be less than courteous. Of course, that isn't such a problem for you, but with all that's happened today you'd prefer not to make anymore enemies than absolutely necessary."; else return false; Rub: "Nope, no genie. Guess you'll just have to do things the old-fashioned way."; Show: "What is this? Show and tell?"; Sing: "Me me me me!"; Smell: "Whatever smell is there is overpowered by your characteristic fragrance: Self-Obsession, by Calvin Klone."; Strong: "Yikes! Save it for the sailors."; Swing: "If only Frank were in to that."; Taste: "Your tongue isn't going on that!"; Think: "It's too late for that now; the time for thinking was before you agreed to have sex in the basement!"; ThrowAt: "You prefer to throw fits."; WakeOther: "Nope, they're not sleeping. They really are that dull."; Yes: "Saying ~yes~ is what got you in to this whole mess!"; No: "You save all your no's for Frank and his busy hands."; Miscellany: if (lm_n == 39) "That is beneath your concern."; if (lm_n == 19) { if (banquet has visited) "All things considered, you did a pretty good job getting ready. Your clothes are whole; your hair is fixed, and your makeup is done reasonably well. However, the current situation is taking its toll and beads of sweat roll down from your forehead."; if (behind_club has visited) "The fall took its toll on your appearance. Your skirt was ripped, but you managed to capitalize on that by tearing it a little more and turning it in to a fashionable slit. Although you tried, you failed to get all the twigs and thorns out of your hair. Still, you look a lot better than most of the people around here."; if (makeup.applied == false && clothes has open) "Your lipstick is smeared, your cheeks are flushed, and your mascara is running. At least the fact that your blouse is open should draw attention away from your face."; if (makeup.applied == false && clothes hasnt open) "Your face is a mess. Good thing you're never far from your makeup."; if (makeup.applied == true && clothes has open) "The job you did on your makeup is pretty good, considering the lighting in the closet. Now if you just button your blouse you can be on your way."; if (makeup.applied == true && clothes hasnt open) "Pure dynamite! Not bad for twenty thousand. Your ass is high, your tummy is tight, and your skin hasn't a line or blemish. It's a shame you'll have to do it all over again in a year. Oh well, no one said beauty was easy."; } else return false; ]; !FOR USING MS. [ BeforeParsing x; for (wn=2 : wn1 : wn++) if (buffer->(parse->(4*wn + 1)) == '.' && (parse-->(2*wn - 3) == 'mrs' or 'ms' && parse-->(2*wn + 1) == 'winters' or 'stratham' or 'winnecott' or 'williams' or 'fordham' or 'william') || (parse-->(2*wn - 3) == 'mr' && parse-->(2*wn + 1) == 'burton' or 'knowles')) { buffer->(parse->(4*wn + 1)) = ' '; x++; } if (x) @tokenise buffer parse; ]; Include "Verblib"; Include "utility"; Include "domenu"; Include "AltMenu"; Include "Hints"; Include "dirs_2"; !HINTS AND HELP MENU Menu wasp_hints "Sting of the Wasp: Hints and Info" with description "Please select one of the following items:", number 1; Hint amusing_things "Some amusing things to do" with description "AMUSING THINGS TO DO"; HintTopic disclaimer "Disclaimer" wasp_hints; Hint "This game contains some strong language and sexual references. However, if you made it through the introduction, you've probably seen the worst. ^^This is not a pornographic game. ^^Additionally, throughout the course of the game you will likely screw over (note that I did not say ~screw~) a variety of people, berate others, and generally be an all around nasty person. If you are not comfortable playing this type of character, you may quit at any time. ^^The quotation at the beginning of the game is adapted from the American Heritage Dictionary." disclaimer; Menu general_info "General Info about the Game and Author" wasp_hints with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=[bug]" "Q=back" 8 7; HintTopic about_the_game "Game and Author" general_info; Hint "About the Game" about_the_game with description "Sting of the Wasp was started in the jobless summer of 2004 on June 22nd, went in to Beta around July 13th, and was released for IFComp 2004. It should be impossible to get the game into an unwinnable state, except in the endgame (where you are advised to save immediately). If you do find a way to get stuck, please e-mail me and I will fix it. ^^At the time of this writing, I am going in to my second year of a Bachelor's of Science, Major in Biology, Minor in Chemistry at Malaspina University in the sleepy little town of Nanaimo, British Columbia. I can be reached at jdevlin1984@@64hotmail.com (please forgive the tacky birth year, but at least now you know how old I am) and am more than happy to receive bug reports, comments, insults, or lavish jewelry. ^^After some consideration, I decided not to implement body parts. You'll just have to find another way to have your fun." ; HintTopic thank_you "Thank Yous" general_info; Hint "Thank Yous" thank_you with description "I'd like to thank the following people, for without them, this game wouldn't have been possible: ^^Graham Nelson for Inform and the DM4, which while daunting at first, gave me the abilities to write this game. ^^Roger Firth and Sonja Kesserich, whose Inform Beginner's Guide made the previous attemptable. ^^All of you at r*if for keeping Interactive Fiction alive long enough for me to find it (and really this isn't pandering for votes. Well, maybe a little). ^^Everyone on ifMUD who provided help when I was too impatient to wait for a reply from raif, especially inky who was always there with a friendly hello. ^^Neil Cerutti (pname.h), L. Ross Raszewski (hints.h and supporting files which I modified slightly), Roger Firth (smartcantgo.h), Emily Short (locksmith.h) and Gunther Schmidl (dirs_2) for their extremely helpful library contributions. ^^Stephen Granade and Mark Musante for their work with the annual IFComp. ^^And of course my betatesters Andy Ko, Jan Klinkhammer, Aaron Reed, Drew Mochak, and Tommy Herbert, whose work showed me that finishing the game is only half the battle. Any problems that remain are solely due to my shortcomings as a writer and programmer. ^^This game is dedicated to Dara Barker, whose sass, class, and ass provided the inspiration for Julia."; Menu general_hints "General Tips and New Verbs" wasp_hints with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=[bug]" "Q=back" 8 7; HintTopic general_hints2 "General Tips" general_hints; Hint "General Tips" general_hints2 with description "While I want this game to be as beginner-friendly as possible, writing an entire set of instructions to playing Interactive Fiction is beyond me. Instead, I suggest you take a look at Fredrik Ramsberg's excellent guide to playing IF at http://www.microheaven.com/IFGuide as it can teach you far better than I ever could."; HintTopic new_verbs "New Verbs" general_hints; Hint "New Verbs" new_verbs with description "Most of the new verbs implemented are not needed to complete the game, but rather they exist to allow a little more natural speech. For example, you can SPILL or POUR one thing on something else, but the same could be accomplished by PUT. However, one new verb is necessary to complete the game; hopefully it should be obvious when to use it. At at least one point, you will need to BLACKMAIL (someone) WITH (something), where the something is a word. ^^Additionally, to prevent the headaches associated with getting different responses from ASKing someone about something and TELLing them, the verb TALK TO (someone) ABOUT (something) is implemented. Although you can still use ask and tell (they'll both give you the same response, however)."; Menu all_hints "Hints" wasp_hints with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=[bug]" "Q=back" 8 7; Menu getting_started "Getting Started" all_hints with banner_tags "N=Go Down" "P=Go up" "Enter=Select" " Q=[bug]" "Q=back" 8 7; HintTopic trying_to_do "What am I trying to do?" getting_started; Hint "Have fun, for starters." trying_to_do; Hint "Reread the introduction." trying_to_do; Hint "Sounds like someone took a picture of you while you were, shall we say, indisposed." trying_to_do; Hint "You want to get the photo before it ruins your marriage." trying_to_do; HintTopic get_the_photo "How do I get the photo?" getting_started; Hint "Well that's the whole game, isn't it?" get_the_photo; Hint "Maybe Keith saw something." get_the_photo; Hint "He's at the Pro Shop." get_the_photo; HintTopic leave_closet "How do I leave the closet?" getting_started; Hint "Appearances are very important at Pine Meadows." leave_closet; Hint "You might want to fix yourself up a little." leave_closet; Hint "Like with some makeup." leave_closet; Hint "(it's in your purse)" leave_closet; Hint "You might want to button your blouse too." leave_closet; HintTopic getting_in_office "How do I get in to the office?"; Hint "With a key." getting_in_office; Hint "The registrar probably has it in his pocket." getting_in_office; Hint "Although he may not have his pocket with him." getting_in_office; Hint "Look in Charles's locker." getting_in_office; HintTopic get_past_cynthia "How do I get past Cynthia?"; Hint "This is a rather large puzzle. You might want to wander around a bit and try some other things first." get_past_cynthia; Hint "Her Coquille Saint Jacques seems promising." get_past_cynthia; Hint "Perhaps you can find a way to poison it." get_past_cynthia; Hint "Or something a little more natural." get_past_cynthia; Hint "Like an allergy." get_past_cynthia; Hint "Something as important as that would surely be in some record somewhere." get_past_cynthia; Hint "Charles's office, for example." get_past_cynthia; HintTopic reading_log "What do I do in the Spa lobby?"; Hint "First off, if the pilates class is still going on, wander around a bit until five." reading_log; Hint "You want to read the log book, but the receptionist won't let you." reading_log; Hint "You'll have to cause a distraction." reading_log; Hint "Perhaps you could help Ms. Williams with her colouring." reading_log; Hint "Have you searched the utility closet thoroughly?" reading_log; Hint "Ms. Williams' hair looks pretty brittle; that bleach would wreak havoc on it." reading_log; Hint "But you can't put it directly in to her hair. Perhaps a more subtle way." reading_log; Hint "Like in her dye." reading_log; Hint "Uh oh, she can still see you." reading_log; Hint "There are two ways to do this part. One with the rocks, the other with the salad. Take your pick." reading_log; Hint "Some steam might help." reading_log; Hint "Pour some water on the rocks." reading_log; HintTopic in_office "What should I do in the office?"; Hint "First you'll have to ensure yourself some privacy." in_office; Hint "Close the door..." in_office; Hint "... and lock it." in_office; Hint "Now you can dig up some dirt on people." in_office; Hint "The important one to look up is Cynthia." in_office; Hint "Now get out quick before Charles gets in." in_office; HintTopic charles_office "Charles won't let me look in the records or use the phone!"; Hint "Right, you'll have to persuade him somehow." charles_office; Hint "You can catch more flies with honey than vinegar." charles_office; Hint "But you're not trying to catch flies, so let's go see if we can find some vinegar." charles_office; Hint "If you already looked up the desk in the cabinets, you can blackmail him with that. Otherwise, don't worry, there's another way." charles_office; Hint "Since he's no longer in the whirlpool, you might try there." charles_office; Hint "That young man is quite rude." charles_office; Hint "And you certainly don't buy all that assistant nonsense." charles_office; Hint "But in addition to being rude, he's also quite secretive. You'll have to find someway to loosen his tongue (and not Charles's way)." charles_office; Hint "Taking his clothes might teach him some respect." charles_office; Hint "Now blackmail Charles with that info, and he'll be more than happy to oblige." charles_office; HintTopic get_into_kitchen "How do I get in to the kitchen?"; Hint "There are two ways of doing this." get_into_kitchen; Hint "One involves getting rid of Cissy, the other gives her a reason to think you have business in there." get_into_kitchen; Hint "Do you see Cissy's outfit?" get_into_kitchen; Hint "It'd be a shame if something were to happen to it." get_into_kitchen; Hint "But what? Something in the room should do the trick." get_into_kitchen; Hint "Or something in the waiter." get_into_kitchen; Hint "Ask the waiter for some wine." get_into_kitchen; Hint "Spill the wine on Cissy." get_into_kitchen; HintTopic in_kitchen "What do I do in the kitchen?"; Hint "Have you been to the office?" in_kitchen; Hint "If not, go there now and what you need to do should become clear." in_kitchen; Hint "You need some peanuts, or, barring that, something with peanuts in it." in_kitchen; Hint "Where would something like that be? The cupboards might be a good start." in_kitchen; Hint "But the cooks won't just let you tamper with the food." in_kitchen; Hint "Push over the pots to distract them." in_kitchen; Hint "Now put the peanut sauce in the Coquille Saint Jacques."; HintTopic what_with_melissa "What do I do with Melissa?"; Hint "Have you smelled her and the access hall?" what_with_melissa; Hint "Or talked to Keith?" what_with_melissa; Hint "Melissa took the photo, but she won't give it up without a fight." what_with_melissa; Hint "If only you had something to blackmail her with." what_with_melissa; Hint "If you haven't looked in her locker, do so now." what_with_melissa; Hint "Blackmail her with that." what_with_melissa; Hint "Hmm, looks like she'll just deny it. You need some proof the Percodan is hers" what_with_melissa; Hint "Maybe her doctor could help you out." what_with_melissa; Hint "You'll have to call him from Charles's office (see ~Charles wont let me use the phone!~." what_with_melissa; Hint "Once you have proof, you'll need some weight behind your threats." what_with_melissa; Hint "Perhaps someone who has certain authority in the club." what_with_melissa; Hint "Someone old, with power, and anachronistic views." what_with_melissa; Hint "Like Roger." what_with_melissa; Hint "Ask Roger about the pills." what_with_melissa; Hint "Now your threats have some back-up. Go to Melissa and blackmail her again." what_with_melissa; HintTopic what_now "What do I do now?"; Hint "Have you blackmailed Melissa?" what_now; Hint "She's not spiteful enough to have done it on her own. Perhaps someone put her up to it?" what_now; Hint "Someone she's looks up to, maybe even emulates." what_now; Hint "And since you've destroyed pretty much everyone else, that leaves..." what_now; Hint "Beverly." what_now; Hint "Ask Beverly about the photo." what_now; Hint "If she beats you to the banquet, undo and find a way to slow her down." what_now; Hint "Go to her locker and pour bleach on her clothes." what_now; HintTopic endgame "Endgame"; Hint "You might want to save before doing anything." endgame; Hint "The photo's so close you can almost taste, and touch, it." endgame; Hint "But Beverly won't let you. Once again, you need to create a scene." endgame; Hint "Accidental is the look we're going for." endgame; Hint "Try burning the menu." endgame; Hint "If the drinks aren't finished, you've lost the game. Undo." endgame; Hint "Wait till the drinks are done and then burn the menu." endgame; Hint "Now take the photo and burn it." endgame; Hint "Congratulations, you've saved your marriage!" endgame; !TEMPORARY DEFINITIONS Object label; Object toggle; Object menu_style; Object sup_bar; !NEW ATTRIBUTES Attribute smelled; Attribute contaminated; Attribute worker; Attribute burning; !CLASSES Class Room with name 'wall' 'walls' 'floor' 'ground', cant_go [; SmartCantGo(); ], has light; Class Stuff with has static scenery; Class NPC with has animate; !--------------------------------------------------------------------------- !UTILITY ROOM !--------------------------------------------------------------------------- Room utility_closet "Utility closet" with description [; if (self hasnt visited) "This is the first time you've been in this closet, and hopefully it will be the last. Keith assured you that no one ever comes down here. And now you can see why. The concrete walls are oppressively close, made more so by the smell of bleach and chemicals coming from a filthy shelf against the far wall. Various brooms clutter the room, displaying none of the pleasant tidiness characteristic of the rest of Pine Meadows. All this can be escaped through a door to the south."; else "The concrete walls of this closet are oppressively close, made more so by the smell of bleach and chemicals coming from a filthy shelf against the far wall. Various brooms clutter the room, displaying none of the pleasant tidiness characteristic of the rest of Pine Meadows. All this can be escaped through a door to the south."; ], south_attempted false, before [; Go: if (noun == s_obj or out_obj) { if (clothes has open && makeup. applied == false) { if (self.south_attempted == false) { self.south_attempted = true; "Just before you walk out, you catch a glimpse of yourself in the metal door. It isn't pretty. You hang back -- the last thing you need right now is to be seen in such a state."; } else "You really should fix yourself up before you leave."; } if (clothes has open) "As much as you'd like to parade your chest around in public, it just wouldn't go over too well in this place."; if (makeup.applied == false) "The last thing you need right now is to be seen without your makeup."; else return false; } else return false; Smell: if (noun == nothing) "The pungent smell of chlorine fills your nostrils, burning the delicate membranes inside."; else return false; Listen: if (noun == nothing) "The footsteps have gone."; else return false; ], initial [; if (self hasnt visited) "^The next few minutes are a blur. Keith juts his tongue down your throat, but, without you reciprocating, it feels like he's searching for cavities. The rhythms of your body no longer coincide with his. In fact, the only rhythm left in your body is the pounding of your heart, the warm throbbing of blood in your ears. He must notice your discomfort as soon he backs off and starts buttoning his shirt. ^^~Well, I gotta get back to the Pro Shop, babe,~ he says, grabbing his shades. ~Stop by later.~ With that, he takes off down the hall, leaving you, still stunned, slumped against the wall."; ], s_to access_hall, out_to access_hall, has ; Object shelf "shelf" utility_closet with name 'shelf' 'filthy' 'sagging' 'shelves' 'metal', description "A filthy metal shelf hangs on the far wall, sagging from the weight of the cleaning supplies it struggles to support.", before [; Search,Examine: if (bleach hasnt moved) { move bleach to utility_closet; Achieved(0); "A filthy metal shelf hangs on the far wall, sagging from the weight of the cleaning supplies it struggles to support. Although most of them are foreign to you, you do recognize one bottle as bleach."; } else return false; ], has supporter scenery static transparent; Stuff broom "brooms" utility_closet with name 'broom' 'mop' 'mops' 'brooms' 'wooden', description "Do people even still use these things? They're so dirty and utilitarian. Like those who use them, you suppose.", before [; Take,Push: "Brooms are for witches, and despite accusations to the contrary, you are not one."; ] has pluralname; Object bleach "bleach" with pname '.x' 'bottle' 'bleach' 'peroxide' 'chemical' 'chemical' 'clorox' 'chlorine' 'jug' 'of' 'old' 'javex', article "some", initial "The main source of that smell, an old bottle of bleach, rests on the filthy shelf at the back of the closet.", description "Although cleaning has never been your forte, judging by the label and its numerous warnings, you would say this bottle contained bleach.", before [; Empty: "You don't want to spill the bleach just anywhere."; EmptyT: <>; Open: "Better not, if it were to get on your clothes they would be ruined."; Drink: "Although it would certainly give you the shiny white smile every girl dreams of, you'd rather keep your lips for that conventional look."; Smell: "The pungent smell of chlorine fills your nostrils, burning the delicate membranes inside."; ], has ; Stuff cleaning_supplies "cleaning supplies" shelf with pname '.x' 'bleach' 'cleaning' 'supplies' 'javex' 'chemicals', description "Just some assorted bottles of chemicals that people use to fight off the ever-approaching threat of dirtiness.", before [; Take: "Nah, let the cleaning staff handle that."; Smell: "The pungent smell of chlorine fills your nostrils, burning the delicate membranes inside."; Examine,Search: if (bleach hasnt moved) { move bleach to utility_closet; Achieved(0); "Just some assorted bottles of chemicals that people use to fight off the ever-approaching threat of dirtiness. While most of the labels could be written in Greek as far as you're concerned, one stands out to you as bleach."; } else return false; ], has pluralname; Stuff walls "walls" with article "some", name 'walls' 'wall' 'concrete', found_in utility_closet access_hall, description "There's nothing special about the walls. Except that they're unadorned concrete, a rarity in Pine Meadows."; Stuff utility_door "metal door" with name 'door' 'metal' 'doorway', description "You can just barely make out your reflection in it.", found_in utility_closet access_hall, before [; Open: "It's already open."; Close: "There's no need to close the door."; Enter: if (player in utility_closet) <>; else <>; ], has lockable; Object clothes "ensemble" with pname '.x' 'my' '.x' 'your' 'clothes' 'clothing' 'skirt' 'blouse' 'shoes' 'ensemble' 'outfit' 'couture' 'haute' 'pumps' 'silk' 'shirt' 'Prada' 'Yves', article "your", description [; if (clothes has open) "Nothing but the best for you. Pumps from Prada, skirt by Yves Saint Laurent, a gorgeous silk blouse from the much-coveted Vera Wang collection which is currently hanging about your shoulders, exposing your three thousand dollar chest."; else { if (behind_club hasnt visited) "Nothing but the best for you. Pumps from Prada, skirt by Yves Saint Laurent, a gorgeous silk blouse from the much-coveted Vera Wang collection. Too bad it'll all have to be replaced in two weeks."; else "It's tragic really, the damage done by the fall. Oh well, these clothes were two weeks old; it's about time they were replaced."; } ], before [; Receive: if (noun == bleach or wine) "That would ruin your clothes!"; else return false; Search: "You find something of interest. Well, to men at least."; Disrobe,Open: if (location == office && charles in office) "Last time you tried that you spent the night in a Connecticut holding cell."; if (location == whirlpool && scott.blackmailed == false) "~Shit, girl,~ the young man says, averting his eyes, ~no one wants to see that.~ ^^Phah. Try telling that to Keith or Frank."; if (location == whirlpool && scott.blackmailed == true) "~Please, girl,~ Scott pleads, ~it's bad enough I have to see Charles's breasts.~"; if (location == pro_shop) "~Ah,~ Keith says, smiling. ~Have you finally come around about the counter?~ ^^On second thought, maybe this isn't such a good idea."; if (location == driving_range) { (deadflag = 3); "Roger intercepts your advance with a wrinkled hand. ~Don't try your charms on me. Consider your membership revoked.~ ^^Getting kicked out isn't so bad, it's the fact that everyone knows why that is. After all, undressing before an eighty-four year-old is hardly considered genteel, unless of course you're in the will."; } if (location == garden && melissa in garden) "~Hey,~ Melissa protests, ~I don't know what you heard, but that time in Bryn Mawr was a one time thing!~"; else "That's gotten you in to enough trouble today."; Drop,ThrowAt: "You wouldn't be caught dead without your clothes."; Tie: if (self has open) { give self ~open; "You hastily button up your blouse, careful not to break a nail."; } else "Your blouse is already buttoned."; ], after [; Close: "You hastily button up your blouse, careful not to break a nail."; ], has clothing open openable; Object watch "watch" with article "your", name 'platinum' 'diamond' 'diamonds' 'watch' 'wrist' 'time' 'arm' 'forearm' 'rolex' 'cartier', examined false, before [; Drop,ThrowAt,Disrobe: "Even though it does remind you of Frank, you'd still rather hold on to it."; Listen: "Ticking or beeps would be tacky; this watch does neither."; ], description [; if (self.examined == false) { self.examined = true; "Frank felt so guilty after spending a month in Tokyo that he bought you this. Honestly, you enjoyed the time apart, but that didn't stop you from playing up the guilt. So far, that little ploy has gotten you a mink stole, a diamond necklace, and a Bentley, but this watch takes the cake. Whoever said that flagrant displays of wealth were tacky must not have seen this. Exquisitely crafted from platinum and diamonds, the only downfall this watch has is that the gems tend to obstruct your view of its face, making it somewhat difficult to read the actual time. Still, it's a small price to pay to be seen sporting such a piece."; } else { if (banquet has visited) "Looking closely at your watch, you see that it is just past six-thirty."; if (melissa.blackmailed == true) "Looking closely at your watch, you see that it is about ten past six."; if (pro_shop has visited) "Looking closely at your watch, you see that it is almost six."; if (behind_club has visited) "Looking closely at your watch, you see that it is about half past five."; if (spa has visited) "Looking closely at your watch, you see that it is sometime after five."; if (dining_golf has visited) "Looking closely at your watch, you see that it is just after five."; if (dining_golf hasnt visited) "Looking closely at your watch, you see that it is sometime before five."; } ], has clothing; Object purse "Louis Vuitton bag" utility_closet with article "your", pname '.x' 'your' '.x' 'my' 'Louis' 'vuitton' 'satchel' 'purse' 'bag' 'hand' 'handbag', initial "Tossed to the side in the throes of passion, your bag, a fabulous Louis Vuitton original, lays on the ground.", description "A Louis Vuitton original, your purse can practically carry anything, which comes in handy but is absolute hell when you have to find your keys.", react_before [; Take: if (wine in player) { remove wine; move wine to player; return false; } else return false; ], before [; Receive: if (noun == wine) { remove wine; move wine to player; "Red wine would ruin your bag."; } else return false; ], has container openable open; Object makeup "make-up" purse with article "your", pname '.x' 'up' 'make-up' 'makeup' 'eyeliner' 'lipstick' 'lipliner' 'blush' 'eyeshadow' 'make', description "Survival gear for the modern woman; you never leave home without it.", applied false, before [; Eat: "What are you, a two-year-old?"; PutOn: if (second == player_body) { if (self.applied == false) { self.applied = true; "Using your compact, you carefully apply your makeup, adding a little more powder than usual to your cheeks to hide the flush."; } else "Sometimes less is more."; } else return false; Wear,Tie: if (self.applied == false) { self.applied = true; "Using your compact, you carefully apply your makeup, adding a little more powder than usual to your cheeks to hide the flush."; } else "Sometimes less is more."; Drop,ThrowAt: "You wouldn't be caught dead without your makeup."; ], has clothing; Object tickets "pair of banquet tickets" purse with article "a", name 'banquet' 'tickets' 'passes' 'ticket' 'pass' 'of' 'pair', description "Knowing that the banquet would be the gala event of the season, you bought these months ago. They have today's date on them.", before [; Drop,ThrowAt,PutOn,Insert: "You better hold on to these. You couldn't show your face around here if you didn't show up to support the latest-wretched-cause-of-the-month."; ], has pluralname; !--------------------------------------------------------------------------- !ACCESS HALL !--------------------------------------------------------------------------- Room access_hall "Access hall" with description [; if (self hasnt visited) "A short, dimly lit hallway between the utility closet to the north and the stairs to the rest of the club leading south and up. While the dominant smell here is, as in the closet, chlorine, some other fragrance, a sweeter one, is mingled with it."; else "A short, dimly lit hallway between the utility closet to the north and the stairs to the rest of the club leading south and up. ^^A faint smell lingers in the hall."; ], before [; Smell: if (noun == nothing or self) { if (melissa has smelled) { melissa.melissa_suspected = true; Achieved(17); "Turning up your nose ever so slightly, you sniff the air. Although it is almost entirely wiped out by the smell of chlorine, you definitely detect the hint of something. Chanel #5, same as Melissa's scent."; } else { if (access_hall hasnt smelled) { give access_hall smelled; print_ret "Turning up your nose ever so slightly, you sniff the air. Although it is almost entirely wiped out by the smell of chlorine, you definitely detect the hint of something. Chanel #5? Dior Addict Eau Fraiche? Something. Whoever it was now has you in quite an awkward position, and likely a picture of the same. If only you had something to put you back on top."; } else "Turning up your nose ever so slightly, you sniff the air. Although it is almost entirely wiped out by the smell of chlorine, you definitely detect the hint of something. Chanel #5? Dior Addict Eau Fraiche? Something. Whoever was spying on you sure has expensive tastes. Not that that tells you much in Pine Meadows."; } } else return false; ], each_turn [; if (access_hall has smelled && melissa has smelled) melissa.melissa_suspected = true; else return false; ], after [; Go: if (noun == n_obj or d_obj) print "The stairs turn sharply north as you descend.^"; return false; ], n_to utility_closet, s_to west_hall, u_to west_hall, ; Object access_stairs_u "stairs" with name 'stairs' 'steps' 'access' 'stairway' 'stairwell' 'dingy' 'concrete', description "A dingy access stairwell leads up from the access hall to the western hall.", before [; Climb,Enter: print "Although your heels are over three inches high, you easily enter and navigate the narrow steps."; if (location == access_hall) PlayerTo(west_hall); return true; ], found_in access_hall, has scenery static enterable; !--------------------------------------------------------------------------- !WEST HALL !--------------------------------------------------------------------------- Room west_hall "Western wing" with description "This is the newest addition to Pine Meadows, built to house the new spa to the west. In stark contrast to the well-lit, tan stucco walls, a dingy concrete stairwell descends to south. To the north, a rather uninspired doorway leads to the office of the club manager. The hall itself extends to the east.", each_turn [; if (self has visited) move getting_in_office to all_hints; else return true; ], before [; Go: if (noun == s_obj) { print "The stairs turn sharply north as you descend.^"; return false; } if(noun == n_obj && charles_door hasnt locked or open) { print "You open the door and walk in.^"; give charles_door open; PlayerTo(office); return true; } if(noun == n_obj && charles_door has locked) { if (charles_key in player && office hasnt visited) { print "You unlock the door and walk in, checking first to see if you're alone.^"; give charles_door open; give charles_door ~locked; PlayerTo(office); return true; } else return false; } else return false; ], after [; Go: if (noun == s_obj or u_obj && behind_club hasnt visited) { print "The stairs turn sharply north as you ascend.^"; return false; } else return false; ], d_to access_hall, s_to access_hall, w_to spa_lobby, e_to centre_hall, n_to charles_door, has ; Object access_stairs_d "stairs" with name 'stairs' 'steps' 'access' 'stairway' 'stairwell' 'dingy' 'concrete', description "A dingy access stairwell leads up from the access hall to the western hall.", before [; Climb,Enter: print "Although your heels are over three inches high, you easily enter and navigate the narrow steps."; if (location == west_hall) PlayerTo(access_hall); return true; ], found_in west_hall, has scenery static enterable; !--------------------------------------------------------------------------- !SPA LOBBY !--------------------------------------------------------------------------- Room spa_lobby "Spa lobby" with each_turn [; if (self has visited) move reading_log to all_hints; else return true; ], description [; if (self hasnt visited) "Pine Meadows's most recent addition, the spa was built during the natural beauty craze of the late nineties, when holistic was in and plastic surgery was out. Frankly, you never could understand why it was so popular. The smell of damp seaweed and aromatherapy float in from the south, where the actual spa lies. To the north and west, with a functionalism that seems out of place next to the distinctively modern architecture of the spa, are the women's and men's change facilities, respectively. ^^The crowning achievement of some hack designer, a desk, dominates the room, trying to give some sense of purpose to the poor soul whose job it is to man it."; else "Pine Meadows's most recent addition, the spa was built during the natural beauty craze of the late nineties, when holistic was in and plastic surgery was out. Frankly, you never could understand why it was so popular. The smell of damp seaweed and aromatherapy float in from the south, where the actual spa lies. To the north and west, with a functionalism that seems out of place next to the distinctively modern architecture of the spa, are the women's and men's change facilities, respectively. ^^The crowning achievement of some hack designer, a desk, dominates the room, trying to give some sense of purpose to the poor soul whose job it is to man it."; ], before [ w; Smell: if (noun == nothing) "Oh that's a nice blend: kelp and sandalwood. Really now, if you wanted to vomit you would just make love to Frank."; else return false; Consult: if (noun == nothing) { wn = consult_from; w = NextWord(); switch (w) { 'johnathan': "Melissa's husband is rarely here; he doesn't seem to have a locker."; 'Tyler', 'Aidan', 'Madison': "Children aren't allowed at the club."; 'Julia', 'Hawthorne', 'self', 'me', 'myself': "While you already know your locker number and combination by heart, you think it might be fun to look it up. Yep, #11, combination 38-25-34, same as always. What's this? ~Problem skin, cream and oats treatment recommended.~ Come on, one botched botox injection three years ago, you'd think they'd let it drop."; 'Cynthia', 'Fordham': move cynthia_locker to women_change; "#18, combination 23-44-46 (if only her measurements were the same)."; 'Charles', 'Burton': list.charles_consulted = true; move charles_locker to men_change; "Here it is. #32, combination 62-34-42. ~Standing appointment each day from three o'clock to five-thirty. May be used by Mr. Burton or Scott.~"; 'Roger', 'Knowles': move rogers_locker to men_change; "Here it is. #2, combination 87-54-63. That #2 must mean he got one of the first lockers to be issued by the club."; 'Frank', 'husband': "Since Frank is rarely at the club, he never bothered to get a locker."; 'Melissa', 'Stratham', 'mel': move melissa_locker to women_change; "#67, combination 33-73-42. ~Problem facelift, avocado cream mask recommended.~ Hah! So much for that summer in Napa."; 'Cissy', 'Cecilia', 'Winnecott': "Cissy doesn't seem to use the spa facilities."; 'Beverly', 'Winters', 'bev': move beverly_locker to women_change; "Here it is. #3, combination 16-43-81. ~Anti-aging treatment, twice a week. Appointment to be verified each Monday.~"; 'Keith': "The help don't get lockers."; 'Williams', 'ms': "~Brittle hair, only use 30 millilitres of peroxide each treatment.~ She doesn't seem to have a locker."; 'Scott': "Scott doesn't have a locker."; default: "That name doesn't seem to be on the list."; } } else return false; ], e_to west_hall, s_to spa, n_to women_change, w_to men_change, has ; Object desk "reception desk" spa_lobby with article "the", name 'desk' 'counter' 'chrome' 'steel' 'mahogany', description "A stainless steel and mahogany monstrosity, the desk reflects the gentle light coming in through the skylight. Surprisingly, or maybe not seeing as the spa's popularity has fallen with plastic surgery's resurgence, there is no computer on the desk; its job instead being done by a simple log book.", before [; Enter: "And be mistaken for the help? No thank you."; ], has static scenery supporter; Object list "client list" desk with article "the", name 'list' 'manifest' 'client' 'paper' 'names' 'log' 'book' 'information', description "The client list for Pine Meadows Spa, it contains the names and locker information, as well as ~beauty profiles,~ of practically every full member, part member, and former member of the club. If you want to find anyone in particular, you'll have to look them up individually.", charles_consulted false, before [ w; Take: "That belongs on the desk."; Consult: wn = consult_from; w = NextWord(); switch (w) { 'johnathan': "Melissa's husband is rarely here; he doesn't seem to have a locker."; 'Tyler', 'Aidan', 'Madison': "Children aren't allowed at the club."; 'Julia', 'Hawthorne', 'self', 'me', 'myself': "While you already know your locker number and combination by heart, you think it might be fun to look it up. Yep, #11, combination 38-25-34, same as always. What's this? ~Problem skin, cream and oats treatment recommended.~ Come on, one botched botox injection three years ago, you'd think they'd let it drop."; 'Cynthia', 'Fordham': move cynthia_locker to women_change; "#18, combination 23-44-46 (if only her measurements were the same)."; 'Charles', 'Burton': self.charles_consulted = true; move charles_locker to men_change; "Here it is. #32, combination 62-34-42. ~Standing appointment each day from three o'clock to five-thirty. Permission from client to be used by Scott.~"; 'Roger', 'Knowles': move rogers_locker to men_change; "Here it is. #2, combination 87-54-63. That #2 must mean he got one of the first lockers to be issued by the club."; 'Frank', 'husband': "Since Frank is rarely at the club, he never bothered to get a locker."; 'Melissa', 'Stratham', 'mel': move melissa_locker to women_change; "#67, combination 33-73-42. ~Problem facelift, avocado cream mask recommended.~ Hah! So much for that summer in Napa."; 'Cissy', 'Cecilia', 'Winnecott': "Cissy doesn't seem to use the spa facilities."; 'Beverly', 'Winters', 'bev': move beverly_locker to women_change; "Here it is. #3, combination 16-43-81. ~Anti-aging treatment, twice a week. Appointment to be verified each Monday.~"; 'Keith': "The help don't get lockers."; 'Williams', 'ms': "~Brittle hair, only use 30 millilitres of peroxide each treatment.~ She doesn't seem to have a locker."; 'Scott': "Scott doesn't have a locker."; default: "That name doesn't seem to be on the list."; } ], has static scenery supporter; Stuff skylight "skylight" spa_lobby with name 'light' 'sky' 'skylight' 'window', description "The only source of light in the room, a panoramic skylight dominates the ceiling. Good thing too, as artificial light is not a friend to the people that frequent this place.", has ; Stuff price_list "price list" spa_lobby with pname 'list' 'price' 'sign' 'services', description "Emperor kelp wrap, $120; avocado cream mask, $80; fugutoxin treatment, $160; sounds like the menu the last time you went out for sushi, only slightly less expensive.", has ; NPC receptionist "receptionist" spa_lobby with name 'secretary' 'receptionist' 'woman' 'hairdresser', initial [; if (spa_lobby hasnt visited) "Desperately trying to look important, a receptionist peers down a hawkish nose at a log book, scribbling in corrections at a furious speed."; else print (string) random("Desperately trying to look important, the receptionist peers down a hawkish nose at a log book, scribbling in corrections at a furious speed.^", "The receptionist glances around and sighs.^", "Looking east and not seeing a flock of members coming to use the spa, the receptionist sighs and drops her shoulders a little.^"); ], description "Tall, thin, and oh so Madison Avenue, the spa receptionist serves as a living advertisement for her business's services. And like most advertisements, she grossly misrepresents the truth. Her looks come from the tried and true: surgery, make-up, and anorexia. Not the herbal wraps and mud baths she pushes on her customers.", before [; Smell: "Her scent is overpowered by the stench wafting in from the spa."; ], seen_west_attempted false, react_before [; Consult: "~I'm sorry Mrs. Hawthorne, but that is confidential,~ she says, ~If you've forgotten your combination you can ask me.~"; Go: if (noun == w_obj && self.seen_west_attempted == false) { self.seen_west_attempted = true; "~Umm, Mrs. Hawthorne?~ the receptionist says, giving you an odd look. ~That's the men's change room.~ ^^You mumble something about allergies and come back to the lobby."; } if (noun == w_obj && self.seen_west_attempted == true) "Not with the receptionist watching."; if (noun == s_obj && cynthia.order_heard == false) "~I'm sorry, Mrs. Hawthorne, but there is a pilates class until five, you'll have to wait until then,~ the receptionist says."; ], life [; Order: "~I'm sorry, Mrs. Hawthorne, but I'm really very busy,~ she says as she doodles in the log book."; Kiss: "She's not your type. You prefer someone with a little more meat on their bones (not to mention somewhere else)."; Show,Give: if (noun == cucumber) "~Oh that would be perfect for Ms. Williams facial. We ran out of out supply ages ago.~"; if (noun == bleach) "She recoils from the sight of the bottle. ~That is far too harsh for our clients' hair. We only use a chlorine-based, lightening product.~ ^^In other words, bleach."; if (noun == salad) "~I couldn't possibly. Too fattening,~ she says, waving the salad away with the bones she calls fingers."; else "You better watch out: people knowing about you and Keith is enough for them to think you're a Democrat. If you start giving things to the working class, it'll only look worse."; Ask,Tell: switch (second) { 'cell', 'cellular', 'mobile', 'phone', 'telephone', 'calling', 'phoning': "~Would you happen to have a phone that I could use?~ you ask as politely as you can stomach. ^^~I'm sorry, Mrs. Hawthorne, but the spa has no phone: the ringing would disturb our clients. You might check in the office, though.~ ^^What clients?"; 'music', 'sounds', 'of', 'nature', 'CD': "~What's with that music in the spa?~ you ask, rather perplexed as to how it could possibly be of use. ^^~It helps our clients relax.~ ^^If Ms. Williams gets any more relaxed, she'd be dead."; 'steam', 'rocks', 'rock', 'stone', 'stones': "~Isn't that steam in the sauna a little much?~ ^^~No, it's wonderful for driving out impurities.~ ^^And people, you imagine."; 'women^s', 'change', 'rooms', 'facilities', 'room', 'changing': "~Could you direct me to the change facilities?~ ^^She points north wordlessly."; 'desk', 'mahogany', 'chrome', 'steel', 'monstrosity': "~Your desk is lovely,~ you say, almost choking on your words. ^^~Isn't it simply magnificent? It's a Fergmen.~"; 'aromatherapy', 'scent', 'smell', 'sandalwood': "Crinkling your nose, you ask: ~Are you sure kelp and sandalwood is the most soothing blend to have in a spa?~ ^^~Well, Ms. Williams seems to enjoy it.~"; 'holistic', 'natural': "~Tell me more about your holistic treatments,~ you say, yawning. ^^~Here at the Pine Meadows Spa we treat the whole person, not just the outside.~ ^^Funny, you haven't seen any advertisements about sit-ups for the soul or personality exfoliators."; 'herbal', 'wraps', 'wrap', 'mud', 'bath', 'baths': "~So, are these wraps and baths any good?~ you ask incredulously. ^^~They're an absolutely wonderful treatment. 100% natural. Far better than plastic surgery,~ she says, scratching delicately at a plastic nose."; 'list', 'manifest', 'client', 'paper', 'names', 'log', 'book': "~What's with that book?~ ^^~That's the spa's log book. It contains the locker combinations and beauty profiles of members.~"; 'time', 'watch', 'clock': if (dining_golf hasnt visited) "~Do you happen to know the time?~ ^^~It's a little before five.~"; else "~Do you happen to know the time?~ ^^~It's just after five."; 'Pine', 'Meadows', 'club', 'job', 'work', 'working': "~So, how do you like Pine Meadows?~ ^^~It's a lovely place to work. Everyone here is so nice.~ ^^God, all this holistic crap must mess with her perception."; 'avocado', 'cream', 'mask', 'masque': "~Tell me more about this avocado cream mask.~ ^^~We mix eighteen parts avocado with seven parts yak butter and spread it on for three hours.~ ^^Sounds delicious."; 'fugotoxin', 'treatment', 'fugu', 'fugo', 'toxins', 'toxin', 'fugutoxin': "~How does this fugu treatment work?~ you ask, skeptical. ^^~Well, we squeeze the fugu until all the toxins are in the spines. The spines are then placed wherever there is pain until it miraculously fades away.~ ^^God, you have trouble imagining people putting such poisons in their bodies. Oh yeah, you have a botox treatment later this week."; 'emperor', 'kelp', 'wrap', 'seaweed', 'carrageenan': "~Tell me about this emperor kelp wrap.~ ^^The receptionist perks up when she sees your interest. ~Well first we heat the kelp to one-hundred and ten degrees, then you are lathered down with carrageenan, finally you are wrapped and placed in the steam room for seventy-five minutes. When you emerge you'll be a whole new person.~ ^^That, or a butterfly."; 'spa', 'services', 'massage', 'makeover', 'manicure', 'pedicure', 'appointment': "~What services does your spa offer?~ ^^Barely looking up, the receptionist points to a sign on the far wall. Please, it's Capelli D'Oro or nothing."; 'combination', 'Julia', 'Hawthorne', 'locker', 'me', 'my': "~Could you please tell me my locker combination?~ you ask, trying to be as pleasant as possible. ^^~One moment, Mrs. Hawthorne,~ she says, flipping through the log book. ~Yes, it's right here. Locker #11, combination 38-25-34.~"; 'Charles', 'Whirlpool', 'Burton', 'registrar': "~Do you know where Charles is?~ ^^~Mr. Burton is currently enjoying the whirlpool at the moment. He's asked not to be disturbed.~ ^^Great, your club dues at work."; 'Williams', 'female', 'patron', 'ms', 'dye', 'hairdresser', 'hairdressing', 'coloring', 'colouring', 'dyeing': "~Shouldn't you start doing Ms. Williams's dye job?~ Hey, if you don't keep the help in line, who will? ^^~I'll get to her colouring just as soon as I finish this,~ the receptionist says, although you can't imagine what is so important. She probably just enjoys making her squirm."; 'Cynthia', 'Fordham', 'Frank', 'Beverly', 'Winters', 'Melissa', 'Stratham', 'Cissy', 'Winnecott', 'Cecilia', 'bev', 'mel', 'roger', 'knowles': "You ask about one of the spa patrons. ^^~I'm sorry Mrs. Hawthorne, but the stylist-client relationship is one of strictest confidence.~ ^^True, they are the priests and therapists of the new millenium."; 'Pilates', 'Exercise': "~Isn't pilates a little two-thousand-two?~ you ask, raising an eyebrow. ^^~But, it's wonderful for fighting off the ravages of age.~ ^^Please, you'll take a facelift over physical exertion and day."; 'yoga', 'jazzercise': "~Do you offer yoga or jazzercise here?~ you ask, wondering just how tacky this spa is. ^^~Please, Mrs. Hawthorne. What is this, the eighties?~"; 'receptionist', 'herself', 'secretary', 'self', 'woman': "~How are you today?~ you ask, trying to be as nice as possible. ^^~I'm fine. A little tired, but you know how it is.~ ^^Is she actually suggesting you've ever looked tired? It's definitely time to see Dr. Rickers again."; 'busy', 'being': "~You say you're busy?~ ^^~I'm sorry, Mrs. Hawthorne, but I am too busy to answer a question about being too busy.~"; 'surgery', 'plastic', 'nose', 'anorexia', 'make-up', 'makeup', 'make', 'up': "You ask the receptionist about one of your preferred beauty methods. ^^~I would never use that; I prefer the natural approach,~ she says, scratching her plastic chin with a frail hand and leaving a groove in her concealer."; } "~I'm really very sorry Mrs. Hawthorne, but I am incredibly busy,~ she says in a questionably trendy accent."; ], has female animate worker; Object spa_far "spa" spa_lobby with name 'spa' 'chair' 'pilates' 'exercise' 'exercisers', description [; if (dining_golf hasnt visited) "The spa is filled with middle-aged women desperately trying to sweat the old out."; else "You have a clear view of a hairdresser's chair from here."; ], before [; Smell,Examine: return false; default: "You'll have to get closer."; ], has scenery; !--------------------------------------------------------------------------- !SPA !--------------------------------------------------------------------------- Room spa "Spa" with name 'spa', description [; if (self hasnt visited) "Just two years ago, this place would have been packed at this time of day. Now hardly anyone comes in here, and you can hardly blame them. It feels more like some hellish jungle than a spa. The smell is subtle but gnaws at you nonetheless. A bed of rocks, heated to drive up sweat and drive out impurities, gives the room a heavy, fevered feeling, making you wonder why they even bothered considering there is already a whirlpool to the south. For those club members who have given up on trying to hide the fact that they dye their hair, a hairdresser's station sits to one side, from which you have a clear view of the lobby and its desk to the north. And all this set to some ~Sounds of Nature~ CD. Already, your hair is going limp from all the humidity."; else "Just two years ago, this place would have been packed at this time of day. Now hardly anyone comes in here, and you can hardly blame them. It feels more like some hellish jungle than a spa. The smell is subtle but gnaws at you nonetheless. A bed of rocks, heated to drive up sweat and drive out impurities, gives the room a heavy, fevered feeling, making you wonder why they even bothered considering there is already a whirlpool to the south. For those club members who have given up on trying to hide the fact that they dye their hair, a hairdresser's station sits to one side, from which you have a clear view of the lobby and its desk to the north. And all this set to some ~Sounds of Nature~ CD."; ], before [; Go: if (noun == s_obj) { if (behind_club hasnt visited) return false; else { if (whirlpool_door hasnt open) { give whirlpool_door open; print "You open the door and walk in.^"; return false; } else return false; } } else return false; Smell: if (noun == nothing) "Oh that's a nice blend: kelp and sandalwood. Really now, if you wanted to vomit you would just make love to Frank."; else return false; Listen: if (noun == nothing) "Ugh, cicadas. Yeah, nothing gets someone in a nice, relaxed mood like hearing what sounds like the eighth plague."; else return false; ], each_turn [; if (dye has contaminated && steam notin spa && female_patron in spa) { Achieved(2); move loose_hairs to spa; remove receptionist; remove female_patron; remove dye; "^Just then, the receptionist, who apparently doubles as the hairdresser with the spa's drop in popularity, comes in. ~Ready for your colouring, Ms. Williams?~ ^^~Of course I am, I've been waiting for hours.~ Her voice grates on you as it scrapes out past her ancient vocal cords. ^^~I am sorry about that, it's just we're so busy, and--.~ ^^~Just get on with it, you don't get paid to talk.~ ^^With that, the hairdresser goes about mixing the dye with some peroxide she brought with her (in addition to the liberal dousing of bleach you put in there) and puts it in Ms. Williams already fragile hair. For a few minutes it seems as though the bleach has no effect, but then, just as you're about the leave, you notice a few strands coming out in the hairdresser's hands until finally it starts coming out in goopy clumps. ^^~What's going on up there?~ ^^~Uh, ah, I don't know. I used the same proportions as always.~ ^^~You idiot!~ the old crone shrieks, fishing a hand through what remains of her hair. ~My hair! My hair!~ ^^The hairdresser apologizes profusely, leading Ms. Williams out with a towel on her head."; } else return false; ], n_to spa_lobby, s_to whirlpool_door, has ; Object desk_far "desk" spa with article "the", name 'desk' 'reception' 'counter' 'receptionist^s' 'secretary^s' 'chrome', description [; if (receptionist in spa_lobby) "From here you can easily see the receptionist at the desk, but now, without you there, she's gone on to filing her nails."; else "No less monstrous from back here, the desk sits empty in the lobby."; ], has scenery; Object sink "sink" spa with name 'sink' 'basin' 'hairdresser^s' 'station' 'chair' 'seat' 'dryer' 'brim', description [; if (dye in sink) "An all-in-one sink, chair, and hair dryer, the hairdresser's station is a testament to the fact that the spa doesn't service enough people to get the standard banks of equipment that more profitable ones do. While in itself an adequate piece of equipment, you would rather have one machine do each job and do it right. ^^On the brim of the sink rests a bottle of dye."; else "An all-in-one sink, chair, and hair dryer, the hairdresser's station is a testament to the fact that the spa doesn't service enough people to get the standard banks of equipment that more profitable ones do. While in itself an adequate piece of equipment, you would rather have one machine do each job and do it right."; ], has scenery supporter; Object dye "dye" sink with article "some", pname '.x' 'bottle' 'dye' 'colouring' 'coloring' 'color' 'colour' 'of', description "You would die before being caught putting this in your hair. As to whether you would actually put it in or not, only your stylist knows for sure.", before [; Open: "The bottle is perpetually open."; Close: "It's not that kind of bottle."; Take: "You would die before being caught putting this in your hair. As to whether you would actually put it in or not, only your stylist knows for sure."; Receive: if (noun == bleach && dye hasnt contaminated) { if (steam in spa) { give dye contaminated; "Concealed by the steam, you make your way over to the sink and carefully pour some bleach in to the dye."; } if (cucumber in female_patron) { give dye contaminated; "With Ms. Williams's eyes covered by the cucumber slices, you make your way over to the sink and carefully pour some bleach in to the dye."; } } if (noun == bleach && dye has contaminated) "There's enough bleach in there already"; else "That would have little effect."; ], has scenery container supporter; Object rocks "bed of rocks" spa with name 'bed' 'rocks' 'rock' 'stone' 'stones' 'fire' 'of', description "Heated by some unknown source, the rocks cause the air above them to shimmer like a mirage. On the floor beside the bed of rocks is a bucket of water.", before [; Receive: if (noun == film) { remove film; "The film shrivels and wrinkles before erupting into flame."; } else "You don't want to destroy that."; Touch,Take,Push,Pull: "As you reach towards the rocks, you realize that it would be folly to touch them. That they cause the air above to shimmer is evidence enough of their heat."; ], has scenery supporter burning; Object bucket "bucket of water" spa with name 'bucket' 'water' 'ladle' 'pail' 'oak' 'panels' 'of', description "Trying to capture some of the supposed ambience of colonial America, this bucket is constructed of well-fitted oak panels. Hooked on to the side of the bucket is a ladle.", before [; Receive: "You don't want to put anything in the bucket."; Take: "You don't want to carry the ladle or bucket all over the club."; Drink: "You only drink Perrier."; Transfer,EmptyT,PutOn,Insert: if (second == rocks) { move steam to spa; "You plunge the ladle in to the bucket and pour the water on to the rocks. A loud hiss ensues as a cloud of steam fills the room."; } else "You don't want to get that wet."; ], react_before [; SignUp: "If you wanted to lie in a pool of someone else's filth, you'd have a bath with Frank and make his day."; ], has scenery; Object steam "cloud of steam" with name 'cloud' 'steam' 'mist' 'of', initial "The jungle image is now complete as steam wraps its way around the plants, partially obscuring your vision.", description "Twisting about throat and nose, the steam is almost suffocating in its warmth and thickness, partially obscuring your view of the room.", before [; Examine: return false; Smell: "The steam chokes at your nose."; default: "It's just some steam."; ], each_turn [; StartTimer(self,2); ], time_left, time_out [; if (location == spa) { remove self; "As fast as it appeared, the steam dissipates, allowing you to see clearly again."; } else remove self; ], has static; Object whirlpool_door with article "the", name 'sauna' 'door' 'cedar' 'sign' 'up' 'sheet' 'spa' 'to' 'whirlpool' 'the', short_name [; if (location == spa) print "door to the whirlpool"; else print "door to the spa"; return true; ], description [; if (location == spa && charles notin office) "A heavy cedar door blocks the way to the whirlpool. There is no window in it, probably a good thing as the last thing you want to see is some of the older members of the club wallowing in a pool of their own sweat. Speaking of which, the sign-up sheet currently says that Charles Burton is inside and will be for most of the afternoon. You suppress an involuntary shudder, thinking of the jets pounding water against Charles's sagging skin."; if (location == spa && charles in office) "A heavy cedar door blocks the way to the whirlpool. There is no window in it, probably a good thing as the last thing you want to see is some of the older members of the club wallowing in a pool of their own sweat. Charles's name is still on the sign-up list."; else "The door leads to the spa."; ], before [; Open: if (behind_club hasnt visited) "The whirlpool is currently occupied. Besides, if you wanted to lie in a pool of someone else's filth, you'd have a bath with Frank and make his day."; else return false; Knock: if (behind_club hasnt visited) "~Wait your turn!~ Charles, sounding a little panicked, calls out."; else "~Someone's in here,~ a young man calls out irritably."; Write: "If you wanted to lie in a pool of someone else's filth, you'd have a bath with Frank and make his day."; ], react_before [; Listen: if (noun == self && behind_club hasnt visited) "Above the roar of the water and the excessively sappy ~Sounds of Nature~ CD, you think you can hear the thumps and moans of ecstasy. Guess you're not the only indulging in a little afternoon delight today!"; if (noun == self && behind_club has visited) "All you hear is the bubbling of the whirlpool behind the door."; return false; ], found_in spa whirlpool, door_dir [; if (location == spa) return s_to; else return n_to; ], door_to [; if (location == spa) return whirlpool; else return spa; ], has scenery door openable lockable; Stuff mud_bowl "mud" spa with article "some", name 'mud' 'dirt' 'bacteria' 'microbes' 'face', description "You spend a good deal of your time trying to avoid dirt, why some people would want to wear it is unfathomable.", before [; Take,Touch: "You feel dirty enough just looking at it."; ], has ; Stuff spa_plants "plants" spa with name 'plants' 'ficus' 'jade' 'leaves' 'branch' 'branches', description "These plants have seen better days. All the steam from the whirlpool and all the heat from the rocks have taken their toll. It's probably for the best. When will people learn that nature belongs outside?", before [; Take,Attack: "While you enjoy senseless destruction of nature as much as the next Republican, now is not the time."; ], has pluralname; NPC female_patron "Ms. Williams" spa with name 'female' 'patron' 'woman' 'Ms' 'Williams' 'crow^s' 'feet', initial "Ms. Williams, face covered in mud, sits at the hairdresser's station waiting for her weekly colouring.", description [; if (cucumber notin self) "A fearsome sight, Ms. Williams has opted for a peculiar strategy in fighting the ravages of time: none. When she smiles, a rare event, the crow's feet (although ostrich might be more fitting by comparison) lace across her face like webs. If it weren't for her weekly dye job you might think she were over a hundred."; else "A fearsome sight, Ms. Williams has opted for a peculiar strategy in fighting the ravages of time: none. When she smiles, a rare event, the crow's feet (although ostrich might be more fitting by comparison) lace across her face like webs. If it weren't for her weekly dye job you might think she were over a hundred. ^^Like two silver dollars over the eyes of a corpse, a pair of cucumber slices rests on Ms. Williams's face."; ], contaminate_attempted false, before [; Smell: "Mothballs and ribbon candy. Guess even money can't ward off the smell of the elderly."; Receive: if (noun == bleach) "Perhaps a more subtle way."; if (noun == cucumber) { move noun to self; "~Oh thank you, Julia,~ Ms. Williams croons. ~These will be perfect for my eyes. That idiot at the desk doesn't know half as much about beauty as you,~ she says, laying the slices on her eyes."; } else return false; ], react_before [; Insert,PutOn: if (noun == bleach && second == dye) { if (cucumber notin self && steam notin spa && self.contaminate_attempted == false) { self.contaminate_attempted = true; "~Umm, Julia,~ Ms. Williams says, ~I know you know your way around beauty supplies, but if you could just let the hairdresser do it.~ ^^You won't be able to do anything to the dye with Ms. Williams watching."; } if (cucumber notin self && steam notin spa && self.contaminate_attempted == true) "Not with Ms. Williams watching."; else return false; } else return false; ], life [; Order: "~Sorry, Julia, but I have more important things to do,~ she says, laying back in her chair and listening to the music."; Give,Show: if (cucumber in self || steam in spa) "Ms. Williams can't see anything."; else { if (noun == cucumber) { move cucumber to self; "~I thought you could use some cucumber to complete your facial,~ you say, handing her the slices. ^^~Oh thank you, Julia,~ Ms. Williams croons. ~These will be perfect for my eyes. That idiot at the desk doesn't know half as much about beauty as you,~ she says, laying the slices on her eyes."; } else "Ms. Williams shrugs."; } Kiss: "If you're going to start kissing woman, you might want to pick someone a little less wrinkled."; Attack: "She already dyes her hair. You don't need to make her life any worse."; Ask,Tell: switch (second) { 'cucumber', 'cucumbers', 'slice', 'slices': "~So what good is cucumber, anyway?~ ^^~Cucumber is wonderful for bags under your eyes.~ ^^Since you'd rather avoid looking like a salad, you'll stick to your surgery."; 'mud', 'dirt', 'mask', 'masque': "~Do you actually think having dirt on your face is any good?~ you ask pointedly. ^^~The pores love it.~ ^^Oh, you thought it was the poor who loved it."; 'smell', 'sandalwood', 'seaweed', 'scent', 'aromatherapy': "~What do you think of the aromatherapy in here?~ you ask, wondering if maybe it's just you. ^^~Frankly, I'm glad I lost my sense of smell years ago.~ ^^Lucky her."; 'Receptionist', 'hairdresser', 'secretary': "~What's with that receptionist? Who does she think she is?~ ^^~I don't know, but she was supposed to be in here ages ago to do my hair.~"; 'Pine', 'Meadows', 'club': "~Do you remember when this place used to be entertaining?~ ^^~Please, Julia, I'm not that old. It's dreadful now though, isn't it?~ she says wistfully. ~Back in my day we kept the riff-raff out and everyone was happier.~"; 'dye', 'colouring', 'coloring', 'color', 'colour', 'job', 'dyeing', 'hair', 'hairs': "~So why do you dye your hair?~ She can't honestly believe it makes her look younger. ^^~After a while, you just have to give up and let nature take its course, except for your hair of course.~ ^^Blasphemy! You'll fight off age tooth and claw. Well, as long as you have teeth, you suppose."; 'CD', 'C.D.', 'music', 'cicada', 'cicadas', 'sounds', 'sound', 'of', 'nature': "~Isn't this music a little much?~ ^^~Yes, it is soothing, isn't it? The only catch is you actually have to listen to it,~ she says, glaring at you as much is possible with a mask of mud."; 'steam', 'sweat', 'rocks', 'water', 'rock', 'stones', 'stone': "~Do you honestly think this steam is any good?~ ^^~The sweat is absolutely wonderful for the pores.~ ^^Ick. You prefer getting sweaty the old-fashioned way."; 'plant', 'plants', 'ficus', 'leaves': "~What do you think of these plants?~ you ask, brushing an obtrusive branch out of the way. ^^~They really complete the atmosphere, don't they? It's just like a real jungle in here.~ ^^Funny, by her inflection, it sounds like she thinks that's a good thing."; 'pilates', 'exercise': "~Wasn't it annoying sitting in here with pilates going on?~ ^^~Yes. All those fit bodies. I can barely remember being able to touch my toes,~ she says, voice scraping across your ears."; 'whirlpool', 'charles', 'pool', 'burton', 'registrar', 'door', 'pool': "~Do you know where Charles is?~ ^^~He's in the whirlpool with his assistant.~"; 'assistant', 'helper': "~Tell me about this assistant,~ you say, never one to shy away from what might be some good gossip. ^^~He's an Adonis. What a handsome man like that is doing trying to be an accountant, I'll never know.~"; 'ms', 'williams', 'woman', 'patron': "~And how are you today, Ms. Williams?~ ^^~Oh, I'm fine,~ she says, raising her voice, ~or I would be if that damned hairdresser would hurry up.~"; } "~Shhh! I can't hear the CD,~ she says, pointing to the ceiling even though the sound is coming from some hidden speaker. To maintain the illusion of a steamy jungle, no doubt."; ], has proper animate female transparent; Object hair "Ms. Williams' hair" female_patron with name 'Williams^' 'William^s' 'williams^s' 'hair', description "Dry and brittle, Ms. Williams's hair looks as though it might fall out at the slightest provocation.", before [; Pull: "If you're going to get in to a catfight, you might choose someone a little more titillating."; Receive: if (noun == bleach) "Perhaps you could find a more subtle way to get the bleach into her hair."; else return false; ], has scenery proper; Object loose_hairs "strands of hair" with name 'hair' 'hairs' 'strand' 'strands' 'clump' 'clumps' 'of' 'gray', initial "Strands of gray hair form a trail through the spa, left after you gave Ms. Williams the Sin@'ead O'Conner look.", description [; if (self hasnt moved) "Ms. Williams's hair forms a slimy trail through the spa."; else "You cleaned the bleach off as best you could, but the hairs are still a little slimy."; ], after [; Take: if (self hasnt moved) "Gingerly, you pick up a few hairs and rinse them off in the bucket, pushing the rest under the chair with your foot."; else return false; ], has pluralname; !--------------------------------------------------------------------------- !WHIRLPOOL !--------------------------------------------------------------------------- Room whirlpool "Whirlpool room" with description "Cramped and humid, the whirlpool room is dominated by a large tub of bubbling water. The steam coming from it is almost unbearable; it flattens your hair and clings to your skin. Even worse, there seems to be no ventilation other than from the door to the north, beside which is a row of hooks for hanging clothes.", before [; Smell: if (noun == nothing) "The room is filled with the smell of chlorine and sweat."; else return false; ], each_turn [; if (scott.blackmailed == true) Achieved(1); else return false; ], n_to whirlpool_door, out_to whirlpool_door, has ; Object pool "whirlpool" whirlpool with name 'whirl' 'pool' 'whirlpool' 'tub' 'of' 'large' 'bath' 'vat' 'water' 'bubbling', description "With all its water steaming and bubbling, the whirlpool looks more like the birthing pool of some sci-fi monster rather than a relaxation device.", before [; Enter,Touch: "You'd rather not. Just knowing Charles was in there, likely naked, makes your skin crawl."; Receive: if (noun == scott_clothes) { scott.blackmailed = true; move scott_clothes to whirlpool; "~Listen!~ you hiss, holding the clothes out over the water. ~Either you tell me what I want to know or I drop these in.~ ^^~What? You're crazy!~ ^^~Am I?~ You dunk one leg into the water. ^^~Ok, wait, wait. Alright, what do you want to know?~ ^^~Well, who the hell you are, for starters.~ ^^~Ok, I'm Scott. Charles's new 'assistant.' I'd shake your hand, but I'm a little indisposed at the moment.~ ^^~I'll let it slide,~ you say, politely averting your eyes. ~Do you always bathe naked with your employers?~ ^^~Bathe naked, sleep naked, play Parcheesi naked,~ he shrugs his shoulders. ~Whatever they pay me for. It's all the same to me.~ ^^You knew it. Charles was always a little well-manicured, even for Pine Meadows. ~So he pays you for your services?~ ^^~Of course, you have seen him, haven't you?~ The two of you share a collective shudder. ^^~Alright, that's enough.~ Satisfied you have enough information, you hang his clothes back on the hooks. ^^~Anytime.~"; } if (noun == bleach && scott.blackmailed == false) "That's a little cruel, even for you."; if (noun == bleach && scott.blackmailed == true) "Although Scott might appreciate you sterilizing the tub after Charles was in there, he'd probably appreciate keeping his skin more."; else "There's no way subjecting any of your stuff to that water."; ], has scenery; Object scott "Scott" whirlpool with name 'Scott' 'boy' 'man' 'assistant' 'balls', initial [; if (self.blackmailed == false) "A young man reclines in the pool, naked."; else print (string) random("Scott uncrosses and recrosses his legs, lingering a little longer than necessary in between.^", "Scott absentmindedly scratches the inside of his thigh, drawing you eyes towards it. Damn, this kid knows his stuff.^", "Scott reclines in the pool.^", "Scott reclines in the pool.^"); ], description [; if (self.blackmailed == false) "With his bleached hair and chiseled features, this guy looks like he stepped right out of Honcho."; else "Scott lies back with his eyes closed, although not completely. He seems to like the fact that you're staring at him."; ], scott_first_seen false, blackmailed false, leave_with_clothes false, each_turn [; if (self.scott_first_seen == false) { self.scott_first_seen = true; "^The man sits up with a start but does nothing to conceal his nudity. ~Who the hell are you?~ he demands. Without waiting for a reply, he lies back. ~Nevermind. I don't care. Charles said I could stay here all afternoon, so fuck off.~"; } else return false; ], react_before [; Go: if (scott_clothes in player && noun == n_obj) { self.blackmailed = true; move scott_clothes to whirlpool; "~Listen!~ you hiss, holding the clothes out of the young man's reach. ~Either you tell me what I want to know or I walk out with these clothes right now.~ ^^~What? You're crazy!~ ^^~Am I?~ You walk towards the door. ^^~Ok, wait, wait. Alright, what do you want to know?~ ^^~Well, who the hell you are, for starters.~ ^^~Ok, I'm Scott. Charles's new 'assistant.' I'd shake your hand, but I'm a little indisposed at the moment.~ ^^~I'll let it slide,~ you say, politely averting your eyes. ~Do you always bathe naked with your employers?~ ^^~Bathe naked, sleep naked, play Parcheesi naked,~ he shrugs his shoulders. ~Whatever they pay me for. It's all the same to me.~ ^^You knew it. Charles was always a little well-manicured, even for Pine Meadows. ~So he pays you for your services?~ ^^~Of course, you have seen him, haven't you?~ The two of you share a collective shudder. ^^~Alright, that's enough.~ Satisfied you have enough information, you hang his clothes back on the hooks. ^^~Anytime.~"; } else return false; ], before [ w; Handle: "Very funny, but just because he's not keeping it in his pants doesn't mean you shouldn't."; Smell: "He smells like sweat and chlorine."; Blackmail: wn = consult_from; w = NextWord(); switch (w) { 'clothes', 'clothing', 'pants', 'shirt': if (self.blackmailed == false) { self.blackmailed = true; move scott_clothes to hooks; "~Listen!~ you hiss, holding the clothes out of the young man's reach. ~Either you tell me what I want to know or I walk out with these clothes right now.~ ^^~What? You're crazy!~ ^^~Am I?~ You begin to walk towards the door. ^^~Ok, wait, wait. Alright, what do you want to know?~ ^^~Well, who the hell you are, for starters.~ ^^~Ok, I'm Scott. Charles's new 'assistant.' I'd shake your hand, but I'm a little indisposed at the moment.~ ^^~I'll let it slide,~ you say, politely averting your eyes. ~Do you always bathe naked with your employers?~ ^^~Bathe naked, sleep naked, play Parcheesi naked,~ he shrugs his shoulders. ~Whatever they pay me for. It's all the same to me.~ ^^You knew it. Charles was always a little well-manicured, even for Pine Meadows. ~So he pays you for your services?~ ^^~Of course, you have seen him, haven't you?~ The two of you share a collective shudder. ^^~Alright, that's enough.~ Satisfied you have enough information, you hang his clothes back on the hooks. ^^~Anytime.~"; } else "You've already gotten all you need out of Scott."; } "He's not afraid of that."; ], life [; Kiss: "You have enough trouble juggling Keith and Frank, throwing him in there would be just too many balls to handle."; Attack: "Better not, looks like he could take you."; Order: "~Don't think I'm one of those penguins you can boss around,~ he says, snorting derisively."; Show,Give: if (self.blackmailed == false) { if (noun == scott_clothes) "~Hey, put those back.~"; else "The young man sneers."; } else { if (noun == watch) "~Shit, girl. That's some nice ice,~ Scott says, gripping your wrist and holding the watch up to sparkle in the light. He may be crude but at least he has good taste, Charles excluded, of course."; if (noun == clothes) "~The pumps are a little dated, but then again, no one's looking at your feet,~ he says, giving a nod of approval at your chest."; if (noun == pills or wine) "~I'd love to join you, but Charles won't pay me if I can't get it up.~"; else return false; } Ask,Tell: if (self.blackmailed == false) "~Fuck off, I don't have to talk to you.~"; else switch(second) { 'cell', 'cellular', 'mobile', 'phone', 'telephone', 'calling', 'phoning': "~Do you happen to have a phone I could borrow?~ you ask, trying to sound pleasant. ^^~Sorry, girl, but I don't carry a cell anymore. You know how clingy men can be.~ ^^~Do I ever. Here's a tip: never get married.~"; 'pill', 'pills', 'percodan', 'drug', 'drugs', 'tablets', 'caplets', 'Cabernet', 'Sauvignon', 'wine', 'red', 'drink': "~I'd love to join you, but Charles won't pay me if I can't get it up.~"; 'Pine', 'Meadows', 'club': "~So, how are you liking it here?~ ^^~It's ok, I guess. Not a bad place to earn a buck.~"; 'keith', 'lover', 'affair', 'adultery', 'rumor', 'rumour', 'rumors', 'rumours', 'gossip', 'julia', 'hawthorne': "Eager to know how far the gossip has spread, you ask Scott about what he's heard. ^^~Oh, so you're the chick who's banging the Pro Shop guy? Congrats, he's hot,~ Scott says, giving you an impressed nod."; 'Charles', 'Burton', 'registrar': "~So what's it like working for Charles?~ ^^~Ugh, it's bad enough I have to think of him when he's here. Don't make me do it when he's not.~"; 'Charles^s', 'preferences', 'services', 'hoeing', 'job', 'hoe', 'whoring', 'oral', 'sex', 'sexual', 'charles^', 'work', 'prostitute': "Scott proceeds to go in to what he does with graphic detail. At first you are horrified, but when the shock dies down, you find it quite fascinating. You leave the conversation with a few new tricks that Keith might enjoy."; 'whirl', 'pool', 'whirlpool', 'tub', 'of', 'large', 'bath', 'vat', 'water', 'bubbling', 'steam': "~What's this like, anyway?~ you ask, gesturing disdainfully at the water. ^^~It's great to have sex in. I can barely tell whether it's the water touching me or Charles.~ ^^Hey, that'd come in handy next time you want something out of Frank."; 'Cynthia', 'Fordham', 'Beverly', 'Winters', 'Melissa', 'Stratham', 'Cissy', 'Winnecott', 'Cecilia', 'bev', 'mel': "~Hmm, I might have met her, but I really wouldn't know. Have you noticed that all the women here are pretty much exactly the same?~"; 'roger', 'knowles': "~Have you heard much about this Roger fellow?~ ^^~Oh yeah, Charles warned me about him. Apparently he's pretty old-fashioned,~ --Scott leans forward conspiratorially-- ~but then again you'd be surprised at how many 'old-fashioned' guys employ my services.~ He then lists off about half-a-dozen names of certain well-respected politicians and businessmen."; 'senator', 'politician', 'politicians', 'businessmen', 'well-respected': "~Politicians, you say?~ you ask, more than a little intrigued. ^^~Our little secret, ok, girl?~ he says with a wink."; 'frank', 'husband': "~Believe me, I know your pain, I'm married to a man who would make Charles look like a dream.~ ^^~Oh, so you know what I'm talking about then. The things we do for love of money.~"; 'money', 'cash', 'wages', 'fee': "~So, how's the money in sleeping with Charles?~ ^^~Why, you thinking of branching out? Well, I do alright,~ he says, glancing at your watch, ~not as well as you though.~"; 'clothes', 'his', 'clothing', 'poly-cotton', 'poly', 'cotton', 'blend': "~Your clothes are~ --you pause, looking for the right word-- ~interesting.~ ^^~Cazh, aren't they?~ ^^Ugh, you thought that word died out in the nineties."; } "~If you don't mind, I'm trying to boil off Charles's touch.~"; ], has proper male animate; Object scott_clothes "clothes" whirlpool with name 'clothes' 'clothing' 'pants' 'shirt' 'poly' 'cotton' 'scott^s', initial "Some clothes hang on one of the hooks.", description "My God! A poly-cotton blend in this place? What is Pine Meadows coming to?", before [; Receive: if (noun == bleach or wine) { if (scott.blackmailed == false) { scott.blackmailed = true; "~Listen!~ you hiss, holding ", (the) noun, " tilted over the man's clothes. ~Either you tell me what I want to know or I walk out with these clothes right now.~ ^^~What? You're crazy!~ ^^~Am I?~ You bring ", (the) noun, " closer. ^^~Ok, wait, wait. Alright, what do you want to know?~ ^^~Well, who the hell you are, for starters.~ ^^~Ok, I'm Scott. Charles's new 'assistant.' I'd shake your hand, but I'm a little indisposed at the moment.~ ^^~I'll let it slide,~ you say, politely averting your eyes. ~Do you always bathe naked with your employers?~ ^^~Bathe naked, sleep naked, play Parcheesi naked,~ he shrugs his shoulders. ~Whatever they pay me for. It's all the same to me.~ ^^You knew it. Charles was always a little well-manicured, even for Pine Meadows. ~So he pays you for your services?~ ^^~Of course, you have seen him, haven't you?~ The two of you share a collective shudder. ^^~Alright, that's enough.~ Satisfied you have enough information, you hang his clothes back on the hooks. ^^~Anytime.~"; } else "You've already gotten all you need out of Scott."; } Search: "~Hey, cut that out!~ You ignore him but find nothing of interest anyway."; Take: if (scott.blackmailed == false) { print "~Hey, what are you doing? I need those,~ the man cries. ^^You ignore him and take the clothes.^"; move scott_clothes to player; return true; } else "You've already gotten everything you need out of Scott, you don't need to touch that again."; Touch: "The cheap fabric grates against your skin."; Wear: "Cotton doesn't even look good on the bush. You'll stick to silk."; ], has pluralname clothing worker; Object hooks "row of hooks" whirlpool with name 'row' 'hook' 'hooks' 'peg' 'pegs' 'wooden' 'of', description "Somewhat warped from all the steam, the hooks serve to hold the clothes of those who do not have lockers.", has scenery supporter; Object whirlpool_steam "steam" whirlpool with name 'steam' 'humid' 'humidity' 'mist' 'cloud' 'of', description "It clings to your clothes and flattens your hair.", before [; Examine: return false; Smell: "The steam chokes at your nose."; default: "It's just some steam."; ], has scenery proper; !--------------------------------------------------------------------------- !WOMEN'S CHANGE !--------------------------------------------------------------------------- Room women_change "Women's change room" with name 'combination' 'lock' 'dial', description [; if (self hasnt visited) "Your heels click loudly on the tiles, echoing down the banks of lockers that line the sides of the room. With the pool closed until summer and tennis verging on the pass@'e, the only use the women of Pine Meadows have for this room is the lockers. The showers lie, unused, to the north."; else "With the pool closed until summer and tennis verging on the pass@'e, the only use the women of Pine Meadows have for this room is the lockers. The showers lie, unused, to the north."; ], before [; SetTo: "If you know the combination, you can just open the locker."; Shower: "You don't have time!"; ], out_to spa_lobby, s_to spa_lobby, n_to "You don't have the time to shower.", has ; Object julia_locker "your locker" women_change with pname '.x' '#11' '.x' '11' '.x' 'your' '.x' 'Hawthorne^s' '.x''Hawthorne' '.x''Julia' '.x''Julia^s' '.x''my' '.x''mine' 'locker', description "Your locker looks like all the rest, except for the #11 on a plate.", initial "Your locker, #11, sits against the left wall.", before [; Lock: "The lockers lock automatically when you close them."; Open,Unlock: if (self hasnt open) { give self open; print "38 left, 24 right, 34 left, just like your measurements. Inside is a change of clothes.^"; return true; } else return false; ], has openable static container proper; Object change_of_clothes "change of clothes" julia_locker with name 'change' 'clothes' 'backup' 'clothing' 'of', initial "A change of clothes sits in your locker.", description [; if (self hasnt worn) "While the thought of changing without your vanity desk and six angled mirrors is by no means appealing, you've kept a spare set of clothes in your locker since last year when Frank spilled red wine all over you."; else "You only kept these clothes around in case of an emergency. And while today has certainly qualified, you wish you had had a little more foresight in choosing them. You bought them months ago before your diet had kicked in. Now you are practically swimming in them."; ], react_before [; Change: if (behind_club hasnt visited) "Besides from a little sweat, your ensemble is in good condition. There's no need to change right now."; else "Although those bushes took their toll, the worst might be yet to come. You should probably save these clothes for the banquet."; ], before [; Take,Wear,Change: if (banquet hasnt visited) { if (behind_club hasnt visited) "Besides from a little sweat, your ensemble is in good condition. There's no need to change right now."; else "Although those bushes took their toll, the worst might be yet to come. You should probably save these clothes for the banquet."; } else "You already have them on."; Drop,ThrowAt,Disrobe,Remove: "While removing your clothes would certainly cause the distraction you need, it might arouse Frank. And that's the last thing you want right now."; ], has clothing; Object cynthia_locker "Cynthia's locker" with pname '.x' 'Cynthia' '.x' 'Cynthia^s' '.x' 'Fordham' '.x' 'Fordham^s' '.x' '#18' '.x' '18' 'locker', initial "Cynthia's locker, #18, stands against the wall.", description "The locker looks like all the rest, except for the #18 on a plate.", opened false, before [; Lock: "The lockers lock automatically when you close them."; Open,Unlock: if (self hasnt open) { if (camera in self) { give self open; self.opened = true; print "Turning the dial to 23-44-46, you hear a gentle click. The swings open to reveal a small camera sitting in the bottom of the locker.^"; return true; } else { give self open; "Turning the dial to 23-44-46, you hear a gentle click, and the door swings open."; } } else return false; ], has static openable container proper; Object women_lockers "lockers" women_change with name 'lockers' 'bank' 'banks' 'row' 'locks' 'locker', description "What is it about locked things that makes them so irresistible?", before [; Open,Unlock: "You don't know the combination."; ], has scenery pluralname; Object camera "camera" cynthia_locker with name 'camera' 'small' 'instant' 'cam', description "It's a small, instant camera.", before [; Open,Search: "You flip open the small hatch on the side where the film is supposed to go. It's empty."; Receive: if (noun == film) "You probably should get rid of the film."; else "The hatch is too small."; ], has ; Object melissa_locker "Melissa's locker" with pname '.x' 'Melissa' '.x' 'Melissa^s' '.x' 'Stratham' '.x' 'Stratham^s' '.x' '#67' '.x' '67' '.x' 'mel' 'locker', initial "You see Melissa's locker, #67, against the wall.", description "The locker looks like all the rest, except for the #67 on a plate.", after [; Lock: "The lockers lock automatically when you close them."; Open: if (pills in melissa_locker) { Achieved(5); "You flip the dial through 33-73-42 and the locker swings open to reveal a small bottle of pills."; } else return false; ], has static openable container proper; Object pills "bottle of Percodan" melissa_locker with name 'bottle' 'of' 'pill' 'pills' 'percodan' 'drug' 'drugs' 'tablets' 'caplets' 'label', description "Ah, this takes you back. The bottle contains a number of small white pills. On the side is a label that says: ~Percodan. Highly addictive. Do not take for longer than five days or dependency may result.~ Below that is a date for several months ago and the name and phone number of one Dr. Ferguson. Curiously, the name of the patient is scratched out.", number_known false, after [; Examine,Search: self.number_known = true; ], before [; EmptyT: <>; Open,Empty: "Best not, you might lose them."; Eat: "Please, pill-popping is so pass@'e."; ], has ; Object beverly_locker "Beverly's locker" with pname '.x' 'Bev''.x' 'Bev^s''.x' 'Beverly''.x' 'Beverly^s''.x' 'Winters''.x' 'Winters^' '.x' '3//' '.x' '#3' 'locker', initial "Beverly's locker, #3, sits in the banks.", description "The locker looks like all the rest, except for the #3 on a plate.", before [; Lock: "The lockers lock automatically when you close them."; Open,Unlock: if (self hasnt open) { give self open; print "You turn the dial to 16-43-81 and here a small click as the door swings open and reveals some of Beverly's trademark clothes.^"; return true; } else return false; ], has static openable container proper; Object beverly_clothes "Beverly's clothes" beverly_locker with name 'Beverly^s' 'Bev^s' 'clothes' 'clothing' 'Ralph' 'Lauren' 'skirt' 'sweater' 'pumps', description [; if (self.bleach_stained == true || self.wine_stained == true) "A sweater, some pumps, a pleated skirt. When Beverly wears this stuff she looks like she stepped right out of a Ralph Lauren catalogue, from four years ago. ^^There is a slight stain on the skirt."; else "A sweater, some pumps, a pleated skirt. When Beverly wears this stuff she looks like she stepped right out of a Ralph Lauren catalogue, from four years ago."; ], bleach_stained false, wine_stained false, before [; Take: "Please, if you wanted to see yourself in these clothes, you'd look in a photo album from four years ago, when they were fashionable."; Receive: if (noun == bleach) { if (self.bleach_stained == true) "You've already put enough bleach on them."; if (self.wine_stained == true) "No time for cold feet now. Besides, everyone knows you use club soda for red wine."; else Achieved(16); self.bleach_stained = true; print "Careful not to completely ruin them, you pour a little of the bleach on to the clothes.^"; return true; } if (noun == wine) { if (self.wine_stained == true) "You've already put enough wine on them."; if (self.bleach_stained == true) "You've already ruined the clothes enough."; else Achieved(16); self.wine_stained = true; "Careful not to completely ruin them, you pour a little of the wine on to the clothes."; } if (noun == loose_hairs) "Although you'd love to see Beverly's reaction when she puts on the clothes and thinks she's shedding gray hairs, it'd be fleeting. Perhaps there's a more damaging solution."; else "You don't want to put that on her clothes."; ], has clothing static proper pluralname; !--------------------------------------------------------------------------- !MEN'S CHANGE !--------------------------------------------------------------------------- Room men_change "Men's change room" with name 'combination' 'lock' 'dial', initial "Checking first to make sure no one is looking, you enter the men's change room.", description "Despite everything you've heard about men's bath and change facilities, this room is remarkably similar to the women's one you're more familiar with. Same tiles, same lockers. In fact, if it weren't for the direction you entered through, you wouldn't be able to tell the difference.", before [; Smell: if (noun == nothing) "Hmm, guess all you've heard about men's change rooms has been wrong; it doesn't smell that bad in here."; else return false; SetTo: "If you know the combination, you can just open the locker."; Shower: "Being naked where you're not supposed to be has caused enough trouble already."; ], out_to spa_lobby, e_to spa_lobby, w_to "There's nothing in there you want to see.", has ; Object charles_locker "Charles's locker" with name '#32' '32' 'Charles' 'Charles^s' 'charles^' 'locker' 'plate' 'Burton' 'Burton^s' 'lock' 'combination', description "This locker looks the same as all the rest, except for the #32 on the plate.", initial "There it is, Charles's locker, #32.", before [; Lock: "The lockers lock automatically when you close them."; Open,Unlock: if (list.charles_consulted == false) "You don't know the combination."; if (self hasnt open) { give self open; print "You check to see you're alone and then enter 62-34-42 on the combination lock. Inside is Charles's clothing.^"; return true; } else return false; ], has proper openable static container; Object rogers_locker "Roger's locker" with name 'Roger' 'Roger^s' 'Knowles' 'Knowles^s' 'locker' '2//' '#2', initial "Roger's locker, #2, sits against on wall.", description "This locker looks the same as all the rest, except for the #2 on the plate.", before [; Lock: "The lockers lock automatically when you close them."; Open,Unlock: if (self hasnt open) { give self open; print "You check to see that you're alone and then enter 87-54-63 on the lock. The door opens to reveal some of Roger's golf stuff.^"; return true; } else return false; ], has proper openable static container; Object rogers_stuff "Roger's stuff" rogers_locker with name 'Roger' 'Roger^s' 'Knowles' 'Knowles^s' 'stuff' 'things' 'tees' 'tee' 'golf' 'shirt' 'card', description "A spare golf shirt, some tees, a score card. Nothing the least bit interesting.", before [; Take: "Nah. If you want this kind of stuff, Keith will give it to you for free. You really got yourself a winner there."; Wear: "If you didn't want people seeing your cleavage, you wouldn't have spent three thousand dollars on it."; ], has proper scenery clothing; Object men_lockers "lockers" men_change with name 'lockers' 'bank' 'banks' 'row' 'locks' 'locker' 'Roger' 'Roger^s' 'Knowles' 'Knowles^s' 'Charles' 'Charles^s' 'charles^' 'Burton' 'Burton^s', description "What is it about locked things that makes them so irresistible?", before [; Open,Unlock: "You don't know the combination."; ], has scenery pluralname; Object charles_clothes "Charles's clothes" charles_locker with name 'Charles' 'Charles^s' 'charles^' 'clothes' 'Burton' 'Burton^s' 'pocket' 'pockets' 'clothing', description "Looking at Charles's clothes baffles you. Despite being all top of the line, on Charles they look cheap and out-of-place. Some people just aren't meant to be rich.", before [; Take: "You don't want them."; Search: if (charles_key hasnt moved) { Achieved(3); move charles_key to player; "You begin fishing through the pockets of Charles's clothes. Just when you think you've gone through every pocket three times, you find it: the key to Charles's office. You pocket it quickly."; } else "There's nothing else in his clothes."; Receive: "You don't want to put anything in his clothes."; Wear: "These clothes don't even look good on Charles."; ], has clothing proper; Key charles_key "key" with pname '.x' 'Charles^s' '.x' 'registrar^s' '.x' 'charles^' 'key', description "Small and made of steel, the key to Charles's office fits in the palm of your hand.", has ; !--------------------------------------------------------------------------- !CHARLES OFFICE !--------------------------------------------------------------------------- Room office "Office of the Registrar" with name 'paper' 'papers' 'course' 'green' 'golf' 'range' 'chair', description [; if (office hasnt visited) "You haven't seen this room since you joined the club years ago. Frank handles all the dues, and Charles isn't your first choice among people to socialize with. The office itself seems to be a lot more luxurious than before. Maybe last time you were just distracted by the fear of your application being denied, or, more likely, Charles's perpetually tacky air just drained all the class out of the place. Either way, you have to say that now you like its bold charm, so unlike its owner. ^^Clearly the focus of the layout, a magnificently restored antique oak desk stands near the back of the room, illuminated by a spacious window overlooking the golf course. Somewhat less impressive, a wise move considering they might detract from the desk, are a row of cabinets leading from the door to the south, along the wall, to the window at the far side of the room. ^^Charles could come back any minute. Better make it quick."; else "Clearly the focus of the layout, a magnificently restored antique oak desk stands near the back of the room, illuminated by a spacious window overlooking the golf course. Somewhat less impressive, a wise move considering they might detract from the desk, are a row of cabinets leading from the door to the south, along the wall, to the window at the far side of the room."; ], cynthia_consulted false, desk_consulted false, melissa_consulted false, doctor_called false, before [ w; Call: if (charles notin office) "Better not, someone might hear you."; else { wn = consult_from; w = NextWord(); switch (w) { 'frank', 'husband': "It's bad enough talking to him when he's around."; '911', 'emergency', 'fire', 'police': "You've tried before, but the authorities just don't see fashion disasters as being as serious as you do."; 'doctor', 'dr', 'doc', 'ferguson', 'melissa^s': if (pills.number_known == true) { if (self.doctor_called == false) { Achieved(18); self.doctor_called = true; "Suspicious about those pills, you call up doctor Ferguson. ^^~Hi, Dr. Ferguson. This is Angie from Dr. Leeds office,~ you say in as nasal a voice as you can muster. ~I'm calling in regards to a patient of yours, one Melissa Stratham.~ ^^~Yes, what can I do for you?~ he asks, more than a little perturbed to be disturbed. ^^~Well, Mrs. Stratham told us that you gave her a prescription for Percodan to be renewed indefinitely and--~ ^^~What? She's still taking them? They're highly addictive!~ he says with concern, more likely from fear of malpractice than genuine compassion. ^^~Alright, Dr. Ferguson. I'll notify Betty Ford right away.~ ^^With that, you hang up the phone and ignore Charles's odd looks."; } else "You've gotten all you need from Dr. Ferguson."; } else "You don't have the number."; } "You don't have the number."; } Jump: if (window hasnt open) "But the window is closed."; else "There's got to be a safer way out of the office."; Hide: if (charles notin office) "You try crawling under the desk, but figure that if Charles does come in, your face will be where only cater-waiters and hustlers have been before. Then, you climb on top of the cabinets, but realize that Charles isn't quite that short. Finally, you try hiding behind a pencil, but you have a few more months on your diet before you can pull that off. Dejected, you go about finding a better way to avoid getting caught."; else return false; Go: if (window hasnt open && noun == d_obj or out_obj) { print "But the window isn't open."; return true; } if (window has open && noun == d_obj or out_obj){ PlayerTo(bushes); return true; } if (noun == s_obj && behind_club hasnt visited) "Better not, someone might see you if you leave that way."; if (charles in self && noun == d_obj or out_obj) "Charles might think that a little odd, especially with the trellis broken."; else return false; Consult: if (charles notin office) { if (charles_door has locked && charles_door hasnt open) { if (noun == nothing) { noun = cabinet; wn = consult_from; w = NextWord(); switch (w) { 'Julia', 'Hawthorne', 'frank': "Hmm, what's this? The account Frank has been using to pay for dues isn't anyone that you recognize. How dare he? A marriage is supposed to be about trust!"; 'Cynthia', 'Fordham': if (self.cynthia_consulted == false) { (self.cynthia_consulted = true); cupboards.allergy_known = true; Achieved(4); "Cynthia's financial records are boring, even for accounting forms; however, towards the end, you find a health notice. Well, well, it looks like someone's allergic to peanuts. ^^Just as you close the cabinet, you hear faint footsteps outside the door. ~Who's in there?~ You hear Charles call as he thuds on the door."; } if (self.cynthia_consulted == true) "Cynthia's financial records are boring, even for accounting forms; however, towards the end, you find a health notice. Well, well, it looks like someone's allergic to peanuts."; 'Charles', 'Burton': "Eighty thousand dollars a year. Well now you see why it costs three dollars for a glass of Perrier."; 'desk', 'furniture', 'requisition', 'invoice', 'table', 'form': self.desk_consulted = true; "Interesting. It's an invoice from an antique dealer in Manhattan. Eight thousand dollars for a new desk? That's a little pricy even for Pine Meadows. You wonder how it was ever approved."; 'Melissa', 'Stratham', 'Johnathan', 'mel': "The cheques are made out from her husband. She may be young, but at least she knows how to work it."; 'Beverly', 'Bev', 'Winters': "What's this? A note from Beverly's mother to Charles reminding him of Beverly's fiftieth birthday that is approaching soon. Well it's about time: she's been forty-five for six years now."; 'Cissy', 'Cecilia', 'Winnecott': "Cissy's records are as bloated and boring as she is."; 'Roger', 'Knowles': "Roger's files list him as the primary shareholder of the club, giving him the ability to make membership decisions completely at his own discretion."; 'Williams', 'William', 'ms': "Ms. Williams's cheques go back to the fifties, when the club first opened."; 'Keith': "Ten thousand dollars a year. No wonder he takes you to basements instead of the Four Seasons."; 'Scott', 'assistant': "Hmm, there's a work invoice for an assistant here, but the hours are erratic and many of them occur late at night."; default: "That name doesn't seem to be on file."; } } } else "You'd best ensure you have some privacy before you go rifling through the cabinets."; } else if (noun == nothing) { noun = cabinet; wn = consult_from; w = NextWord(); switch (w) { 'Julia', 'Hawthorne', 'frank': "Hmm, what's this? The account Frank has been using to pay for dues isn't anyone that you recognize. How dare he? A marriage is supposed to be about trust!"; 'Cynthia', 'Fordham': if (self.cynthia_consulted == false) { (self.cynthia_consulted = true); cupboards.allergy_known = true; Achieved(4); "Cynthia's financial records are boring, even for accounting forms; however, towards the end, you find a health notice. Well, well, it looks like someone's allergic to peanuts. ^^Just as you close the cabinet, you hear faint footsteps outside the door. ~Who's in there?~ You hear Charles call as he thuds on the door."; } if (self.cynthia_consulted == true) "Cynthia's financial records are boring, even for accounting forms; however, towards the end, you find a health notice. Well, well, it looks like someone's allergic to peanuts."; 'Charles', 'Burton': "Eighty thousand dollars a year. Well now you see why it costs three dollars for a glass of Perrier."; 'desk', 'furniture', 'requisition', 'invoice', 'table', 'form': self.desk_consulted = true; "Interesting. It's an invoice from an antique dealer in Manhattan. Eight thousand dollars for a new desk? That's a little pricy even for Pine Meadows. You wonder how it was ever approved."; 'Melissa', 'Stratham', 'Johnathan', 'mel': "The cheques are made out from her husband. She may be young, but at least she knows how to work it."; 'Beverly', 'Bev', 'Winters': "What's this? A note from Beverly's mother to Charles reminding him of Beverly's fiftieth birthday that is approaching soon. Well it's about time: she's been forty-five for six years now."; 'Cissy', 'Cecilia', 'Winnecott': "Cissy's records are as bloated and boring as she is."; 'Roger', 'Knowles': "Roger's files list him as the primary shareholder of the club, giving him the ability to make membership decisions completely at his own discretion."; 'Williams', 'William', 'ms': "Ms. Williams's cheques go back to the fifties, when the club first opened."; 'Keith': "Ten thousand dollars a year. No wonder he takes you to basements instead of the Four Seasons."; 'Scott', 'assistant': "Hmm, there's a work invoice for an assistant here, but the hours are erratic and many of them occur late at night."; default: "That name doesn't seem to be on file."; } } ], each_turn [; if (charles notin office) move in_office to all_hints; Achieved(10); StartTimer(self,3); if (charles in office) StopTimer(self); if (charles_door has locked) StopTimer(self); if (self.desk_consulted == true) Achieved(1); ], time_left, time_out [; if (charles_door has open && location == office){ (deadflag = 3); "^You hear Charles shout from behind. ~Julia!~ ^^Uh oh, you forgot to close the door. ~Mr. Burton, I- I was just.~ ^^~I don't care what you were doing. You broke in to my locker and stole my key! I'm calling the police.~ ^^The criminal charges are just a slap on the wrist, but the humiliation of being dragged from the club in cuffs more than makes up for it."; } if (charles_door hasnt open && charles_door hasnt locked && location == office) { print "^You hear Charles shout from behind. ~Julia!~ ^^Uh oh, you forgot to lock the door. ~Mr. Burton, I- I was just.~ ^^~I don't care what you were doing. You broke in to my locker and stole my key! I'm calling the police.~ ^^The criminal charges are just a slap on the wrist, but the humiliation of being dragged from the club in cuffs more than makes up for it."; (deadflag = 3); } else return false; ], cant_go "You can only leave to the south or down through the window.", s_to charles_door, out_to [; if (behind_club hasnt visited) <>; else <>; ], has ; Object charles_door with name 'door' 'Charles^s' 'charles^' 'office' 'lock' 'plate' 'knob' 'doorway', article "the", short_name [; if (behind_club hasnt visited) { if (location == west_hall) print "door to Charles's office"; else print "door to the western wing"; return true; } else print "broken door"; return true; ], description [; if (behind_club hasnt visited) { if (location == west_hall) "Simple, unassuming, and wooden, just like its owner, Charles Burton, this door leads to the office of the registrar where new members join, current members are gouged, and the records of such are kept. "; else "The door leads back to the western wing."; } else "The door hangs loosely on its hinges, a gaping hole where the knob once was."; ], door_dir [; if (location == west_hall) return n_to; else return s_to; ], door_to [; if (location == west_hall) return office; else return west_hall; ], before [; Unlock,Open: if (location == office) "That's probably not a good idea; you might get caught if you go out that way."; else return false; Knock: if (behind_club hasnt visited) "There's no reply. Charles must be out."; else "~Come in,~ You hear Charles call out."; Lock: if (behind_club hasnt visited) { if (charles_key in player) { give charles_door ~open; give charles_door locked; "The door clicks gently as the key turns in the lock."; } else return false; } else "The lock broke off when the door was forced open."; ], with_key charles_key, found_in office west_hall, has scenery door openable lockable locked; Object charles_desk "Charles's desk" office with name 'desk' 'Charles^s' 'charles^' 'table' 'oak', description "Absolutely gorgeous and without a scratch on it. Which is to be expected, seeing as very little work actually gets done at it. Most members have their banks automatically pay their dues for them and since country clubs have declined in popularity recently, new members are few and far between. Why Charles would have been granted a new desk is beyond you.", before [; Open,Search: "You quickly rifle through the desk but find nothing of interest."; Enter: if (charles notin office) "You don't have the time."; else "Fran Drescher is the bane of the upper class, to emulate her would be the utmost degradation."; ], react_before [; Go,Enter,Climb: if ((cabinet.cynthia_consulted == false && office. cynthia_consulted == false) && charles notin office) "After all the trouble you've gone through getting in here, you better make sure you have everything you need from here before leaving."; if ((cabinet.cynthia_consulted == true || office. cynthia_consulted == true) && noun == d_obj or out_obj){ if (window has open) { StopDaemon(self); PlayerTo(bushes); return true; } else "But the window isn't open."; } ], each_turn [; if((cabinet.cynthia_consulted == true || office. cynthia_consulted == true) && charles notin office) StartDaemon(self); ], number_of_turns 0, daemon [; if (location == behind_club) StopDaemon(self); self.number_of_turns = self.number_of_turns + 1; switch (self.number_of_turns) { 1: "^~Get out of there before I call the police!~ Charles yells in his characteristic nasal way, in an uncharacteristically demanding tone."; 2: "^~I'm serious! Open this door now!~"; 3: "^~That's it, I'm coming in.~ You hear a meagre thud as Charles hurls himself against the door."; 4: "^Crash! Yikes, that thud wasn't nearly as meagre. Charles must have some help."; default: StopDaemon(self); (deadflag = 3); "^The next hit tears the lock from the door and sends it skittering across the floor. You whirl around and freeze at the sight of a young man, wearing only pants, and Charles looking at you quizzically. ^^The criminal charges are no big deal, but being seen by the whole club being pulled from the office in cuffs is too much to bear."; } ], has proper scenery supporter; Object cabinet "cabinets" office with name 'cabinets' 'cabinet' 'cupboard' 'dresser' 'file' 'files' 'records' 'record', description "The payment records on all the past and present members of the club occupy three cabinets against the east side of the office. Another one houses all the other financial and extraneous records.", cynthia_consulted false, melissa_consulted false, desk_consulted false, before [ w; Close: "That's not necessary."; Open,Search: "If you want to dig up some dirt on someone, look them up by name."; Consult: if (charles notin office) { if (charles_door has locked && charles_door hasnt open) { wn = consult_from; w = NextWord(); switch (w) { 'Julia', 'Hawthorne', 'frank': "Hmm, what's this? The account Frank has been using to pay for dues isn't anyone that you recognize. How dare he? A marriage is supposed to be about trust!"; 'Cynthia', 'Fordham': if (self.cynthia_consulted == false) { (self.cynthia_consulted = true); cupboards.allergy_known = true; Achieved(4); "Cynthia's financial records are boring, even for accounting forms; however, towards the end, you find a health notice. Well, well, it looks like someone's allergic to peanuts. ^^Just as you close the cabinet, you hear faint footsteps outside the door. ~Who's in there?~ You hear Charles call as he thuds on the door."; } if (self.cynthia_consulted == true) "Cynthia's financial records are boring, even for accounting forms; however, towards the end, you find a health notice. Well, well, it looks like someone's allergic to peanuts."; 'Charles', 'Burton': "Eighty thousand dollars a year. Well now you see why it costs three dollars for a glass of Perrier."; 'desk', 'furniture', 'requisition', 'invoice', 'table', 'form': self.desk_consulted = true; "Interesting. It's an invoice from an antique dealer in Manhattan. Eight thousand dollars for a new desk? That's a little pricy even for Pine Meadows. You wonder how it was ever approved."; 'Melissa', 'Stratham', 'Johnathan', 'mel': "The cheques are made out from her husband. She may be young, but at least she knows how to work it."; 'Beverly', 'Bev', 'Winters': "What's this? A note from Beverly's mother to Charles reminding him of Beverly's fiftieth birthday that is approaching soon. Well it's about time: she's been forty-five for six years now."; 'Cissy', 'Cecilia', 'Winnecott': "Cissy's records are as bloated and boring as she is."; 'Roger', 'Knowles': "Roger's files list him as the primary shareholder of the club, giving him the ability to make membership decisions completely at his own discretion."; 'Williams', 'William', 'ms': "Ms. Williams's cheques go back to the fifties, when the club first opened."; 'Keith': "Ten thousand dollars a year. No wonder he takes you to basements instead of the Four Seasons."; 'Scott', 'assistant': "Hmm, there's a work invoice for an assistant here, but the hours are erratic and many of them occur late at night."; default: "That name doesn't seem to be on file."; } } else "You'd best ensure you have some privacy before you go rifling through the cabinets."; } else { wn = consult_from; w = NextWord(); switch (w) { 'Julia', 'Hawthorne', 'frank': "Hmm, what's this? The account Frank has been using to pay for dues isn't anyone that you recognize. How dare he? A marriage is supposed to be about trust!"; 'Cynthia', 'Fordham': if (self.cynthia_consulted == false) { (self.cynthia_consulted = true); cupboards.allergy_known = true; Achieved(4); "Cynthia's financial records are boring, even for accounting forms; however, towards the end, you find a health notice. Well, well, it looks like someone's allergic to peanuts. ^^Just as you close the cabinet, you hear faint footsteps outside the door. ~Who's in there?~ You hear Charles call as he thuds on the door."; } if (self.cynthia_consulted == true) "Cynthia's financial records are boring, even for accounting forms; however, towards the end, you find a health notice. Well, well, it looks like someone's allergic to peanuts."; 'Charles', 'Burton': "Eighty thousand dollars a year. Well now you see why it costs three dollars for a glass of Perrier."; 'desk', 'furniture', 'requisition', 'invoice', 'table', 'form': self.desk_consulted = true; "Interesting. It's an invoice from an antique dealer in Manhattan. Eight thousand dollars for a new desk? That's a little pricy even for Pine Meadows. You wonder how it was ever approved."; 'Melissa', 'Stratham', 'Johnathan', 'mel': "The cheques are made out from her husband. She may be young, but at least she knows how to work it."; 'Beverly', 'Bev', 'Winters': "What's this? A note from Beverly's mother to Charles reminding him of Beverly's fiftieth birthday that is approaching soon. Well it's about time: she's been forty-five for six years now."; 'Cissy', 'Cecilia', 'Winnecott': "Cissy's records are as bloated and boring as she is."; 'Roger', 'Knowles': "Roger's files list him as the primary shareholder of the club, giving him the ability to make membership decisions completely at his own discretion."; 'Williams', 'William', 'ms': "Ms. Williams's cheques go back to the fifties, when the club first opened."; 'Keith': "Ten thousand dollars a year. No wonder he takes you to basements instead of the Four Seasons."; 'Scott', 'assistant': "Hmm, there's a work invoice for an assistant here, but the hours are erratic and many of them occur late at night."; default: "That name doesn't seem to be on file."; } } ], has scenery pluralname; Object window "office window" with name 'window' 'pane' 'view', description [; if (location == office && window hasnt open) "The window provides a wonderful view of the golf course. In fact, from up here, you can barely see how ill-kept the green is or how polluted the water."; if (location == office && window has open && behind_club hasnt visited) "The window provides a wonderful view of the golf course. In fact, from up here, you can barely see how ill-kept the green is or how polluted the water. Poking your head out, you see a trellis wrapped in ivy reaching up and around the window, starting at the base of the building."; if (location == office && window has open && behind_club has visited) "The window provides a wonderful view of the golf course. In fact, from up here, you can barely see how ill-kept the green is or how polluted the water. Poking your head out, you see a few rusty staples and a couple of broken boards: all that remains of the trellis."; if (behind_club.charles_looking == true) "It's difficult to see through the bushes, but you are just able to see Charles leaning out the window, looking down at where you fell."; else "You see no one in the window."; ], before [; Search: if (location == office && window hasnt open) "The window provides a wonderful view of the golf course. In fact, from up here, you can barely see how ill-kept the green is or how polluted the water."; if (location == office && window has open && behind_club hasnt visited) "The window provides a wonderful view of the golf course. In fact, from up here, you can barely see how ill-kept the green is or how polluted the water. Poking your head out, you see a trellis wrapped in ivy reaching up and around the window, starting at the base of the building."; if (location == office && window has open && behind_club has visited) "The window provides a wonderful view of the golf course. In fact, from up here, you can barely see how ill-kept the green is or how polluted the water. Poking your head out, you see a few rusty staples and a couple of broken boards: all that remains of the trellis."; if (behind_club.charles_looking == true) "It's difficult to see through the bushes, but you are just able to see Charles leaning out the window, looking down at where you fell."; else "You see no one in the window."; Enter: if (location == office && window has open){ PlayerTo(bushes); StopDaemon(charles_desk); return true; } if (location == office && window hasnt open) "But the window is closed."; else "With the trellis broken, there is no way to reach the window."; Climb: if (location == office && window has open) { PlayerTo(bushes); StopDaemon(charles_desk); return true; } if (location == office && window hasnt open) "But the window is closed."; else "The trellis is little more than broken wood and ivy now. You'll have to find some other way in to the office."; ], found_in behind_club office, has openable scenery; NPC charles "Charles" with name 'Charles' 'Man' 'Burton' 'mr' 'registrar', initial [; if (self.charles_seen == false) { self.charles_seen = true; "Charles sits at his desk, pushing some papers around to at least give the impression that he's worth the money the club pays him."; } else print (string) random("Charles sits at his desk, pushing some papers around to at least give the impression that he's worth the money the club pays him.^", "Charles glances up at you nervously.^", "Looking at the stack of papers on his desk, Charles sighs dramatically.^"); ], charles_seen false, !FOR INITIAL seen_charles false, !FOR DAEMON blackmailed false, each_turn [; if (self.seen_charles == false) { self.seen_charles = true; "^~Julia!~ Charles says nasally. ~So good to see you. Can I help you with anything?~"; } else return false; ], description "Although his skin sags and his hair hangs in gray wisps around his scalp, Charles has a certain vibrancy to him.", react_before [; Close: if (noun == charles_door) "~Please leave the door open, Julia.~"; else return false; Call: if (self.blackmailed == false) { move charles_office to all_hints; "~I'm sorry, Julia, but the phone is for official business only.~"; } else return false; Consult: if (self.blackmailed == false && noun == cabinet or nothing) { move charles_office to all_hints; "~Sorry, Julia, but those files are confidential,~ he says as you reach for the cabinet."; } else return false; Go: if (noun == d_obj or out_obj) "Charles might think that a little odd."; else return false; Enter: if (noun == charles_door) return false; if (noun == window or out_obj) "Charles might think that a little odd."; Climb: "Charles might think that a little odd."; ], before [ w; Blackmail: if (self.blackmailed == true) "You've already gotten all you need out of him. No need to humiliate him further."; else { wn = consult_from; w = NextWord(); switch (w) { 'desk', 'invoice', 'requisition', 'form': if (self.blackmailed == false && (cabinet. desk_consulted == true || office. desk_consulted == true)) { Achieved(19); self.blackmailed = true; "~This is a beautiful desk, Charles. Wherever did you get it?~ you say, gently gliding your finger across the edge. ^^~Well, I, um. I got it from a place in Queens. The club said I deserved it.~ He mops a bit of sweat off his brow. ^^~Really? It's absolutely exquisite. In fact, it is identical to the one I saw in Manhattan.~ ^^~Um, you see, this one is an imitation. It's quite a common design.~ ^^~Uh huh,~ you say, giving Charles a disbelieving stare. ^^For a few moments, Charles tugs at his tie, getting more and more flushed. ~Yes, well, as you can see, I'm very busy,~ he says, pushing around his papers some more. ^^~Uh huh,~ you repeat, never taking your eyes off of him. ^^Finally, he cracks. ~Alright, alright, I did get it in Manhattan. I was just so beautiful, I couldn't resist.~ He sounds almost relieved to get it off his chest. ~You won't tell anyone, will you?~ he implores, eyes moist. ^^~Well, that depends,~ you say cryptically. ^^~On what?~ A gulp. ^^You glance over at the phone. ^^~Alright,~ he says, ~Just don't tell anyone I let you.~ ^^~Thanks, Charlie.~"; } if (self.blackmailed == false && (cabinet. desk_consulted == false && office. desk_consulted == false)) "While the desk looks suspicious, you don't actually have any evidence that it isn't a legitimate purchase."; 'Scott', 'assistant', 'whirlpool', 'pool', 'young', 'man', 'gay', 'being', 'homosexual', 'hoe', 'ho', 'prostitute': if (whirlpool hasnt visited) "Those sounds from behind the door really aren't enough to blackmail him with."; if (scott.blackmailed == false) "Although you have a pretty good idea who that young man was, since you don't know for sure, you keep your mouth shut."; if (scott.blackmailed == true) Achieved(19); self.blackmailed = true; "~My, my Charles, you look absolutely flushed. Have you been in the whirlpool?~ you ask gently. ^^~Well, yes I have, Julia.~ --his cheeks get a little redder-- ~It's marvelous. You really must try it sometime.~ ^^~Were you in for long? I saw the door and it said you were signed up for the whole afternoon. I'm only asking because prolonged exposure can be terrible for the skin, let alone the health.~ Your lips pout out a little with feigned concern. ^^~Um, well, I was only in for an hour or so, I'm letting my assistant use the rest of my time.~ Charles tugs a little at his bow tie. ^^~Oh, so you finally found someone to work 'under' you?~ you ask, your emphasis almost tacky. ^^~Yes, his name's Scott. He's worth every penny the club pays him.~ ^^~Oh yes, Scott. I spoke to him.~ Charles face drops. ~He has some very interesting things to say.~ ^^Charles face glistens with sweat. ~Please, Julia. Don't tell anyone, I'll give you anything you want.~ He pleads. ^^~Alright, let me in to those cabinets and let me use your phone.~ ^^~But that is-~ ^^~Or I could just go talk to Mr. Knowles.~ ^^~Ok, ok. Just as long as you don't tell anyone I let you,~ Charles says resignedly and goes back to working on his papers, even less believably than before."; } "Charles isn't afraid of that."; } ], life [; Order: "~I'm a little busy at the moment, Julia,~ he says, looking over the stack of papers and sighing dramatically."; Kiss: if (scott.blackmailed == false) "Ick, why not just kiss a baseball glove instead? Besides, rumor has it he swings the other way."; if (scott.blackmailed == true) "Knowing where his lips have been, you'd rather not."; Attack: "That'd get you kicked out of the club for sure."; Give,Show: if (noun == charles_key) "Better not."; if (noun == pills) { if (phone.doctor_called == false && office. doctor_called == false) "~I won't tell him, but you better not let Mr. Knowles know you take them,~ Charles says, shaking his head."; else "~So Melissa's taking Percodan. What a shame.~"; } else "~I'm sorry, Julia, but I'm rather busy right now.~"; Ask,Tell: if (self.blackmailed == true) "~Please, Julia. I've let you look at the records, isn't that enough?~"; else switch(second) { 'key', 'burglary', 'burglar', 'break-in', 'break', 'in': "~I heard a ruckus in here earlier,~ you say with feigned concern, ~is everything alright, Charles, dear?~ ^^~Oh yes, I don't know what that way all about. I try as hard as possible to get out of this office, why someone would want to break in is beyond me.~"; 'Roger', 'Knowles': "~So, what do you think of Mr. Knowles?~ you ask, carefully neutral. ^^~Well, he's the real power in the club. I can't make any major decisions without his approval.~"; 'pill', 'pills', 'percodan', 'drug', 'drugs', 'tablets', 'caplets': "~I won't tell him, but you better not let Mr. Knowles know you take them,~ Charles says, shaking his head."; 'phone', 'telephone', 'call', 'calls': "~Oh, Charles, hon, would you mind if I used your phone?~ ^^~I'm sorry, Julia, but the phone is for official business only.~"; 'police', 'cops', 'authorities', '911': "~I wonder what's taking the police so long,~ you say. ^^~I know!~ Charles says, surprised. ~You'd think that with all the rich folks here they wouldn't take so long.~"; 'Pine', 'Meadows', 'club': "~What do you think of Pine Meadows, lately?~ ^^~I've really turned this place around, if I do say so myself.~ ^^Although it sounds more like he's trying to convince himself than you."; 'Charles', 'Burton', 'himself', 'self': "~How are you, Charles, dear?~ ^^~I'm fine, so nice of you to ask.~"; 'pool', 'whirlpool', 'spa': if (whirlpool hasnt visited) "~I hear you were in the whirlpool earlier.~ ^^~Oh my yes, there's nothing quite like it. Really, Julia, you should try it sometime,~ he says, eyes glazing over fondly."; else "Charles pretends not to hear you."; 'scott', 'assistant', 'helper', 'boyfriend', 'hustler', 'hoe', 'prostitute': if (whirlpool hasnt visited) "~So how's that new assistant working out?~ ^^~Great fellow, he's been such a help, what with all that needs doing around here.~"; if (scott.blackmailed == false) "~My, so I met your new assistant in the whirlpool,~ you say. ~Charming fellow.~ ^^~Oh yes, and he's been working so hard lately. I thought he deserved to use my whirlpool time.~"; if (scott.blackmailed == true) "~So I was talking to Scott, and he had some of the most interesting things to say.~ ^^~Um, ah.~ Charles tugs at his bow tie. ~I don't know what you're talking about.~"; 'keith', 'lover', 'affair', 'adultery', 'rumor', 'rumour', 'rumors', 'rumours', 'gossip', 'basement', 'picture', 'photo', 'pic', 'camera', 'photograph': "~I suppose, by now, that you must have heard about Keith and I.~ ^^~Well, yes. It's really none of my business,~ he says, blushing, ~but if in the future you could refrain from doing it in the basement, that'd be great. Pine Meadows is a family place.~"; 'salary', 'pay', '$80000', 'eighty', 'thousand', 'eighty thousand', 'money': "~I say, you sure earn a lot of money here.~ ^^~Well, with all the hard work I do, I'm worth every penny.~"; 'Cynthia', 'Fordham', 'Melissa', 'Stratham', 'Beverly', 'Winnecott', 'Winters', 'Cecilia', 'Cissy', 'Frank', 'Williams', 'ms': "~I'm sorry, Julia, but as registrar I'm privy to a lot of personal information that I'm not allowed to divulge to anyone.~"; 'window', 'view', 'golf', 'course': "~I simply adore the view from up here,~ you say, looking out and seeing the ruined trellis. ^^~Well yes, it is quite soothing to see all that well pruned nature.~"; 'restored', 'antique', 'oak', 'desk', 'table': "~I simply love your desk,~ you say sweetly. ^^~I just picked it up last week, isn't it magnificent?~"; 'cabinets', 'cabinet', 'row', 'file', 'files': "~Do you mind if I have a look in those files over there?~ you say, pointing at the cabinets. ^^~I'm sorry, Julia, but those files are confidential.~"; 'paper', 'papers', 'paperwork': "~My, my, that's a lot of paperwork,~ you say. ^^~True, I am absolutely swamped,~ he says, rearranging the papers on his desk slightly."; } "~I'm sorry, Julia, but I'm really quite busy.~"; ], has animate proper male; Object phone "telephone" charles_desk with name 'phone' 'telephone' 'receiver' 'button' 'buttons' 'jack' 'cord', description "With rules against cell phones and a desire for leaving the outside world outside, this is the only phone at Pine Meadows.", doctor_called false, before [ w; Take: "You don't want it. Besides, there's only one jack in Pine Meadows."; Call: if (charles notin office) "Better not, someone might hear you."; else { wn = consult_from; w = NextWord(); switch (w) { 'frank', 'husband': "It's bad enough talking to him when he's around."; '911', 'emergency', 'fire', 'police': "You've tried before, but the authorities just don't see fashion disasters as being as serious as you do."; 'doctor', 'dr', 'doc', 'ferguson', 'melissa^s': if (pills.number_known == true) { if (self.doctor_called == false) { Achieved(18); self.doctor_called = true; "Suspicious about those pills, you call up Dr. Ferguson. ^^~Hi, Dr. Ferguson. This is Angie from Dr. Leeds office,~ you say in as nasal a voice as you can muster. ~I'm calling in regards to a patient of yours, one Melissa Stratham.~ ^^~Yes, what can I do for you?~ he asks, more than a little perturbed to be disturbed. ^^~Well, Mrs. Stratham told us that you gave her a prescription for Percodan to be renewed indefinitely and--~ ^^~What? She's still taking them? They're highly addictive!~ he says with concern, more likely from fear of malpractice than genuine compassion. ^^~Alright, Dr. Ferguson. I'll notify Betty Ford right away.~ ^^With that, you hang up the phone and ignore Charles's odd looks."; } else "You've gotten all you need from Dr. Ferguson."; } else "You don't have the number."; } "You don't have the number."; } ], has static; !--------------------------------------------------------------------------- !BEHIND CLUB !--------------------------------------------------------------------------- Room behind_club "Behind the club" with cant_go "With the trellis destroyed, the only way you can go is through the trail to the southwest.", initial [; if (wine notin player) { StartDaemon(self,3); move charles_window to self; "As soon as your head ducks below the windowsill, you hear Charles (obviously with some assistance) break open the door and shriek: ~The window, they've gone out the window!~ ^^Quickly, you begin to climb down the trellis, careful not to get your heels snagged in the ivy. However, you're more adept at navigating a concrete jungle than a real one, and soon one of your pumps gets caught on a particularly nasty weed. You kick wildly for a few moments, but it's to no avail; you lose your balance and tumble in to the bushes below, dragging the wreckage of the trellis with you."; } else StartDaemon(self,3); move charles_window to self; remove wine; "As soon as your head ducks below the windowsill, you hear Charles (obviously with some assistance) break open the door and shriek: ~The window, they've gone out the window!~ ^^Quickly, you begin to climb down the trellis, careful not to get your heels snagged in the ivy. However, you're more adept at navigating a concrete jungle than a real one, and soon one of your pumps gets caught on a particularly nasty weed. You kick wildly for a few moments, but it's to no avail; you lose your balance and tumble in to the bushes below, dragging the wreckage of the trellis with you. ^^Unfortunately, the glass of wine doesn't fair as well as you and is lost in the fall: the wine spilled and the glass shattered."; ], description [; if (self has visited) "Yours are probably the first feet to tread here since the trellis was installed. The bushes have none of the carefully manicured branches or unnaturally bright flowers of their cousins in the garden. Instead, they are twisted with many sharp little thorns. They thin a little to the southwest."; else "Ow! While the bushes cushion your fall, preventing any serious damage, their thorns still manage to tear at your clothes and cling at your hair. As you pluck the spikes from your face, you hear Charles screaming from the window above."; ], after [; Wait: if (self.charles_looking == true) "Although the thorns continue to poke in to your soft skin, you decide you'd rather put up with that for a few minutes than let Charles see you."; ], charles_looking true, each_turn [; if (player notin bushes && self.charles_looking == true){ print "^Without the cover of the bushes, Charles easily sees you. The criminal charges are no big deal, but being seen by the whole club being pulled from the bushes by the police is almost too much to bear."; (deadflag = 3); } if (self has visited) move charles to office; else return false; ], turns_in_bushes 0, daemon [; self.turns_in_bushes = self.turns_in_bushes + 1; switch (self.turns_in_bushes) { 1: return false; 2: "^~Can you see them?~ You hear a voice ask from above. ^^~No, they're in the bushes,~ Charles replies."; 3: "^~Well is there any more you want me to do?~ ^^~Nah, go back to the whirlpool, I'll take care of things here.~"; default: StopDaemon(self); Achieved(6); remove charles_window; self.charles_looking = false; "^~That's it! I'm going to call the police,~ you hear Charles call to you from above. At least he's gone from the window now."; } ], before [; Go: if (noun == sw_obj) { print "You battle your way through the underbrush for what must literally be minutes until you arrive in the garden.^"; return false; } else return false; Hide: if (self.charles_looking == true) "Although the thorns continue to poke in to your soft skin, you decide you'd rather put up with that for a few minutes than let Charles see you."; ], sw_to garden, has ; Object charles_window "Charles" with name 'charles' 'burton' 'mr' 'registrar', description "It's difficult to see through the bushes, but you are just able to see Charles leaning out the window, looking down at where you fell.", before [; Examine: return false; default: "He's too far away."; ], has scenery animate proper male; Object trellis "trellis" with name 'trellis' 'ivy' 'lattice' 'ladder', description [; if (location == office && behind_club hasnt visited) "Poorly maintained and wrapped in ivy, the trellis leads down the side of the building, disappearing in to the thorn bushes below."; if (location == office && behind_club has visited) "All that remains of the trellis is a few rusted staples and a broken board or two."; else "The trellis lies in a mangled heap at the base of the wall."; ], before [; Climb: if (location == office && window has open) { PlayerTo(bushes); StopDaemon(charles_desk); return true; } if (location == office && window hasnt open) "But the window is closed."; else "The trellis is little more than broken wood and ivy now. You'll have to find some other way in to the office."; ], found_in office behind_club, has scenery; Object bushes "thorn bushes" behind_club with name 'bushes' 'branches' 'briars' 'brambles' 'leaves' 'thorn' 'bush' 'thorns', description "Although the same kind grow in the garden in front of the club, those ones are kept in check with meticulous grooming. These, without a gardener to tend to them, have grown wildly, as if making up for the complacency of their sisters.", before [; Take,Attack: "While you enjoy senseless destruction of nature as much as the next Republican, now is not the time."; ], react_before [; Go: if (player in bushes) "You'll have to get out of the bushes first."; else return false; ], react_after [; Exit: StopDaemon(behind_club); give charles_door ~lockable; give charles_door ~locked; remove charles_clothes; ], has pluralname scenery enterable transparent; Object trail "trail" behind_club with name 'trail' 'path' 'thinning' 'thin', description "It'd be slow going, but you could probably get through it if you tried.", before [; Enter: print "You battle your way through the underbrush for what must literally be minutes until you arrive in the garden.^"; PlayerTo(garden); return true; ], has scenery; !--------------------------------------------------------------------------- !CENTRE HALL !--------------------------------------------------------------------------- Room centre_hall "Foyer" with description "Putting the club's best foot forward is clearly the purpose of the foyer. A stately crystal chandelier scatters daylight into kaleidoscopic patterns. Two verdant plants stand next to a set of double doors to the north, their leaves extended as if to usher people in to the banquet hall. To the south, next to the exit to the gardens, is a bulletin board. The hall continues to the west and east.", after [; Go: if(noun == w_obj) print "You make your way through the east wing to the foyer.^"; ], w_to west_hall, s_to garden, e_to garden_path, n_to "The hall is closed until tonight's banquet.", has ; Object foyer_plants "plants" centre_hall with name 'plant' 'plants' 'leaves' 'pot' 'potted' 'copper' 'urns', description "Normally you aren't all that fond of plants, but these two have a subdued elegance that you find pleasing.", before [; Take,Attack: "While you enjoy senseless destruction of nature as much as the next Republican, now is not the time."; ], has scenery pluralname; Object chandelier "chandelier" centre_hall with name 'chandelier' 'light' 'lights' 'crystal' 'brass' 'quartz', description "Exquisitely crafted from quartz and brass, the chandelier has a stately charm reminiscent of Romanov Russia, before the rabble rose with all their drab olives and fireless reds.", has scenery; Stuff bulletin_board "bulletin board" centre_hall with name 'bulletin' 'message' 'board' 'cork' 'post', description [; if (announcement has moved) "Although seemingly impossible, somehow this cork bulletin board, with its oak border and brass inlay, manages to appear elegant. I guess all it takes to make a silk purse out of a sow's ear is money. A fact illustrated by many of Pine Meadows's patrons. The bulletin board has nothing interesting on it."; else "Although seemingly impossible, somehow this cork bulletin board, with its oak border and brass inlay, manages to appear elegant. I guess all it takes to make a silk purse out of a sow's ear is money. A fact illustrated by many of Pine Meadows's patrons. On the bulletin board is an announcement."; ], has ; Object announcement "banquet announcement" centre_hall with article "the", name 'message' 'announcement' 'banquet' 'note' 'notice', description "This note announces the charity banquet going on tonight. It's supposed to be the gala event of the season and, as such, you bought your tickets months in advance. The doors open at six-thirty followed by the ~Opening speech by Julia Hawthorne; Philanthropist of the Year~ at quarter to seven. The donation seemed like a good idea at the time but with all that's happened today, you're kind of regretting it.", after [; Examine: program.speech_known = true; ], has concealed; Object banquet_door "door to the banquet hall" centre_hall with name 'door' 'doors' 'double' 'banquet' 'oak' 'heavy' 'doorway' 'to' 'the' 'hall', article "the", description "Heavy oak doors with brass inlay block the way to the banquet hall. Too bad the hall itself isn't so tasteful.", before [; Open: "The doors are locked until the banquet."; Close: "The doors are already closed."; Listen: "You hear the help bustle about preparing the room for tonight."; Knock: "No one answers."; ], has scenery lockable locked openable; !--------------------------------------------------------------------------- !GARDEN !--------------------------------------------------------------------------- Room garden "Garden" with each_turn [; if (self has visited) move what_with_melissa to all_hints; else return true; ], description "Being this far out in the country, the garden is really the only place at Pine Meadows where nature exists, yet isn't out of control. The topiary is subtle, no garish animals or ambitious creations. Flowers line the drive to the south, down which the valet service lies. A path, hedged with rose bushes, curves round the club to the northeast, and the club itself lies to the north.", before [; Smell: if (noun == nothing) "Ugh, that's what roses smell like? Where's the benzaldehyde? the phenetol?"; else return false; ], n_to centre_hall, s_to "If you leave the club without getting that film you'll be ruined.", ne_to garden_path, cant_go [; if (melissa in self) "~Really, Julia,~ Melissa smirks as you try to push into the shrubbery. ~I'm surprised someone with your reputation has such an affinity for bushes.~"; else "You're ragged enough without tramping through the bushes again."; ], has ; Object topiary "topiary" garden with name 'trees' 'carvings' 'topiary' 'shrubs' 'bushes' 'twists' 'spirals' 'garden' 'moderne' 'shrubbery', article "the", description "The ultimate triumph of man over the wildness of nature, the topiary is carved in to various twists and spirals. Although a little moderne for your tastes, at least it's in keeping with the overall trend of Pine Meadows.", before [; Take,Attack: "While you enjoy senseless destruction of nature as much as the next Republican, now is not the time."; ], has scenery; Object flowers "rose bushes" with name 'flowers' 'rose' 'bushes' 'hedge' 'hedges' 'path' 'trail' 'flower' 'bush' 'pink', description "Hedges of rose bushes frame the sides of the path, their little pink flowers swaying in a cool breeze.", before [; Take,Attack: "While you enjoy senseless destruction of nature as much as the next Republican, now is not the time."; Smell: "Ugh, that's what roses smell like? Where's the benzaldehyde? the phenetol?"; ], found_in garden garden_path, has scenery; Object drive "drive" garden with name 'road' 'street' 'pavement' 'drive' 'way' 'valet' 'driveway' 'service', article "the", description "The drive winds its way down the hill.", has scenery; Object bench "wooden bench" garden with name 'bench' 'chair' 'iron' 'cedar' 'seat' 'wooden', description "Elegantly crafted of wrought iron and cedar, the bench serves only those few members of the club that can tolerate nature for more than a few moments at a time.", before [; Enter: if (melissa in garden) "As you go to sit down, Melissa slides her handbag over, indicating her displeasure at your attempt."; else "You'd rather not. You're one of those members that can't stand nature."; ], has scenery supporter enterable; NPC melissa "Melissa" garden with name 'Melissa' 'Stratham' 'mel' 'woman' 'pearls' 'pumps' 'sweater', initial [; if (garden hasnt visited) "Melissa Stratham, wife to Johnathan Stratham, sits here on a bench, delicately leafing through a paperback novel. ^^As she sees you enter, she looks up and grins impishly. ~Oh, Julia,~ she says, closing her book for a moment. ~I'm surprised to see you here. I thought you preferred to do your hoeing in the basement.~"; else print (string) random("Melissa's head droops for a moment before she shakes herself awake.^","Melissa continues to read her book.^", "Melissa continues to read her book.^", "Melissa continues to read her book.^", "Getting to a particularly steamy passage, Melissa fans her neck vigorously.^", "Getting to a particularly steamy passage, Melissa fans her neck vigorously.^", "Melissa glances at you and smirks.^"); ], description "Quite a few years your junior, Melissa is remarkably bold in your presence, owing, no doubt, to the influence of that shrew, Beverly Winters. Melissa even dresses like her: pearls, pumps, sweater knotted about her shoulders. She would have done so much better to have followed in your footsteps, at least then she could have had a sense of style.", melissa_known false, melissa_suspected false, blackmailed false, seen_from_bushes false, seen_bleach false, hall_said false, seen_hair false, each_turn [; if (access_hall has smelled && melissa has smelled) { self.melissa_suspected = true; Achieved(17); } if (behind_club has visited && self.seen_from_bushes == false) { self.seen_from_bushes = true; "^~My, my. First the basement, now the bushes? Ever heard of a bed?~ Melissa says, smirking."; } if (bleach in player && self.seen_bleach == false) { self.seen_bleach = true; "^Melissa glances down at the bottle in your hands. ~Oh, so that's what you're using to bleach your hair now. Well that explains the split ends.~"; } if (loose_hairs in player && self.seen_hair == false) { self.seen_hair = true; "^~Well, well,~ Melissa clucks, looking down at the loose hairs in your hand, ~Keith is friskier than I thought.~"; } else return false; ], before [ w; Receive: if (noun == bleach) "You'd rather avoid the three to five in Riker's."; if (noun == wine) "It'd be hard to make it look accidental here."; Smell: if (access_hall has smelled) { give melissa smelled; "You raise your nose ever so slightly and sniff. Chanel #5, definitely the same as in the hall."; } else { give melissa smelled; "Chanel #5, a little common for your tastes, in fact you vaguely remember smelling it, but you can't place where."; } Blackmail: if (self.melissa_known == true || self. melissa_suspected == true) { wn = consult_from; w = NextWord(); switch (w) { 'pill', 'pills', 'bottle', 'Ferguson', 'dr', 'doctor', 'prescription', 'percodan', 'drug', 'drugs', 'roger', 'knowles': if (phone.doctor_called == false && office.doctor_called == false) "~I don't care where you found them, those pills aren't mine,~ Melissa says. ^^If you're going to blackmail her with the pills, you better get some proof first."; if (roger.opinion_known == false) "You tell Melissa about your conversation with Dr. Ferguson. ^^~Oh, please. This is the new millenium. Who cares if I indulge in a little Percodan now and then?~"; else remove melissa; move what_now to all_hints; Achieved(12); self.blackmailed = true; move film to player; "~Oh, Melissa,~ you say, smiling, ~I was just talking to Roger Knowles, you know, primary shareholder of the club, the man with the power to make or break? Well, he had some of the most interesting things to say about, how did he put it, oh yes, 'junkies.' I just thought you might--~ ^^~Cut the crap, Julia, what do you want?~ she says, her boldness replaced by anger. ^^~Now, now. No need for such language,~ you say, enjoying your moment. ~Just give me the film and no one need know your dirty little secret.~ ^^~Fine, take it,~ she says, pulling a roll of film from her handbag and tossing it at you. With that, she stomps off from the garden. However, as she does, she calls back to you, a hint of satisfaction in her voice. ~But if you want the photo itself, you might want to talk to the person who's behind all this.~ ^^~Who?~ you ask, painfully aware of how little time is left until the banquet. ^^~Who do you think? Who stands to gain the most by you and Frank splitting up? Besides Frank of course.~ And with that, she's gone."; 'facelift', 'face', 'lift', 'plastic', 'surgery', 'cosmetic', 'napa', 'mask', 'masque', 'avocado': "You could, but she could do the same to you, just a lot better."; 'Charles', 'burton', 'registrar': "~Oh please, we both know Charles has no power here.~"; } "~Now why would that scare me?~ Melissa says, and returns to her book."; } else "As fun as it would be to ruin her life without cause, you probably should have something in mind that you want before you do it."; ], lied_about_cynthia false, life [; Show,Give: if (noun == bleach) "^Melissa glances down at the bottle in your hands. ~Oh, so that's what you're using to bleach your hair now. Well that explains the split ends.~"; if (noun == loose_hairs) "^~Well, well,~ Melissa clucks, looking down at the loose hairs in your hand, ~Keith is friskier than I thought.~"; if (noun == pills) { if (phone.doctor_called == false && office. doctor_called == false) "~I don't care where you found them, those aren't mine,~ she says, shifting slightly in her seat. ^^It's your word against hers right now, and with your reputation for gossip, you'll definitely need proof before she'll admit that the Percodan's hers."; else "You tell Melissa about your little conversation with Dr. Ferguson. ^^~So they're mine. No one but the most backwards fossil would care about my little indulgence.~"; } if (noun == camera) { if (self.melissa_suspected == true && self. melissa_known == false) "~It wasn't me. The camera is Cynthia's.~"; if (self.melissa_known == true) "You confront Melissa, knowing that it was she in the hall. ^^~Well I've always had a knack for photography. I'm just glad I could finally put it to good use,~ she says, smiling smugly."; else self.lied_about_cynthia = true; "~Oh, that's nice. Cynthia has a model just like it.~"; } else "~Now why would I care about that?~"; Kiss: "Hey, I don't know what you heard, but that time in Bryn Mawr was a one-time thing!"; Attack: "You should probably try to avoid criminal charges."; Order: "~Save it for the help, Julia,~ Melissa sneers, peering at you from behind her book."; Ask,Tell: switch(second) { 'cell', 'cellular', 'mobile', 'phone', 'telephone', 'calling', 'phoning': "~Do you happen to have a cell I could borrow for a moment?~ you say, swallowing your pride. ^^~Please, Julia. I come to Pine Meadows to get away from the world, there's no way I'd bring my cell here.~"; 'dining', 'area', 'outside', 'eating': "~So, Melissa, why aren't you in the dining area?~ ^^~Ugh, the food there is atrocious. Not to mention the company,~ she says, then, glancing up at you, ~of course, it's starting to not look so bad.~"; 'clothes', 'clothing', 'style', 'pearls', 'pumps', 'sweater', 'saks', 'fifth', 'avenue': "~What's with all this?~ you ask, gesturing up and down with a well manicured hand. ^^~Don't you just love it? Beverly took me to Saks Fifth Avenue.~ ^^Please, Saks is so nineteen-ninety-eight."; 'julia', 'me', 'self', 'hawthorne': "~I'm fabulous, aren't I?~ ^^~Well, you're no Beverly, but at least you aren't a nouveau.~ ^^That's funny, coming from her."; 'bench', 'seat', 'chair': "~Really, Melissa, isn't that bench rather hard?~ ^^~Yes, it's a little uncomfortable,~ she says, shifting slightly, ~but it beats sitting in the dining area.~"; 'handbag', 'hand', 'bag', 'purse', 'delicate': "~That's some purse you have there.~ ^^~Isn't it just exquisite?~ she says, dangling her purse delicately from her finger. ^^~Well it's something,~ you mumble."; 'trees', 'carvings', 'topiary', 'shrubs', 'bushes', 'twists', 'spirals', 'moderne': "~So, Melissa, what do you think of the topiary?~ ^^~Don't you just love it? It really speaks to the truth of the human condition,~ she says, turning her nose up more than you would have thought possible. ^^Hardly, but then again you wouldn't know. You only go to galleries to get away from Frank."; 'Ferguson', 'dr', 'doctor': "~So who is this Dr. Ferguson I've been hearing so much about? A new surgeon?~ ^^~Hardly, he was my GP a few months back.~"; 'roger', 'knowles': "~So what do you know of Roger Knowles?~ ^^~Ugh,~ she says, wrinkling her nose, ~that man is an ogre.~"; 'pill', 'pills', 'bottle', 'prescription', 'percodan', 'drug', 'drugs': if (phone.doctor_called == false && office.doctor_called == false) "~Melissa, darling, I'm concerned,~ you say sweetly, ~I found some pills in your locker.~ ^^~I don't care where you found them, they aren't mine,~ she says, shifting slightly in her seat."; else "You tell Melissa about your little conversation with Dr. Ferguson. ^^~So they're mine. No one but the most backwards fossil would care about my little indulgence.~"; 'access', 'hall', 'spy', 'spying', 'basement', 'closet': if (self.melissa_suspected == true && self. melissa_known == false) "~What were you doing in the basement? And don't deny it, it reeked of Chanel, just like you.~ ^^~Really, Julia. This paranoia is most unbecoming. A lot of people wear Chanel #5,~ Melissa says, shifting in her seat slightly."; if (self.melissa_known == true) { if (self.hall_said == false) { self.hall_said = true; "~What were you doing in the basement?~ you ask, slowly. ^^~I don't--~ Melissa starts. ^^~Enough!~ you growl, momentarily losing your composure. ~I know it was you in the hall.~ ^^~Alright, so you know it was me. You'll never get the film though,~ she says, patting her handbag assuredly."; } else "You already know it was Melissa. Now to find some leverage against her."; } else "~What were you doing in basement?~ you demand, calm but firm. ^^~I don't know what you're talking about,~ she says, returning to her book."; 'perfume', 'fragrance', 'smell', 'odor', 'scent', 'chanel', '#5': give melissa smelled; "~That's a charming fragrance, Melissa. Whatever is it?~ ^^~It's Chanel #5, do you like it?~ ^^~Well, no. But then again, I have taste,~ you reply snidely."; 'Cynthia', 'Fordham': "~What do you know of Cynthia?~ ^^~I'd watch your step around her. She's a sly one.~"; 'hoeing', 'keith', 'lover', 'boyfriend', 'rumors', 'rumours', 'rumor', 'rumour': if (melissa.melissa_known == false) "~I suppose you heard about Keith and I.~ ^^~Oh that, you know how this place is. News spreads fast.~"; else "~You're the one who told everyone about Keith and I, aren't you?~ ^^~Alright, so you know it was me, what of it?~"; 'picture', 'photo', 'photograph', 'film', 'camera': if (melissa.melissa_known == false) "~Have you heard of a certain photo making it about the club?~ ^^~Oh yes, I heard someone had taken a photo of you as you were, indisposed. There's just no privacy any more is there?~"; else "~You're the one who took the photo, aren't you?~ ^^~Well I've always had a knack for photography. I'm just glad I could finally put it to good use,~ she says, smiling smugly."; 'paper', 'paperback', 'novel', 'romance', 'novella', 'book', 'Danielle', 'Steel': "~That's quite a book you have there.~ ^^~Do you like it? I thought you might. It's about a wealthy heiress and her affair with the stableboy.~ She pauses, thoughtfully. ~Hey, perhaps you could write your own. You know, update it for the modern world. I'm sure you have enough material.~"; 'Cissy', 'Cecilia', 'Winnecott': "~My God, did you see what Cissy was wearing?~ ^^~Oh, that woman. She just does not know interesting photography. Cynthia on the other hand...~ Melissa lets her words trail off deliberately."; 'Bev', 'Beverly', 'Winters': "~You've taken quite a shine to Beverly, haven't you?~ ^^~Well yes I have. It was so kind of her to take me under her wing. Now there's a woman who knows how to get what she wants.~"; 'Frank': "~So what do you think of my husband?~ ^^~Well he will certainly spice up the banquet. He is going to be there, isn't he? It just won't be any fun without him.~"; 'nouveau', 'nouveaus', 'new', 'money', 'riche': "~The nouveaus are just everywhere these days.~ ^^~Yes, terrible, aren't they? Pine Meadows just hasn't been the same since they started flocking in.~ ^^Please, where does she get off? Marrying old money doesn't make one old money."; 'Charles', 'Charlie', 'Burton': "~That Charles is something else, isn't he?~ ^^~Don't get me started. That man is such a bore. I dread each time I have to pay my dues and listen to him speak.~"; 'banquet', 'tonight', 'dinner', 'charity', 'announcement': "~Are you looking forward to the banquet?~ ^^~Well yes I am. It promises to be quite interesting, don't you think?~"; 'country', 'garden', 'flowers', 'flower', 'roses', 'rose', 'bush', 'bushes': "~You're rather fond of this garden, aren't you?~ you ask, with only the slightest hint of derision. ^^~Delightful, is it not? It's the only refuge from those dreadful bores in the dining area.~"; 'john', 'johnny', 'jonathan', 'johnathan', 'husband': "~So where is your husband, anyway?~ ^^~He's gone to London for business until the end of the month. It's like I never get to see him any more. How is a girl supposed to stay faithful?~ --she glances at you-- ~Well I guess I'm asking the wrong person.~"; 'facelift', 'face', 'lift', 'plastic', 'surgery', 'cosmetic', 'napa', 'mask', 'masque', 'avocado': "~It seems you facelift's healing nicely,~ you say with a grin. ^^~Oh let's not get in to all that,~ she says, glancing at your chest, your lips, your eyes, your nose, your tummy, your forehead, your cheeks, and your ass."; 'Pine', 'Meadows', 'club': "~So how are you liking Pine Meadows?~ ^^~Beverly tells me it used to be fun here. That must have been back in your era.~"; 'melissa', 'mel', 'herself', 'her', 'self': "~And how are you doing, Melissa?~ ^^~Oh, you know, keeping busy.~"; } "~Please, Julia. I'm trying to read.~ Melissa says, barely glancing up."; ], has animate proper female transparent; Object book "Melissa's book" melissa with name 'paper' 'paperback' 'novel' 'romance' 'novella' 'Danielle' 'Steel' 'book' 'Mel^s' 'melissa^s', description "It's the latest Danielle Steel: something about a wealthy heiress and a stableboy.", before [; Take: "Please, these books are for people without sex lives. You have two (or would have if you slept with Frank)."; ], has scenery proper; Object film "film" with name 'film' 'negative' 'negatives', description "Here it is: the film. Now you just need to get your hands on that photo and this whole mess will be over.", before [; Attack: remove self; "With a certain violent satisfaction, you tear the film to shreds and toss it away."; ], has ; Object handbag "Melissa's handbag" bench with name 'bag' 'handbag' 'purse' 'Melissa^s' 'mel^s' 'hand', description "Small and delicate, the handbag barely looks strong enough to hold anything.", before [; Take,Touch,Push,Pull: "~Tut, tut, Julia. No you don't~ Melissa says, snatching the bag."; ], has scenery proper; !--------------------------------------------------------------------------- !GARDEN PATH !--------------------------------------------------------------------------- Room garden_path "Garden path" with name 'junction', description "Serving as little more than a junction, the path here leads from the garden in the southwest to the outside dining area in the north and northeast. The club itself lies to the west and the tennis court to the east. To the southeast is the pool, but it is closed for the season.", before [; Smell: if (noun == nothing) "Ugh, that's what roses smell like? Where's the benzaldehyde? the phenetol?"; else return false; ], after [; Go: if(noun == e_obj) print "You make your way through the east wing to the garden path.^"; ], w_to centre_hall, sw_to garden, e_to court, n_to dining_kitchen, ne_to dining_golf, se_to "The pool is closed for the season.", has ; Object swimming_pool "pool" garden_path with article "the", name 'pool' 'water' 'swimming', description "You used to love the pool, or rather being seen at the pool, but now it has gone the way of tennis, golf, the spa, and everything else you ever found amusing at Pine Meadows. The charm of this place is really wearing thin.", before [; Examine: ; default: "The pool is too far away to interact with."; ], has scenery; !--------------------------------------------------------------------------- !TENNIS COURT !--------------------------------------------------------------------------- Room court "Tennis court" with name 'raquet' 'racket', description "Since tennis became pass@'e, this court is mainly used by those few members who actually enjoy the game. In fact, due to the reduced use, the club has even begun letting non-members play on it. You've never been that fond of tennis and with the rabble about, you're loath to even stay on the court. Hardly a big loss. The net droops, the benches are peeling, and the rubber floor sticks to your pumps. Although you are fenced in on most sides, thankfully, you can still leave to the more agreeable outside dining areas to the northwest and north, or the garden path to the west.", w_to garden_path, nw_to dining_kitchen, n_to dining_golf, cant_go [; if (wine in player) "~That's the downside to drinking in the day,~ Beverly says as you clang into the fence, wine in hand. ~That, and you can't drink as much in the evening.~"; else "~Really, Julia,~ Beverly says as you crash into a fence. ~You're getting clumsy in your old age.~"; ], has ; Object net "net" court with article "the", name 'net' 'nets' 'divider' 'rayon' 'dropping', description "The net droops, and your spirits with it. It's fashioned from cheap rayon, not the delicate silk it was made of back when you used to play. You feel trapped just looking at it.", has scenery; Object floor "floor" court with article "the", name 'floor' 'ground' 'rubber', description "Soft with the heat, the rubber floor of the tennis court sticks to your heels, leaving little impressions after your steps.", has scenery; Object benches "benches" court with name 'bench' 'benches' 'seat' 'seats' 'paint' 'peeled' 'grime' 'peeling', description "The only thing sadder than playing a sport that's passed its prime is watching a sport that's passed its prime. Judging from the thick layer of grime on the benches, it seems that the people of Pine Meadows might not be as sad as you thought.", before [; Enter: "The benches are disgusting."; ], has pluralname scenery supporter; Object fence "fence" court with article "the", name 'fence' 'gate' 'fences', description "Combined with the spindly net, the fence makes this area seem far more enclosed than it actually is.", has scenery; Object machine "serving machine" court with name 'serving' 'machine' 'balls' 'ball', description "Once top of the line, the serving machine has seen better days. Its turning mechanism has broken, so now it just shoots out balls at the same speed and same course every time. Good for Beverly's score, bad for everyone else.", before [; SwitchOn,SwitchOff,Push,Pushdir,Pull,Turn: "Better not touch it, you might ruin its predictability and Beverly's game."; ], has scenery; NPC beverly_court "Beverly" court with name 'Beverly' 'Woman' 'Winters' 'Bev', initial [; if (court hasnt visited) "Beverly Winters, a long time member of the club, hops from foot to foot, waiting for a ball to come out of a serving machine at the other end of the court. ^^Barely turning, Beverly starts talking. ~Well, hello, Julia,~ she says, still not facing you. ~Tonight's banquet should be interesting. No?~"; else "Beverly hops from foot to foot, waiting for a ball to come out of a serving machine at the other end of the court."; ], description "Just a couple of years your senior, Beverly joined the club a few months before you. This was back in the prime of Pine Meadows, before the computer boom, before the stock market became a playground for anyone with a couple thousand, before peasant blouses and the anti-fur movement; those were the days. Back then, the only thing to do was engage in dramatic rivalries. And what a rivalry you formed. Playful at first, it soon degenerated in to a spat worthy of the Hatfields and McCoys, that is if the two of you were troglodytic mountain folk. After dying down for a couple of years, the rivalry flared up again when you caught her flirting with Frank at one of last year's charity auctions. Normally you would have been happy to have his hands occupied for a few hours, but the insult was too great to ignore.", before [ w; Smell: "The smells of antiperspirant and sweat battle it out over Beverly. Unfortunately the antiperspirant is winning."; Receive: if (noun == bleach) "While it certainly would be fun, Beverly wouldn't hesitate to call the police."; if (noun == wine) "Beverly does love her wine, but she'd prefer to drink it."; Blackmail: wn = consult_from; w = NextWord(); switch (w) { 'birthday', '50th', 'fiftieth', '45', 'forty-five', 'note', 'age', 'old', '50': "~Oh well, the cat will be out of the bag in a week anyway, so who cares if you tell people now?~"; } "She's not afraid of that."; ], life [; Kiss: "You're not getting anywhere near her acid tongue."; Attack: "You two prefer more subtle ways of expressing your rivalry."; Order: "~Really, Julia. Save it for the help.~"; Show,Give: if (noun == loose_hairs) "^~My, my, my, Julia,~ Beverly says, seeing the strands of hair in your hands. ~I knew you were old, but losing your hair? Really.~"; if (noun == pills) "~So you're an adulterer and a pill-popper? Frank's just the luckiest man in the world, isn't he?~"; if (noun == wine) "~I'd love to, but I want to be as sharp as possible for tonight's banquet.~"; if (noun == camera) "~First Cynthia, now you. When will you people realize no one cares about your cameras?~"; if (noun == film) { if (beverly_clothes.wine_stained == true || beverly_clothes.bleach_stained == true) { remove pills; remove bleach; remove salad; remove cucumber; remove tickets; remove loose_hairs; remove announcement; remove charles_key; remove camera; remove film; remove wine; remove clothes; move change_of_clothes to player; give change_of_clothes worn; Achieved(13); print "~I guess this is what you're after,~ Beverly says, fishing in to her shirt and pulling out a photo. ~Sorry about all I've put you through today, it's just I couldn't afford to let you know I had it until the banquet. You've proved quite resourceful so far. Who knows? Had you known it were me from the start, you might have just been able to stop me.~ She puts the photo back in her blouse. ~Really, Julia, Frank and all his money deserve to be with someone a little more faithful than you. And once he sees this photo he'll realize who that is. Men are so easy to bend when vulnerable, don't you agree?~ ^^~Oh well,~ she says, turning off the machine and wiping the sweat from her brow. As she does, Beverly glances at her watch. ~My, my. Look at the time. I must be getting ready for the banquet. Oh yeah, I forgot to tell you. I talked to Charles and told him about how it had been so long since I had seen Frank and he was more than willing to seat us all together. Isn't that wonderful?~ ^^~See you there,~ she says, throwing her purse over her shoulder and walking off. ^^Beverly was right, the banquet is almost starting, which means Frank will be arriving soon. You run as fast as you can without breaking a sweat to the bathroom, toss your stuff in your locker, and go about making yourself look as presentable as possible. Quickly, you get the extra clothes from your locker, put them on, and go about fixing your makeup. Within twenty minutes (a Pine Meadows record) you are ready and speed your way to the banquet hall, drawing more than a little bit of attention: running is as rare as running shoes amongst these people. ^^Luckily, your speed pays off and you get to the banquet just in time. Frank is just arriving and Beverly is nowhere to be seen, apparently your tampering with her clothes slowed her down long enough. Just as the doors open, Beverly comes racing down the hall with a sweater tied around her waist, casting you a dirty look as she does. With that, you are all ushered in to the hall.^"; move banquet_menu to player; PlayerTo(banquet); return true; } else { (deadflag = 3); print "~I guess this is what you're after,~ Beverly says, fishing in to her blouse and pulling out a photo. ~Sorry about all I've put you through today, it's just I couldn't afford to let you know I had it until the banquet. You've proved quite resourceful so far. Who knows? Had you known it were me from the start, you might have just been able to stop me.~ She puts the photo back in her blouse. ~Really, Julia, Frank and all his money deserve to be with someone a little more faithful than you. And once he sees this photo he'll realize who that is. Men are so easy to bend when vulnerable, don't you agree?~ ^^~Oh well,~ she says, turning off the machine and wiping the sweat from her brow. As she does, Beverly glances at her watch. ~My, my. Look at the time. I must be getting ready for the banquet. Oh yeah, I forgot to tell you. I talked to Charles and told him about how it had been so long since I had seen Frank and he was more than willing to seat us all together. Isn't that wonderful?~ ^^~See you there,~ she says, throwing her purse over her shoulder and walking off. ^^Beverly was right, the banquet is almost starting, which means Frank will be arriving soon. You run as fast as you can without breaking a sweat to the bathroom, toss your stuff in your locker, and go about making yourself look as presentable as possible. Quickly, you get the extra clothes from your locker, put them on and go about fixing your makeup. Within twenty minutes (a Pine Meadows record) you are ready and speed your way to the banquet hall, drawing more than a little bit of attention: running is as rare as running shoes amongst these people. ^^Unfortunately, Beverly is quicker than you are. Although she looks an absolute wreck, she does get ready faster than you. As you speed towards the hall, you see Beverly showing the photo to Frank amongst a crowd of people. From down the hall, Frank casts you a hurt glance before he leaves Pine Meadows, and your life, forever."; return true; } } else "~Really, Julia. Why would anyone be interested in that?~"; Ask,Tell: switch(second) { 'bra', 'brazier', 'brassiere', 'halter', 'top', 'halter-top', 'chest', 'breasts', 'breast': "~Oh dear, Beverly,~ you say, glancing at her chest, ~you're not going to let your surgeon get away with that, are you?~ ^^She says nothing but shifts her bra again."; 'cell', 'cellular', 'mobile', 'phone', 'telephone', 'calling', 'phoning': "~Beverly, darling, can I use your cell?~ you ask. ^^~I don't have my cell with me, and if I did, why would I let you use it?~ ^^~Maybe to do something nice for a change?~ ^^~Oh, please. Being nice is for the help.~"; 'floor', 'court', 'bench', 'benches', 'net', 'nets', 'fences', 'fence': "~This court really is falling apart. You fit right in.~ ^^~You and me both, hon,~ she says, looking up and down at your wardrobe and hastily done make-up"; 'rabble', 'nouveau', 'nouveaus', 'new', 'money', 'riche': "~Ugh, the nouveaus have absolutely infested this place.~ ^^~They're dreadful, aren't they? I'm just glad my glares are enough to keep them away.~ ^^~Are you sure it's not your smell?~ you mumble. ^^~What was that?~ ^^~I said, 'I'm sure; you do it so well.'~"; 'pill', 'pills', 'percodan', 'drug', 'drugs', 'tablets', 'caplets': "~So I found some Percodan and--~ she cuts you off. ^^~So you're an adulterer and a pill-popper? Frank's just the luckiest man in the world, isn't he?~ ^^~Honestly, they're not mine!~ ^^~Whatever you need to tell yourself, hon.~"; 'Cabernet', 'Sauvignon', 'wine', 'red', 'drink': "~Would you like some wine?~ you ask. ^^~I'd love to, but I want to be as sharp as possible for tonight's banquet.~ ^^~Really, that never stopped you before. Remember the New Year's party?~ ^^She pretends not to hear."; 'Pine', 'Meadows', 'club': "~This place sure has changed, hasn't it?~ ^^~I'll say,~ she replies. ~Remember when this place used to be fun?~ she asks, almost with a hint of camaraderie."; 'keith', 'lover', 'affair', 'adultery', 'rumor', 'rumour', 'rumors', 'rumours', 'gossip': "~I guess you know about Keith and I,~ ^^~Oh yes, I heard about that. Poor Frank. Of course, he'll never believe any of the gossip. Unless someone shows him proof...~"; 'anti', 'aging', 'anti-aging', 'treatment': "~I was so glad to learn you've finally decided to do something about that baseball mitt you call a face.~ ^^~Well we can't all be getting facelifts every six months,~ she snaps. ^^~Well you could if you had a rich enough husband.~ ^^~Give it time,~ she mutters."; 'birthday', '50th', 'fiftieth', '45', 'forty-five', 'note', 'age', 'old': "~Happy fiftieth, Beverly, doll,~ you say, smiling. ~I was beginning to think you'd be forty-five forever.~ ^^~That's it. I'm shipping mother off to the home as soon as I get back.~"; 'Cynthia', 'Fordham': "~So, what do you think of Cynthia?~ ^^~I'd watch your step around her; she's a snake.~"; 'Melissa', 'Stratham', 'mel': "~I see you've done quite a number on Melissa.~ ^^~Well, I know you wanted to mould her in to your own image, but what could I do? You can't argue with good taste.~"; 'Beverly', 'Bev', 'winters', 'herself': if (behind_club has visited) "~How are you doing, Beverly? You look positively exhausted.~ ^^~No, I'm doing well.~ She glances at your ruffled clothes and smeared makeup. ~Better than you, I imagine.~"; else "~How are you holding up, dear?~ ^^~I'm doing well. Better than you must be, I imagine.~"; 'Tennis', 'game', 'playing', 'machine', 'balls', 'ball', 'serving': "~I can't believe you still play this game, it is so pass@'e.~ ^^~Well, I understand you've moved on to a different kind of balls,~ Beverly says coyly. ~Ah well, this will always be the game for me.~"; 'Cissy', 'Cecilia', 'Winnecott': "~So what do you think of Cissy?~ ^^~I'm just glad she hates tennis.~"; 'Charles', 'Charlie', 'Burton', 'registrar': "~So what do you think of Charles?~ ^^~Ugh, that man is insufferable.~"; 'julia', 'me', 'hawthorne', 'self', 'myself': "~What do you think of me?~ ^^~Well we've had our problems, but I would never do anything to endanger our 'friendship,'~ she says with all the warmth of a raw fish."; 'Roger', 'Knowles': "~That Roger's an odd one, isn't he?~ ^^~I'll say so. He's a bit of an anachronism, even here. Personally, I just think it comes from his loneliness.~"; 'loneliness', 'roger^s': "~You say Roger's lonely?~ ^^~Well it's been a long time for him since, you know. I'm sure all he needs is a little affection.~"; 'Banquet', 'tonight', 'dinner', 'announcement': "~Are you looking forward to tonight's banquet?~ ^^~My Lord, yes. It should be very interesting.~"; 'photo', 'photograph', 'photos', 'photographs', 'picture', 'camera', 'film', 'Melissa', 'Stratham', 'mel': if (melissa.melissa_known == true && melissa. blackmailed == false) "~So I found out it was Melissa who took the photo.~ ^^~I hope you aren't suggesting that I put her up to it. She does have a mind of her own, you know.~"; if (melissa.blackmailed == true) { if (beverly_clothes.wine_stained == true || beverly_clothes. bleach_stained == true) { remove pills; remove bleach; remove salad; remove cucumber; remove tickets; remove loose_hairs; remove announcement; remove charles_key; remove camera; remove film; remove wine; remove clothes; move change_of_clothes to player; give change_of_clothes worn; Achieved(13); print "~I guess this is what you're after,~ Beverly says, fishing in to her blouse and pulling out a photo. ~Sorry about all I've put you through today, it's just I couldn't afford to let you know I had it until the banquet. You've proved quite resourceful so far. Who knows? Had you known it were me from the start, you might have just been able to stop me.~ She puts the photo back in her blouse. ~Really, Julia, Frank and all his money deserve to be with someone a little more faithful than you. And once he sees this photo he'll realize who that is. Men are so easy to bend when vulnerable, don't you agree?~ ^^~Oh well,~ she says, turning off the machine and wiping the sweat from her brow. As she does, Beverly glances at her watch. ~My, my. Look at the time. I must be getting ready for the banquet. Oh yeah, I forgot to tell you. I talked to Charles and told him about how it had been so long since I had seen Frank and he was more than willing to seat us all together. Isn't that wonderful?~ ^^~See you there,~ she says, throwing her purse over her shoulder and walking off. ^^Beverly was right, the banquet is almost starting, which means Frank will be arriving soon. You run as fast as you can without breaking a sweat to the bathroom, toss your stuff in your locker, and go about making yourself look as presentable as possible. Quickly, you get the extra clothes from your locker, put them on and go about fixing your makeup. Within twenty minutes (a Pine Meadows record) you are ready and speed your way to the banquet hall, drawing more than a little bit of attention: running is as rare as running shoes amongst these people. ^^Luckily, your speed pays off and you get to the banquet just in time. Frank is just arriving and Beverly is nowhere to be seen, apparently your tampering with her clothes slowed her down long enough. Just as the doors open, Beverly comes racing down the hall with a sweater tied around her waist, casting you a dirty look as she does. With that, you are all ushered in to the hall.^"; move banquet_menu to player; PlayerTo(banquet); return true; } else { (deadflag = 3); print "~I guess this is what you're after,~ Beverly says, fishing in to her blouse and pulling out a photo. ~Sorry about all I've put you through today, it's just I couldn't afford to let you know I had it until the banquet. You've proved quite resourceful so far. Who knows? Had you known it were me from the start, you might have just been able to stop me.~ She puts the photo back in her blouse. ~Really, Julia, Frank and all his money deserve to be with someone a little more faithful than you. And once he sees this photo he'll realize who that is. Men are so easy to bend when vulnerable, don't you agree?~ ^^~Oh well,~ she says, turning off the machine and wiping the sweat from her brow. As she does, Beverly glances at her watch. ~My, my. Look at the time. I must be getting ready for the banquet. Oh yeah, I forgot to tell you. I talked to Charles and told him about how it had been so long since I had seen Frank and he was more than willing to seat us all together. Isn't that wonderful?~ ^^~See you there,~ she says, throwing her purse over her shoulder and walking off. ^^Beverly was right, the banquet is almost starting, which means Frank will be arriving soon. You run as fast as you can without breaking a sweat to the bathroom, toss your stuff in your locker, and go about making yourself look as presentable as possible. Quickly, you get the extra clothes from your locker, put them on and go about fixing your makeup. Within twenty minutes (a Pine Meadows record) you are ready and speed your way to the banquet hall, drawing more than a little bit of attention: running is as rare as running shoes amongst these people. ^^Unfortunately, Beverly is quicker than you are. Although she looks an absolute wreck, she does get ready faster than you. As you speed towards the hall, you see Beverly showing the photo to Frank amongst a crowd of people. From down the hall, Frank casts you a hurt glance before he leaves Pine Meadows, and your life, forever."; return true; } } else "~Someone took a photo of Keith and I in the basement.~ ^^~A photograph, you say? How very Enquirer of you.~"; 'Frank', 'husband': "~You haven't seen Frank in a while, have you?~ ^^~No I haven't. How is your husband, anyway? We have so much catching up to do.~"; } if (self.called_whore == false) { self.called_whore = true; "~Really, Julia. Sometimes you are such a whore,~ Beverly mutters. ^^~What was that?~ ^^~I said: 'Really, Julia. Sometimes you are such a bore.'~"; } else "~Really, Julia. Must you always be such a frightful bore?~"; ], called_whore false, wine_said false, seen_hair false, each_turn [; if (wine in player && self.wine_said == false) { self.wine_said = true; "^Beverly glances down at the wine in your hand. ~Getting started a little early, don't you think?~"; } if (loose_hairs in player && self.seen_hair == false) { self.seen_hair = true; "^~My, my, my, Julia,~ Beverly says, seeing the strands of hair in your hands. ~I knew you were old, but losing your hair? Really.~"; } else print (string) random("^Beverly smacks a ball across the court.^","^A rather aggressive serve by the machine thwacks Beverly on the thigh.^", "^Beverly pauses between serves, tucking her hair behind her ears.^", "^In a strangely crude move, Beverly shifts her bra uncomfortably.^", "", ""); ], has female animate proper transparent container; Object bra "bra" beverly_court with name 'bra' 'brazier' 'brassiere' 'halter' 'top' 'halter-top' 'chest' 'breasts' 'breast' 'bev^s' 'beverly^s', article "Beverly's", description "Beverly's chest looks lumpier than usually.", before [; Examine,Search: "Beverly's chest looks lumpier than usually."; default: "Beverly wouldn't appreciate that."; ], has ; !--------------------------------------------------------------------------- !OUTSIDE DINING I !--------------------------------------------------------------------------- Room dining_kitchen "Outside dining (next to the kitchen)" with description [; if (kitchen hasnt visited) "This is what it's all about: stale food and staler gossip. However, despite all that, the outside dining offered by Pine Meadows is really the only thing that interests you at the club. The tables are full; the place is busy. The members don't seem to be eating all that much though, no doubt saving their appetites for the banquet tonight. To the west is the server's entrance to the kitchen where all manner of food is prepared. The dining area extends to the east, and to the south and southeast are the garden path and tennis court respectively."; else "This is what it's all about: stale food and staler gossip. The tables are full; the place is busy. The members don't seem to be eating all that much though, no doubt saving their appetites for the banquet tonight. To the west is the server's entrance to the kitchen where all manner of food is prepared. The dining area extends to the east, and to the south and southeast are the garden path and tennis court respectively."; ], after [; Go: if(noun == n_obj or nw_obj or w_obj && cissy in dining_kitchen && cissy.cissy_spoken >= 1) print "As if you never left, Cissy starts back on her photos.^"; ], before [; Listen: if (noun == cissy) "Generally, people try to ignore Cissy, rather than listen to her."; if (cissy in dining_kitchen) "All other sounds seem insignificant under the onslaught of Cissy's chattering."; else "Chatting, plates clunking, the occasional scream at a waiter: all standard at Pine Meadows."; ], s_to garden_path, se_to court, e_to dining_golf, w_to kitchen, cant_go [; if (cissy in self) { StopDaemon(cissy); "~Oh dear,~ Cissy says as you bump into a low wall. ~Julia, you really should try some Ginkgo biloba. I've been taken it for months now and I hardly ever crash into walls anymore.~"; } else "You can only go west, east, south, or southeast."; ], has ; Object tables "tables" with name 'tables' 'table' 'chairs' 'chair' 'cloths' 'tablecloth', description "While you are fairly sure that the tables or chairs haven't been replaced or refurbished in years, at least the tablecloths have been kept up to the times. If you can't have something nice, you can at least put it in a nice package, you suppose.", before [; Enter: "You don't have the time."; ], found_in dining_kitchen dining_golf, has pluralname scenery supporter; Object diners "diners" with name 'diner' 'diners' 'people' 'men' 'women' 'members' 'nouveaus' 'nouveau' 'new' 'money' 'riche', description "These nouveaus wouldn't know the difference between eggs Florentine and eggs Benedict.", life [; Kiss: "With all the garlic in today's cuisine, you're not willing to chance it."; Ask,Tell: "Even if you didn't mind appearing gauche, you wouldn't want to interrupt these people and risk actually having to talk to them."; ], found_in dining_kitchen dining_golf, has scenery animate pluralname; NPC waiter "waiter" dining_kitchen with name 'waiter' 'server' 'man' 'garcon', article "the", initial [; if (dining_kitchen hasnt visited) "A waiter bustles about, tray of wine glasses in hand, trying desperately to keep up with drink orders from demanding patrons."; else print (string) random("A waiter bustles about frantically, trying desperately to keep up with drink orders from demanding patrons.^", "The waiter pauses for a moment to wipe some sweat from his forehead, before the scream of a patron brings him back to activity.^", "The waiter takes a sip from one of the finished drinks and seems to calm down a bit.^"); ], description "Tuxedoes aren't active wear, and the waiter exemplifies perfectly why this is so. His cummerbund prevents him from turning his waist; his whole ensemble clings to him with sweat. In fact, his bow tie seems so tight that his eyes bug out and his face is flushed.", salad_on_floor false, each_turn [; if (salad in dining_kitchen && self.salad_on_floor == false) { self.salad_on_floor = true; "^The waiter deftly avoids the salad. You don't work for years around drunken socialites without learning how to watch your step."; } else return false; ], before [; Push,Pull,PutOn: "You 'accidentally' jostle into the waiter, but he catches himself before spilling any of the drinks. You don't work for years around drunken socialites without learning to watch your step."; ], seen_hairy_salad false, react_before [; Buy: "~Everything here is complementary, Mrs. Hawthorne. If you would like something you can simply ask me for it,~ says the waiter."; OrderSomething: switch (noun) { tray: if (wine has moved) "~I'm sorry Mrs. Hawthorne, but there is really only enough for one per member right now.~"; else move wine to player; "~Here you go, Mrs. Hawthorne,~ he says, handing you a glass of wine, his experience such that barely a ripple passes across its surface."; dummy_peanut: "~I'm sorry, Mrs. Hawthorne, but we don't serve peanuts here. There might be some sauce in the kitchen though.~"; wine: if (wine has moved) "~I'm sorry Mrs. Hawthorne, but there is really only enough for one per member right now.~"; else move wine to player; "~Here you go, Mrs. Hawthorne,~ he says, handing you a glass of wine, his experience such that barely a ripple passes across its surface."; food: "~I'm sorry Mrs. Hawthorne, but the kitchen is very backed up at the moment,~ he says, before getting back to his job."; default: "~I'm sorry, Mrs. Hawthorne, but I'm afraid that's not available.~"; } ], life [; Order: "~I'm sorry, Mrs. Hawthorne, but I'm here just to serve drinks.~"; Give,Show: if (noun == salad) { if (loose_hairs notin salad) "~Oh yes, our cucumber salad is one of the hottest things on the menu, people can't seem to order it fast enough. Eating it on the other hand...~ the waiter says looking down at the bowl."; if (loose_hairs in salad) { StopDaemon(Cissy); self.seen_hairy_salad = true; remove salad; "You stomp (as much is possible in three-inch heels) up to the waiter and thrust the salad in to his face. ~Excuse me, garcon,~ you spit. ~I believe you sold me a hair with a salad around it.~ ^^~Um, oh, ooh,~ the waiter sputters. ~I'm sorry Mrs. Hawthorne. Let me just go in to the kitchen and get you a fresh one.~ ^^~No, no. That simply will not do,~ you say, hamming it up more than a little. ~I must speak with the head chef at once!~ ^^~But of course, Mrs. Hawthorne. Go right ahead, we pride ourselves on our outstanding customer relations.~"; } } else "~I'm sorry, Mrs. Hawthorne, but I can't help you with that. If you have a complaint about the food, bring it to me, and I'll do what I can.~"; Kiss: "Your reputation is bad enough without you kissing the waiters."; Ask,Tell: switch (second) { 'cell', 'cellular', 'mobile', 'phone', 'telephone', 'calling', 'phoning': "~Excuse me, young man, but do you know where I could find a phone?~ ^^~Well, we don't allow cellular phones in the dining area. You might want to try the office.~"; 'Pine', 'meadows', 'club', 'work', 'working': "~How do you like working at Pine Meadows?~ ^^~It's alright, I suppose, but I'm only here until my acting career takes off.~ ^^Eight years and counting."; 'wine', 'drink', 'liquor', 'drinks': "~Could you tell me about the wine?~ ^^~Today's wine is a lovely Cabernet Sauvignon from Bordeaux. Your favourite if I remember correctly,~ the waiter says, barely missing a step."; 'food', 'meal', 'lunch': "~Is there any way I could get some food?~ ^^~I'm sorry Mrs. Hawthorne, but the kitchen is very backed up at the moment,~ he says, before getting back to his job."; } "~I'm sorry Mrs. Hawthorne, but I'm very busy,~ he says, bustling over to a particularly loud table."; AskFor: switch (noun) { tray: if (wine has moved) "~I'm sorry Mrs. Hawthorne, but there is really only enough for one per member right now.~"; else move wine to player; "~Here you go, Mrs. Hawthorne,~ he says, handing you a glass of wine, his experience such that barely a ripple passes across its surface."; dummy_peanut: "~I'm sorry, Mrs. Hawthorne, but we don't serve peanuts here. There might be some sauce in the kitchen though.~"; wine: if (wine has moved) "~I'm sorry Mrs. Hawthorne, but there is really only enough for one per member right now.~"; else move wine to player; "~Here you go, Mrs. Hawthorne,~ he says, handing you a glass of wine, his experience such that barely a ripple passes across its surface."; food: "~I'm sorry Mrs. Hawthorne, but the kitchen is very backed up at the moment,~ he says, before getting back to his job."; default: "~I'm sorry, Mrs. Hawthorne, but I'm afraid that's not available.~"; } ], orders [; Give: switch (noun) { tray: if (wine has moved) "~I'm sorry Mrs. Hawthorne, but there is really only enough for one per member right now.~"; else move wine to player; "~Here you go, Mrs. Hawthorne,~ he says, handing you a glass of wine, his experience such that barely a ripple passes across its surface."; dummy_peanut: "~I'm sorry, Mrs. Hawthorne, but we don't serve peanuts here. There might be some sauce in the kitchen though.~"; wine: if (wine has moved) "~I'm sorry Mrs. Hawthorne, but there is really only enough for one per member right now.~"; else move wine to player; "~Here you go, Mrs. Hawthorne,~ he says, handing you a glass of wine, his experience such that barely a ripple passes across its surface."; food: "~I'm sorry Mrs. Hawthorne, but the kitchen is very backed up at the moment,~ he says, before getting back to his job."; default: "~I'm sorry, Mrs. Hawthorne, but I'm afraid that's not available.~"; } ], has animate transparent male worker; Object wine "glass of Cabernet Sauvignon" waiter with pname '.x' 'drinks' '.x' 'glasses' 'Cabernet' 'Sauvignon' 'wine' 'red' 'drink' 'glass' 'of', article "a", description "Although Merlot is currently receiving wider commendations, you suspect it's more due to how easy it is to pronounce its name rather than any aesthetic superiority.", after [; Drop: print "You set the wine down, careful not to spill it.^"; return true; ], before [; EmptyT: <>; Receive: if (noun == bleach) "Well that would certainly give it some kick, but you decide against it."; if (noun == pills) "Whoa! Easy there, Liza."; else "You'd rather not."; Take: if (self in waiter) "You're rude, but not that rude. Try asking the waiter for some wine instead."; else return false; Drink: "Better not, you need to be as sharp as possible if you're going to get that film."; Smell: "You swirl the glass and sniff delicately. A good year."; Taste: "You swirl just the slightest bit around in your mouth. Rich and heady, with just a soupcon of oak."; ThrowAt: "You're such a drama queen. A more subtle approach might be more appropriate."; Insert: if (noun == purse) "You don't want to ruin your purse."; else return false; ], has edible; Object tray "drinks" waiter with name 'tray' 'drinks' 'glasses' 'empty' 'full', description "The waiter carries a tray of drinks, some empty, some full.", before [; Take: "You're rude, but not that rude. Try ordering instead."; ], has scenery pluralname; NPC cissy "Cissy" dining_kitchen with name 'Cissy' 'Winnecott' 'Cecilia' 'clothes' 'pant' 'suit' 'pantsuit' 'woman' 'cissy^s' 'fuchsia' 'cecilia^s', initial [; if (dining_kitchen hasnt visited) "Oh great, Cecilia Winnecott is here, the most frightfully irritating woman you have ever had the displeasure to meet. You attempt to duck out before she sees you but it's too late. ^^~Yoohoo, Julia! Over here.~ As if you could miss her. Her bright fuchsia pantsuit practically sears your retinas. Cissy sashays up to you, her jacket barely able to contain those three Danishes you saw her wolf down this morning."; else "Cissy stands here in all her fuchsia splendour."; ], description "A hundred-eighty pound woman packed in a hundred-sixty pound Chanel reject. You've got to hand it to her though, all that fuchsia really does detract from what it covers.", each_turn [; StartDaemon(self); ], cissy_spoken 0, kitchen_attempted 0, seen_hairy_salad false, before [; Push,Pull: "You jostle into Cissy. ~Oops!~ she says. ~I tell you, you gotta get some Gingko.~"; Smell: "Your nose is overrun with both Dolce and Gabbana."; Listen: "Generally, people try to ignore Cissy, rather than listen to her."; Receive: if (noun == wine) { remove cissy; move wine to waiter; StopDaemon(self); "Pretending to catch your heel on a crack, you launch yourself forward towards Cissy, spilling the deep, red wine over her clothes. ^^~My clothes!~ she cries, trying desperately to sop up the rapidly setting wine. ~This was a gift from my husband.~ You guess he bought it as a not so subtle hint. ^^~Don't worry Cissy, a little club soda and that will come right out.~ A lie, sure, but you have to stop her from sobbing somehow. Besides, you did her a favour, that monstrosity wasn't helping anyone. ^^When Cissy sees that nothing she can do here will stop the stain, she begins to walk out. ~Oh dear, guess I'll go home to change. I'll see you at the banquet tonight. Ciao.~"; } if (noun == bleach) "While it would make your opinion of her clothes painfully obvious, you fear the pain would be more obvious than the opinion."; else "Putting that Cissy would achieve nothing."; ], monica_said false, react_before [; Go: if (noun == e_obj or s_obj or se_obj) { if (self.monica_said == false) { self.monica_said = true; StopDaemon(self); print "^~I'm dreadfully sorry, Cissy, but I have some things to do,~ you say, rubbing your temples in attempt to ward off the migraine you know is coming.^ ^~Ciao!~ Please, one month in Tuscany and she thinks she's Monica Bellucci.^"; } else { if (self.cissy_spoken >= 1) { StopDaemon(self); print "^~You're not leaving already are you?~ Cissy asks, lips pouted. ~Oh well, you must come back to see the rest of my photos soon.~^"; } else { StopDaemon(self); return false; } } } if (noun ~= w_obj or e_obj or s_obj or se_obj) return false; if (noun == w_obj && (waiter.seen_hairy_salad == true || self.seen_hairy_salad == true) ) { StopDaemon(self); print "Cissy, knowing about the outrageous salad situation, gives you an encouraging pat on the shoulder as you walk towards the kitchen.^"; return false; } if (noun == w_obj && self.kitchen_attempted == 0) { move get_into_kitchen to all_hints; StopDaemon(self); self.kitchen_attempted = 1; print_ret "~Umm, Julia, hon. That's the kitchen,~ says Cissy, giving you a peculiar look. You can't blame her. Most people, if they want to complain, just scream at the waiters in front of everyone."; } if (noun == w_obj && self.kitchen_attempted == 1) { StopDaemon(self); print_ret "Better not with Cissy still here."; } ], daemon [; self.cissy_spoken = self.cissy_spoken + 1; switch (self.cissy_spoken) { 1: " ^~Oh, Julia. It's been ages. You simply must see our pictures from Tuscany,~ she says, and before you can decline, she pulls a stack of photos from her purse."; 2: "^~Here's my eldest, Tyler, isn't he handsome?~ Cissy croons, showing you a photo of a rather dirty little boy with a finger up his nose."; 3: "^~Oh ooh, here's Madison. Isn't she darling?~ ^^~She's absolutely breathtaking,~ you say."; 4: "^~And this is our villa, isn't it just to die for?~ ^^Frankly, you agree. You'd die before setting foot in such a dismal little hovel."; 5: "^~Aww, look at little Aidan. Isn't he a treasure?~ ^^My God, doesn't this woman ever stop breeding?"; default: print (string) random("^Cissy continues to prattle on about her oh so fascinating life.^", "^Cissy continues to prattle on about her oh so fascinating life.^", "^Cissy continues to prattle on about her oh so fascinating life.^", "^Cissy shows you another photo of her ever-growing family.^", "^Cissy tells you about another 'famous' relative's accomplishments.^"); } ], life [; Kiss: "Uck, there's still bits of Danish around her mouth. You'd think someone with so much practice eating wouldn't miss so much."; Give,Show: if (noun == loose_hairs) { StopDaemon(self); "~Oh, you're shedding, Julia. You really should try some cod liver oil,~ Cissy says, fondly stroking her hair."; } if (noun == salad) { if (loose_hairs in salad) { if (self.seen_hairy_salad == false) { self.seen_hairy_salad = true; StopDaemon(self); "~My God!~ Cissy shrieks, seeing the numerous hairs poking out through the lettuce. ~You should show that to the waiter at once. They simply can't get away with this.~"; } else "Cissy's already seen the salad."; } else { StopDaemon(self); "~Oh, you have much stronger willpower than me. I never could restrain myself when it came to food,~ she says, plucking some Danish from her chin and popping it hungrily in to her mouth."; } } if (noun == camera) { StopDaemon(self); "~Oh, isn't that charming, you're a photographer too! We must trade techniques sometime,~ she says, bubbling with excitement."; } if (noun == wine) { StopDaemon(self); "~Please, help yourself. I would join you, but my spiritual coach, Guru Upneet Bhadur Singh Rai, told me that alcohol blocks eight of your chakras and...~ Ten minutes and three migraines later, Cissy finishes with ~...and that's why I can't join you.~"; } if (noun == pills) { StopDaemon(self); "~I couldn't possibly. I'm on an organic regiment: can't have any of those toxins.~"; } else "Although Cissy has many flaws, being poor is not one of them. She doesn't want anything you have."; Order: "Save your bossing for the help."; Ask,Tell: StopDaemon(self); switch (second) { 'fuchsia', 'pant', 'suit', 'pantsuit', 'clothes': "~That's quite the outfit, Cissy,~ you say, barely able to keep down your bile. ^^~Why, thank you, Julia. My husband picked it up in Milan. It really catches the eye, doesn't it?~ ^^Catches and won't let go."; 'cell', 'cellular', 'mobile', 'phone', 'telephone', 'calling', 'phoning': "~Do you happen to have a phone on you, Cissy?~ ^^~Oh, I would never use a cell. They cause brain cancer, you know.~"; 'pill', 'pills', 'percodan', 'drug', 'drugs', 'tablets', 'caplets': "~What do you make of Percodan?~ ^^~I can't touch it. I'm on an organic regiment; can't have any of those toxins.~"; 'danish', 'danishes', 'pastry', 'pastries': "~How were those Danishes?~ ^^~Oh they were delicious,~ she says, licking her lips."; 'Pine', 'meadows', 'club': "~What do you think of Pine Meadows?~ ^^~Oh, it's a lovely place to spend my time when I'm not in Tuscany. Oh, that reminds me,~ she says, pulling out another stack of photos."; 'Tyler', 'Aidan', 'Madison', 'child', 'kid', 'kids', 'children': "You make a passing comment about her kids. ^^~Children are an absolute treasure, aren't they?~ she says, looking at her photos fondly. ~Really Julia, you simply must have one one of these days.~ ^^Any thought you ever had of having a child went up in smoke after seeing her 'charming' brood."; 'photo', 'photos', 'photograph', 'photographs', 'film', 'camera', 'picture', 'pictures': "You subtilely feel Cissy out about the photo, but she doesn't get it. ^^~They're spectacular, aren't they? I took them all myself,~ she says, admiring a blurry photo of what looks to be an ape, or her husband."; 'Cissy', 'Cecilia', 'Winnecott', 'name': "~How's Cissy, today?~ ^^~Who?~ she says, noticeably confused. ~Oh right, me, I'm fine.~"; 'Tuscany', 'villa', 'vacation': "~You're really quite fond of Tuscany, aren't you? ^^~Well, one simply must get away sometimes. While some might like good old American living, personally, I prefer a little Old World charm.~ ^^Cissy's socially awkward enough in the States, you can't imagine how she'd fare somewhere she hadn't lived all her life."; 'keith', 'lover', 'affair', 'adultery', 'rumor', 'rumour', 'rumors', 'rumours', 'gossip': "~I suppose you've heard about Keith and I.~ ^^~Oh, that. Well, I wasn't going to bring it up; it's vulgar, really. Besides, I don't believe a word of it.~"; 'Cynthia', 'Fordham': "~So what do you think of Cynthia?~ ^^~She's a dreadful gossip, that woman.~ Cissy leans in a bit closer, ~Who, by the way, is going back for another collagen treatment in a week.~"; 'Melissa', 'Stratham', 'mel': "~What do you think of Melissa?~ ^^~A charming woman. If only that shrew Beverly hadn't gotten her talons in to her. She might have been the next you, Miss Philanthropist of the Year.~ ^^Oh right, that. By the way these people talk, you might think fifty thousand dollars was a lot of money."; 'waiters', 'waiter', 'server', 'service': "~That waiter is something else, isn't he?~ ^^~Isn't he simply adorable? I wish all men would wear tuxedoes.~"; 'food', 'foods', 'dish', 'dishes', 'meal', 'meals', 'pasta': "~What food would you recommend here?~ ^^~You simply must try the pasta primavera. That's Italian for spring, you know.~ ^^Right, because you have to have a decrepit villa in Tuscany before you can be expected to know that."; 'julia', 'me', 'myself': "~How do you feel about me?~ ^^~Oh you're a wonderful woman, these people could stand to learn a thing or two from you.~"; 'Frank', 'husband', 'Hawthorne': "~What do you think of Frank?~ ^^~Oh, you've got yourself a keeper there. He really does worship the ground you walk on.~ ^^You must admit: that's nice. It makes him all the easier to walk all over."; 'wine', 'Cabernet', 'Sauvignon', 'drink', 'drinks': "~Would you like some wine?~ ^^~I would join you, but my spiritual coach, Guru Upneet Bhadur Singh Rai, told me that alcohol blocks eight of your chakras and...~ Ten minutes and three migraines later, Cissy finishes with ~...and that's why I can't join you.~"; 'banquet', 'dinner', 'tonight', 'supper', 'charity', 'noblesse', 'oblige', 'speech', 'announcement': program.speech_known = true; "You mention the banquet to Cissy. ^^~Oh yes, you have that speech as Philanthropist of the Year, don't you? Really, Julia, you are such an inspiration. You could really teach these nouveaus,~ she glances around the dining area disdainfully, ~a thing or two about noblesse oblig@'e.~ ^^Where does she get off with that tone? Her family made its money from inventing the egg carton."; 'eggs', 'egg', 'cartons', 'carton', 'container': "~Didn't your family make its money in egg cartons?~ ^^~Well you know my great-grandfather, Sir Arthur Chesterbald Winnecott, invented them, right? Oh he was a brilliant man.~ ^^Cissy proceeds to relate to you how the modern egg-carton evolved through a series of steps. First in boxes, then in little cardboard cups, and finally the styrofoam ones we've grown to know and love. Somehow, through the magic that is Cissy, she manages to make it more boring than you thought possible."; 'Sir', 'Arthur', 'Chesterbald', 'great-grandfather', 'great', 'grandfather': "~Tell me a little about your great-grandfather.~ ^^~Oh, he was a great man.~"; 'nouveau', 'new', 'money', 'riche', 'nouveaus': "~How do you feel about all these nouveaus in here?~ ^^~They're absolutely dreadful, aren't they? They really know nothing of the responsibilities that come with money.~ Cissy shakes her head dramatically."; 'assistant', 'charles', 'burton', 'registrar', 'scott': "~How do you feel about Charles?~ ^^~What a dedicated man, that Charles. He's been putting so many hours in with that new assistant of his.~"; 'Beverly', 'winters', 'shrew', 'bev': "~What do you think of Beverly?~ ^^She shudders. ~Ugh, don't mention that horrible woman to me.~ ^^Cissy recently found out all the bad things Beverly says behind her back. Fortunately, she thinks Beverly is the only one who says them."; } "Cissy has the memory span of a goldfish. Unless it was related directly to what she's talking about, she would forget her own name."; ], has proper animate female transparent; Object photos "Cissy's photos" cissy with name 'photo' 'photos' 'stack' 'picture' 'pictures' 'photograph' 'photographs' 'cissy^s' 'cecilia^s', description "Why does anyone think people want to see their pictures? Well, since you're looking, I guess that's a stupid question.", before [; Take: "You can see them as much as you like from here, which isn't much at all."; ], has concealed proper; Object food "food" with name 'food' 'meal' 'lunch' 'plates' 'plate' 'cutlery' 'meals', article "some", description [; if (kitchen hasnt visited) "Ranging from veal chops to steamed vegetables, the food here is possibly Pine Meadows only redeeming quality these days."; else "After seeing the kitchen, this food makes you feel like a child who's been backstage at a magic show. But instead of your sense of wonder being erased it's your appetite."; ], before [; Eat: "Other people's half-eaten food isn't exactly your idea of fine dining."; ], found_in dining_kitchen dining_golf waiter, has scenery; Object dummy_peanut "peanuts" waiter with pname '.x' 'peanut' '.x' 'peanuts', before [; default: "There are no peanuts here."; ], has scenery; !--------------------------------------------------------------------------- !OUTSIDE DINING II !--------------------------------------------------------------------------- Room dining_golf "Outside dining (next to the Pro Shop)" with description [; if (kitchen hasnt visited) "This is what it's all about: stale food and staler gossip. However, despite all that, the outside dining offered by Pine Meadows is really the only thing that interests you at the club. The tables are full; the place is busy. The members don't seem to be eating all that much though, no doubt saving their appetites for the banquet tonight. To the west is the server's entrance to the kitchen where all manner of food is prepared. The dining area extends to the east, and to the south and southeast are the garden path and tennis court respectively."; else "This is what it's all about: stale food and staler gossip. The tables are full; the place is busy. The members don't seem to be eating all that much though, no doubt saving their appetites for the banquet tonight. To the west is the server's entrance to the kitchen where all manner of food is prepared. The dining area extends to the east, and to the south and southeast are the garden path and tennis court respectively."; ], before [; Listen: if (noun == players && cynthia in self) "The bridge players gossip, but with Cynthia's eyes boring in to you, you find it hard to concentrate on what they're saying."; if (noun == players && cynthia notin self) "You listen, but the gossip isn't anything you haven't heard before."; else "Chatting, plates clunking, the occasional scream at a waiter: all standard at Pine Meadows."; ], w_to dining_kitchen, s_to court, sw_to garden_path, ne_to pro_shop, cant_go [; if (cynthia in self) "~Really, Julia. I think all that time on your back has interfered with your sense of direction,~ Cynthia says as you bump in to a low wall."; else "You can go only northeast, west, southwest, or south."; ], has ; Object players "bridge players" dining_golf with name 'player' 'players' 'women' 'bridge' 'group' 'card' 'cards' 'game' 'whisk', initial [; if (self.first_time == false) { self.first_time = true; "A group of women sit here playing bridge and chatting. ^^~Beep beep~ My God! Digital watches at Pine Meadows? Cartier must be rolling over in his grave."; } else "A group of women sit here playing bridge and chatting."; ], description "A group of women sit around a table, playing bridge and chatting.", first_time false, each_turn [; StartDaemon(self); ], bridge_chatting 0, life [; Order: "~Really, Julia,~ one of the bolder women says, ~we're a little busy right now.~"; Ask,Tell: switch (second) { 'joining', 'join', 'play', 'playing': "~Sorry, Julia, but we already have a full group,~ one of them says, looking at you snidely from behind her cards."; 'bridge', 'game', 'card', 'cards': "~Well, we must have some way of occupying ourselves while our husbands are away. After all, not everyone likes sleeping with the help,~ one of them says."; } "~Really, Julia,~ one of them says, ~we're a little busy right now.~"; ], daemon [; self.bridge_chatting = self.bridge_chatting + 1; switch (self.bridge_chatting) { 1: "^~So I was up at the golf course and do you want to know what I heard Roger say?~ one of the bridge players says dramatically. ^^~No,~ another replies, ~but I'm sure you'll tell us anyway.~"; 2: "^~He said 'No grandson of mine is going to be a doper.' And then he disowned him,~ the first one says, waiting for a gasp. When she sees none is forthcoming, she continues, ~I mean, it was just a little pot, nothing to freak out over.~ ^^The second rolls her eyes incredulously. ~Really, now. Why don't you just stop shaving your legs and move to British Columbia already?~"; 3: "^~She was in the basement?~ one asks, horrified. ^^~I guess that's what passes for courting among the help,~ says another."; 4: "^~Still, you'd think she'd be a little more discrete. I mean Frank's only been gone for a day.~ ^^~Personally, I think she wanted to get caught. She always has enjoyed the limelight.~"; 5: "^~Oh well. Did you see what Cissy was wearing?~ ^^~How could you miss it?~"; default: StopDaemon(self); } ], react_before [w; Go: StopDaemon(self); return false; Play: wn = consult_from; w = NextWord(); switch (w) { 'bridge', 'card', 'cards', 'whisk', 'game': "^You don't have the time. Besides, you're not eighty."; } return false; ], has pluralname animate; NPC cynthia "Cynthia" dining_golf with name 'Cynthia' 'Fordham' 'woman', initial [; if (cynthia_food.food_contaminated == true) return true; else { if (dining_golf hasnt visited) "Cynthia Fordham, a woman whose wrath makes even you cringe, sits in a high back chair."; else print (string) random("Cynthia waits impatiently for her meal.^", "Cynthia waits impatiently for her meal.^", "Cynthia waits impatiently for her meal.^", "Cynthia glares at the nouveaus surrounding her.^", "Glancing towards you, Cynthia gives a full-toothed smile.^"); } ], description "A shrewd vindictive woman, Cynthia is probably not the best person for you to have maliciously outbid on every major item at last year's largest charity auction. You couldn't resist though, she had been wearing plaid.", seen_bleach false, golf_attempted false, order_heard false, peanut_seen false, hair_seen false, each_turn [; if (cynthia_food.food_contaminated == true && player in dining_golf) { remove cynthia_food; remove cynthia; "^You arrive just as Cynthia sits down to eat her Coquille Saint-Jacques. Your glee can barely be contained as she raises a slimy piece of shellfish to her lips and delicately nibbles at it. ^^A few minutes pass while Cynthia eats her meal and when she is done, she finishes it off with a delicate licking of her lips. That's when she notices what you have been seeing the whole time. Her lips, reacting furiously to the peanut sauce, have begun to swell, ballooning up to twice their regular size with no sign of stopping. ^^~Myb bwips, bwat's bappebing?~ she blubbers. Oh well, at least she won't need that collagen anymore. ^^Soon the paramedics arrive to take her away from the crowd of gawking club members and elated waiters, leaving you to resume your business."; } if (bleach in player && self.seen_bleach == false && self. order_heard == true) { self.seen_bleach = true; "^~Well, well, Julia. So what? Now you're not just sleeping with the help, you're doing their work as well?~ Cynthia says in a fairly loud whisper as she glances down at the bottle of bleach in your hands."; } if (self.order_heard == false) { self.order_heard = true; move get_past_cynthia to all_hints; move cynthia_food to kitchen; "^~I told you, I ordered Coquille Saint Jacques half-an-hour ago. What are you, deaf?~ Cynthia screams at a cowering waiter who then flees to the safety of the kitchen. ^^Just then, she glances over to you. ~Oh, there you are, Julia,~ she says, her voice dripping with saccharine venom. ~I hear you have a way with the help.~ --she winks, a little too obviously-- ~Perhaps you could work your charm on that waiter for me.~"; } if (peanut in player && self.peanut_seen == false) { self.peanut_seen = true; "^Cynthia eyes the peanut sauce warily."; } if (loose_hairs in player && self.hair_seen == false) { self.hair_seen = true; "^Cynthia smirks at the strands of hair in your hand. ~Really, Julia. If you're going to be shedding could you at least do it away from where people are eating. I mean if your hair were to get in to the food, someone would have to go into the kitchen and complain.~"; } else return false; ], react_before [; Go: if (noun == ne_obj && self.golf_attempted == false) { self.golf_attempted = true; "^~Oh, off to see Keith, are we?~ Cynthia says, eyes burrowing in to you. ^^Normally, you wouldn't be cowed by Cynthia's acid tongue but with that film floating around, you don't want to chance it."; } if (noun == ne_obj && self.golf_attempted == true) "^Cynthia looks up at you eagerly as you walk towards the golf course. Better not give her any ammo against you."; if (noun == w_obj or s_obj or sw_obj) { print "^~Aww, leaving so soon? Well we must do this again sometime,~ Cynthia calls out after you.^"; return false; } else return false; Take: if (noun == salad && noun hasnt moved) { move noun to player; "~Come now, Julia,~ Cynthia clucks. ~I heard Frank cut up your platinum card, but must you really resort to taking leftovers?~ ^^You ignore her and take it."; } else return false; ], before [; Receive: if (noun == bleach) "You'd rather avoid the three to five in Riker's."; if (noun == wine) "Cynthia eyes you and the wine warily. You might be able to pull it off on someone else, but Cynthia's too sharp for that."; if (noun == peanut) "~Get that away from me!~ Cynthia shrieks at the sight of the peanut sauce."; Smell: if (access_hall has smelled) "Careful not to look like a bloodhound, you raise your nose and sniff delicately. Amidst the smells of wine and food, you detect the faint scent of Bellagio. Definitely not the scent from hall."; else "Careful not to look like a bloodhound, you raise your nose and sniff delicately. Amidst the smells of wine and food, you detect the faint scent of Bellagio."; Blackmail: "She's not afraid."; ], life [; ThrownAt: if (noun == peanut) "~Get that away from me!~ Cynthia shrieks at the sight of the peanut sauce."; else return false; Order: "~My, my, a little bossy, aren't we? No wonder Keith likes you.~"; Kiss: "Hey, I don't know what you heard, but that time in Bryn Mawr was a one-time thing!"; Attack: "Oooh, you'd love to, but that would get your kicked out of Pine Meadows for sure, then you'd never get that film."; Show,Give: if (noun == loose_hairs) "^Cynthia smirks at the strands of hair in your hand. ~Really, Julia. If you're going to be shedding, could you at least do it away from where people are eating? I mean if your hair were to get in to the food, someone would have to go into the kitchen and complain.~"; if (noun == bleach) "~Really, Julia. I do believe the help are rubbing off on you.~"; if (noun == pills) "~Oh, well that explains how you're able to let Frank touch you.~"; if (noun == peanut) "~Get that away from me!~ Cynthia shrieks at the sight of the peanut sauce."; if (noun == camera) { if (melissa.lied_about_cynthia == false) "~An instant camera? That's a little tacky, even for you, Julia.~"; else "~I don't know what you're talking about. I've never seen that camera before,~ Cynthia denies vehemently."; } else "Cynthia sneers."; Ask,Tell: switch (second) { 'salad', 'cucumber', 'diet': "~Someone seems to have been unable to stick to their diet.~ ^^~It appears so. Still, you have to admire the attempt what with surgery just being a phone call away.~"; 'collagen', 'lips', 'injections', 'treatment': "~So, I hear you're going in for collagen injections.~ ^^~Well, yes I am. Some of us use our lips for more than entertaining the help.~"; 'cell', 'cellular', 'mobile', 'phone', 'telephone', 'calling', 'phoning': "~Do you have a cell I could borrow?~ you ask, trying to be as nice as possible. ^^~Even if I did have one, I wouldn't lend it to you: it has a vibrating ring.~"; 'coquille', 'saint', 'jacques': "~So, you like slimy molluscs?~ ^^~Well yes I do. You're not the only one who likes things spineless.~"; 'pill', 'pills', 'percodan', 'drug', 'drugs', 'tablets', 'caplets': "~What do you think of Percodan?~ ^^~I haven't done it in years. Oh, well that explains how you're able to let Frank touch you.~"; 'time', 'the', 'watch', 'clock': "~Do you happen to know the time?~ ^^~Why don't you just look at your watch?~ Cynthia snaps. ~After all, you make all of us do it.~"; 'allergy', 'allergies', 'peanut', 'peanuts': "~So I hear you're allergic to peanuts.~ ^^~Yes I am. If I even touch a peanut my body bloats up to the size of Cissy's.~"; 'keith', 'lover', 'affair', 'adultery', 'rumor', 'rumour', 'rumors', 'rumours', 'gossip': "~So you must have heard and Keith and I.~ ^^~Well, yes. I know a woman must have her hobbies,~ Cynthia says coquettishly. ~It's a shame yours will destroy your marriage.~"; 'picture', 'photo', 'photograph', 'film', 'camera': if (cynthia_locker.opened == false) "~Have you heard anything about a photo today?~ ^^~Oh yes, I heard someone took a picture of you. What a shame.~"; else "~I found a camera in your locker!~ you yell. ~You must have taken that photo!~ ^^~How dare you talk to me like that! I don't care where you said you found it, that's not my camera,~ she says, pausing for a moment. ~Besides, if you can break in to my locker, doesn't it stand to reason that someone else might have as well?~"; 'Cissy', 'Cecilia', 'Winnecott', 'fuchsia': "~What do you think of Cissy?~ ^^~I'm just glad she's not talking to me.~"; 'food', 'meal', 'meals', 'dish', 'dishes': "~How's the food today?~ ^^~It's dreadful, really,~ she says, glancing disdainfully at someone's meal."; 'bridge', 'players', 'player': "~What's with those women playing bridge?~ ^^~They come here to gossip. They're fun to listen to but not much else.~"; 'Pine', 'Meadows', 'club': "~What do you think of Pine Meadows?~ ^^~It's a shame what's happened to the place,~ she says, almost wistfully. ~Nouveaus.~ She rolls her eyes in the direction of the diners."; 'nouveau', 'riche', 'new', 'money', 'nouveaus', 'diners': "~What do you think of these nouveaus?~ ^^~They're dreadful. Those computer ones are the worst. All that money without a stitch of class.~ Cynthia glances at a particularly poorly-dressed young man."; 'Cynthia', 'Fordham', 'self': "~And how are you today, Cynthia?~ ^^~I am fabulous,~ Cynthia says, somehow managing to look down her nose at you, even though she is sitting and you are standing."; 'Julia', 'Hawthorne', 'me', 'clothes', 'ensemble': "~What do you think of my wardrobe?~ ^^~Really, Julia, you're looking a little dated to me,~ she says, glancing down at your clothes."; 'charity', 'auction', 'outbid', 'outbidding': "~I just wanted to apologize to you for last year's charity auction,~ you say, trying to ease a little of the tension. ^^~Don't give it another thought, it's water under the bridge.~ ^^Somehow, you don't buy it."; 'waiter', 'waiters', 'service', 'server', 'servers', 'help': "~How do you feel about the service?~ ^^~Well, the help take forever do to anything. Well, I guess that's a plus for you.~"; 'Melissa', 'Stratham', 'mel': "~What do you think of Melissa?~ ^^~A little bit of a follower, that one, but I prefer her over these ones any day,~ Cynthia says, glancing around disdainfully."; 'Charles', 'Charlie', 'Burton': "~What do you think of Charles?~ ^^~Really, Julia. The only thing worse than being a bore is talking about one.~"; 'Frank', 'husband': "~What do you think of my husband?~ ^^~Frankly,~ she pauses, thinking herself the funniest person in the world. ~I never got what you saw in him. I mean he's pale, he's flabby, he's a bad dresser. He's not even that rich.~ ^^How dare she. Sure the first part is true, but not rich? What is she suggesting, you married out of love?"; 'Beverly', 'Bev', 'Winters': "~How do you feel about Beverly?~ ^^~She's a little manipulative, even for my tastes.~"; 'Banquet', 'dinner', 'tonight, ': "~Are you ready for tonight's banquet?~ ^^~Oh yes,~ Cynthia sighs, ~ahh, the noblesse oblig@'e. Really, being rich is such a chore.~ She fans herself with her hand weakly."; 'health', 'notice': "You mention the health notice you found in the cabinets. ^^~How do you know about that?~ she asks aggressively. ^^~I have my ways.~"; } "~Really, Julia, can't we talk about something a little more interesting?~."; ], has animate female proper; Object salad "half-eaten salad" dining_golf with name 'salad' 'lettuce' 'bowl' 'half' 'eaten' 'half-eaten' 'halfeaten' 'vinegar' 'sour' 'vegetables' 'vegetable', initial "Apparently someone lacked the willpower to stick to their diet, as a bowl of half-eaten salad sits on the table, forgotten.", description [; if (cucumber in self && loose_hairs notin self) "Little more than limp, wilted lettuce leaves and sour vinegar, the salad looks like it was picked at slightly, and then discarded. Nice way to spend twelve bucks. ^^Amongst the lettuce is a pair of cucumber slices."; if (cucumber in self && loose_hairs in self) "Little more than limp, wilted lettuce leaves and sour vinegar, the salad looks like it was picked at slightly, and then discarded. Nice way to spend twelve bucks. ^^Amongst the lettuce is a pair of cucumber slices with a number of hairs wrapped around it."; if (cucumber notin self && loose_hairs in self) "Little more than limp, wilted lettuce leaves and sour vinegar, the salad looks like it was picked at slightly, and then discarded. Nice way to spend twelve bucks. ^^Strands of Ms. Williams's hair are laced around the leaves."; else "Little more than wilted lettuce leaves and vinegar, the salad looks like is was picked at slightly, and then discarded. Nice way to spend twelve bucks."; ], after [; Drop: if (location == dining_kitchen) "You place the salad on the ground in one of the waiter's busiest routes."; else return false; ], before [; Eat: "If you wanted to put something limp and wilted in your mouth... Ok, that one's a little dirty even for you."; Receive: if (noun == loose_hairs) { move loose_hairs to salad; "You lay the hairs on the salad and toss it around a little to make it look more natural."; } if (noun == cucumber) { move cucumber to salad; "You put the cucumber back in the salad."; } if (noun == pills) "Although a bunch of Percodan would certainly make the salad more appealing, it would look a little odd."; else "Nothing you could add would make this salad more appealing."; ], invent [; if (cucumber notin self && loose_hairs notin self) { print "a half-eaten salad"; return true; } if (cucumber notin self && loose_hairs in self) { print "a very, hairy salad"; return true; } if (cucumber in self && loose_hairs notin self) { print "a cucumber salad"; return true; } if (cucumber in self && loose_hairs in self) { print "a hairy salad with some cucumber"; return true; } else return false; ], has transparent container open; Object cucumber "pair of cucumber slices" salad with article "a", name 'pair' 'slices' 'slice' 'cuke' 'cucumber' 'of', description [; if (self in salad) "The cucumber is holding up better than the lettuce, but not by much."; else "Just two round slices of cucumber, about the size of silver dollars."; ], before [; Eat: "Half-eaten food isn't quite your idea of fine dining."; Taste: "They taste like cucumbers. That is, nothing."; ], has pluralname; !--------------------------------------------------------------------------- !KITCHEN !--------------------------------------------------------------------------- Room kitchen "Kitchen" with name 'kitchen', each_turn [; if (self has visited) { Achieved(7); move in_kitchen to all_hints; } else return true; ], description "For all the years you've been a member of Pine Meadows, you've never had a reason to visit the kitchen before today. And you are thankful for that. If you had been here years ago you certainly wouldn't have been so quick to eat the food. Gray slabs of meat lie along the counters and hang from cupboards; enormous pots, some empty, some full, sit on stoves. All this under a barrage of pedestrian smells that assault your nose. A set of large, locked doors lead west to the banquet hall and a smaller opening on the opposite wall leads back out to the dining area.", before [; Smell: if (noun == nothing) "It reminds you of that trip through little Italy but without the pleasant distraction of body odor and cheap cologne."; else return false; ], out_to dining_kitchen, e_to dining_kitchen, w_to "The doors are locked until tonight's banquet.", ; Object kitchen_door "door" kitchen with name 'door' 'doors' 'entrance' 'banquet' 'hall', article "the", description "Before today, you've only seen these doors from the other side. From the banquet hall they are stately and made of oak, but apparently it's only panelling. From here you see that they are just the standard metal fare.", before [; Open,Unlock: "The doors are locked until tonight's banquet."; ], has openable lockable locked scenery; Object unprepared_food "unprepared food" kitchen with name 'food' 'meat' 'gray' 'unprepared' 'counter' 'counters' 'slabs', article "the", description "Looking at this food makes you feel like a child backstage at a magic show. But instead of your sense of wonder being erased it's your appetite.", before [; Smell: "It reminds you of that trip through little Italy but without the pleasant distraction of body odor and cheap cologne."; Eat: "You prefer your salmonella cooked."; Take,Touch: "If you're going to touch cold, lumpy meat you might as well touch Frank."; Receive: if (noun == peanut or bleach) "You don't want to contaminate the unprepared food."; else "That would do little good."; ], has scenery; Object meals "prepared meals" kitchen with name 'meal' 'dish' 'meals' 'dishes' 'prepared' 'food', article "the", description "Unbelievable. Just a short while ago, these were the nasty slabs of meat and bubbling liquids that turned your stomach. Now they look almost edible.", before [; Smell: "Smells almost appetizing."; Take,Touch: "Those belong to other people."; Receive: if (noun == peanut or bleach) "You don't want to contaminate that prepared food."; else "That would do little good."; ], has scenery; Object cynthia_food "Coquille Saint Jacques" with name 'Coquille' 'Saint' 'St' 'Jacques' 'Cynthia^s' 'food' 'plate' 'steaming' 'of' 'slimy' 'molluscs', article "the", initial "Amongst the many exotic dishes, you see a steaming plate of Coquille Saint Jacques.", description "Leave it to Cynthia to order something so pretentious.", food_contaminated false, before [; Smell: "For slimy molluscs, they don't smell half-bad."; Eat: "No, you want to ensure this gets to Cynthia."; Take: "Cynthia might be suspicious if you were to serve her the food yourself."; Receive: if (noun == peanut) { self.food_contaminated = true; Achieved(8); remove peanut; "With the cooks distracted, you sneak the peanut sauce in to Cynthia's food and discard the bottle."; } if (noun == bleach) "You don't want to poison her. Well, you do, but it'd probably be more trouble than it's worth."; if (noun == loose_hairs) "Besides from causing a little annoyance, a few loose hairs in Cynthia's wouldn't do much."; if (noun == pills) "Percodan would take far too long to affect her."; else "That might be fun, but it won't get the job done."; ], has ; Object cupboards "cupboards" kitchen with name 'cupboard' 'cupboards' 'dresser' 'dressers' 'cabinet' 'cabinets', description "Without even the pretension of being anything but utilitarian, the steel cupboards exist only to hide the baser ingredients of the kitchen.", after [; Open: "The cooks look at you suspiciously but say nothing. You're well known among the kitchen staff for your temper. The cupboards are packed with a bewildering array of foodstuffs."; ], allergy_known false, before [; Search: if (cupboards has open) { if (self.allergy_known == false) "You're as out of place in the kitchen as Frank is in a Speedo. Without a clue as to what to look for, you give up."; else { if (peanut hasnt moved) { move peanut to player; "Here we go, Thai peanut sauce. You slip it in to your pocket while the cooks aren't looking."; } else "You find nothing else of interest."; } } else "But the cupboards are closed."; ], has scenery openable pluralname transparent; Object foodstuffs "foodstuffs" cupboards with name 'foodstuff' 'foodstuffs' 'spices' 'sauces' 'soups', description "Spices, sauces, soups: the variety is astounding.", before [; Examine,Search: if (cupboards.allergy_known == false) "You're as out of place in the kitchen as Frank is in a Speedo. Without a clue as to what to look for, you give up."; else { if (peanut hasnt moved) { move peanut to player; "Here we go, Thai peanut sauce. You slip it in to your pocket while the cooks aren't looking."; } else "You find nothing else of interest."; } Take: "Let the chef do the cooking, you stick to complaining."; ], has scenery pluralname; Object peanut "peanut sauce" with name 'peanut' 'sauce' 'thai' 'peanuts', article "some", description "~Thai Peanut Sauce~ With the consistency and colour of baby food, after going through the baby, it's a wonder anyone puts this on their meals.", before [; Eat: "Nah, it probably tastes worse than it looks, which is saying a lot."; Open: "It might get all over your clothes if you open it."; Empty: "You don't want to spill it just anywhere."; EmptyT: if (second == unprepared_food or meals or cynthia_food or pots && pots.cooks_cleaning == false) "~Please, Mrs. Hawthorne,~ says one of the cooks, ~leave the food to us.~"; if (second == cynthia_food && pots.cooks_cleaning == true) { cynthia_food.food_contaminated = true; Achieved(8); remove peanut; "With the cooks distracted, you sneak the peanut sauce in to Cynthia's food and discard the bottle."; } else "You don't want to spill it on that."; ], has ; Object cooks "cooks" kitchen with name 'cook' 'cooks' 'chef' 'chefs' 'men' 'women', article "the", initial [; if (pots.cooks_cleaning == true) return true; else print (string) random("Desperate to keep up with constant orders floating in from impatient diners, the cooks scramble about, tossing you questioning glances now and then.^", "Desperate to keep up with constant orders floating in from impatient diners, the cooks scramble about, tossing you questioning glances now and then.^", "Desperate to keep up with constant orders floating in from impatient diners, the cooks scramble about, tossing you questioning glances now and then.^", "When he thinks you aren't looking, one of the cooks spits in to a steaming plate of something.^"); ], description "Harried and hurried, the cooks rush about the kitchen.", react_before [; Insert,PutOn: if (second == unprepared_food or meals or cynthia_food or pots && pots.cooks_cleaning == false) "~Please, Mrs. Hawthorne,~ says one of the cooks, ~leave the food to us.~"; else return false; ], life [; Kiss: "Better not draw attention to yourself."; Ask,Tell,Order: "The cooks are a little too busy to listen to you."; Attack: "You prefer to attack the help verbally."; ], has animate pluralname; Object pots "pots and pans" kitchen with name 'pot' 'pan' 'pots' 'pans' 'stove' 'stoves' 'mess' 'and', description [; if (self.cooks_cleaning == false) "Balanced on the stove, several pots stand dangerously close to falling over."; else "The pots are scattered about the stove."; ], react_before [; Go: self.turns_cooks_cleaning = 0; self.cooks_cleaning = false; StopDaemon(self); return false; ], before [; Push,Pull: if (self.cooks_cleaning == false) { self.cooks_cleaning = true; StartDaemon(self); "Pretending to move with a complete lack of grace, you clumsily lurch in to a large pot, sending it crashing to the floor."; } else "You've created enough of a scene for the moment."; Take: "The pots are rather heavy. You might be able to knock them over but lifting them is out of the question."; Receive: if (noun == peanut or bleach) "You don't want to contaminate whatever's in the pots."; else "That would do little good."; ], cooks_cleaning false, turns_cooks_cleaning 0, daemon [; self.turns_cooks_cleaning = self.turns_cooks_cleaning + 1; switch (self.turns_cooks_cleaning) { 1: "^Momentarily, the cooks are shocked by the crash, but after that wears off they proceed to clean up the mess you made, casting dirty looks your way but remaining silent nonetheless. Being feared certainly has its advantages."; 2: "^Apparently you made quite a mess. The cooks are still cleaning it up."; 3: "^The cooks are just about finished."; default: StopDaemon(self); self.turns_cooks_cleaning = 0; self.cooks_cleaning = false; "^With overly exasperated sighs, the cooks finish cleaning and get back to work."; } ], has scenery pluralname; !--------------------------------------------------------------------------- !PRO SHOP !--------------------------------------------------------------------------- Room pro_shop "Pro Shop" with name 'pro' 'shop' 'proshop' 'store' 'door', description "Since Pine Meadows instituted the policy of allowing day memberships, the shop has been enjoying a lot more business. Well, enjoying is probably the wrong word. The only people who frequent the shop are amateur social climbers trying to impress clients or lonely housewives eager to get a little attention from Keith. Luckily, none of them seem to be around, leaving you to see how cramped the shop actually is. All manner of rackets, clubs, and balls crowd the walls; an obtrusive counter divides the room arbitrarily, and to the north a door leads to the driving range, too small to open up the place at all.", after [; Go: if (noun == ne_obj) print "You walk down the paved path until you come to the Pro Shop.^"; return false; ], sw_to dining_golf, n_to driving_range, has ; Object mechandise "merchandise" pro_shop with name 'racket' 'rackets' 'club' 'clubs' 'irons' 'iron' 'ball' 'tennis' 'balls' 'merchandise', article "the", description "You can't believe you used to enjoy playing with these things.", before [; Take: "Nah, you gave up these games years ago."; ], has scenery; Object counter "counter" pro_shop with name 'counter' 'top' 'divider' 'table', description "You can't count the times Keith has suggested doing it on this thing. And you can't believe how appealing it sounds.", before [; Enter: "Although Keith would love it, that's a little Sex and the City for your taste."; ], has scenery supporter; NPC keith "Keith" pro_shop with name 'keith' 'lover' 'man' 'boyfriend', initial [; if (self.keith_scared == true) "Keith paces back and forth, absentmindedly fiddling with things."; else { if (pro_shop hasnt visited) "Keith smiles up at you as you enter."; else print (string) random("Keith stands here, smiling at you polishing a golf club suggestively.^", "Keith counts his tips and sighs.^", "Keith polishes the counter and winks at you.^", "Keith rubs his chest and smiles at you.^"); } ], description "Tall, well-muscled, and the most sexually virile man you've ever known, Keith rubs his hand across his chest absently when he catches you looking at him. You suppress a shudder and involuntarily lick your lips.", keith_first_seen false, keith_scared false, seen_pills false, each_turn [; if (self.keith_first_seen == false) { self.keith_first_seen = true; Achieved(9); "^~Hey babe, good to see ya,~ Keith says, smiling. ~I was beginning to think you might not make it.~"; } if (self.seen_pills == false && pills in player) { self.seen_pills = true; "^~You better be careful with those around Mr. Knowles,~ Keith says, glancing at the pills and jerking his thumb towards the driving range. ~He's in a huff ever since he found out about his grandson.~"; } ], react_before [; Buy: "~Come on, you know I'll give you anything you want,~ Keith says, trying to be gallant. ^^Unfortunately, you want none of this merchandise. Why couldn't you be sleeping with someone with money? (And don't say Frank because you're not actually sleeping with him)"; ], before [; Touch: "You'd love to, but that's gotten you in to enough trouble today."; Blow: "Nah. Even if you wouldn't get caught, pleasing others is not your M.O."; ], life [; Order: "~Ooh, I love it when you take control,~ Keith says, grinning, ~but I'm a little busy right now.~"; Show,Give: if (noun == film) { if (melissa.blackmailed == true || keith. keith_scared == true) "~Oh good, you got it. I was afraid I might lose my job,~ he says, his shoulders loosening up."; else "~What's that, some film?~ he asks."; } else "Keith stares blankly at ", (the) noun, ". Oh well, it's not the size his brain that interests you."; Kiss: "You'd love to, but that's gotten you in to enough trouble today."; Attack: "And risk hurting that beautiful face?"; Ask,Tell: switch(second) { 'cell', 'cellular', 'mobile', 'phone', 'telephone', 'calling', 'phoning': "~Keith, this is important, do you have a phone here?~ ^^~Sorry, babe, we don't got one.~"; 'tennis', 'golf', 'sports': "~For all the time you spend here, I don't think I've ever seen you play any of the sports offered at the club. Do you like them? ^^~They're ok, I guess, but I can think of a better way to get sweaty,~ he says, eyeing you and licking his lips."; 'pro', 'shop', 'proshop', 'store', 'business': "~How's business today?~ ^^~It's pretty slow actually. Roger's been the only one to come through here in hours.~"; 'racket', 'rackets', 'club', 'clubs', 'irons', 'iron', 'ball', 'balls', 'merchandise': "~What's with all these sports things?~ ^^~Well they're not the funnest things to play with,~ he says, eyeing your blouse suggestively."; 'counter', 'top', 'divider', 'table': "~Have you changed your mind?~ he asks, running his hand across the counter."; 'amateur', 'social', 'climbers', 'lonely', 'housewives', 'regulars': "~So have the regulars been around today?~ ^^~Haven't been many around, so the coast is clear if you want to...~ he says, licking his lips."; 'grandson', 'grand', 'son', 'pot', 'drugs', 'marijuana': "~What have you heard about Roger's grandson?~ ^^~Oh, you must have heard? Roger disowned his grandson for smoking some pot.~"; 'keith', 'himself', 'self': if (keith.keith_scared == false) "~How are you, anyway?~ ^^~I'm doing good now that you're here, babe,~ he says with a sappy grin on his face."; else "~How are you feeling?~ ^^~Well, I was doing good till you told me about that photo.~"; 'Pine', 'meadows', 'club', 'working', 'work': "~So how do you like working here?~ ^^~It'd be intolerable if you weren't here, babe,~ he says, looking at you fondly."; 'hall', 'access', 'spy', 'spying', 'basement', 'closet', 'melissa', 'mel', 'Stratham': if (melissa.blackmailed == true) "~Melissa told me someone put her up to taking the photo. And I was thinking since...~ ^^~You're not suggesting I put her up to it, are you?~ he interrupts, sounding a little hurt. ~You know I love you babe, but Frank would ruin me if he found out about us. I have as much to lose in this as you do.~"; if (melissa.melissa_known == false) { Achieved(17); melissa.melissa_known = true; "~Keith, this is important,~ you ask, leaning forward on the counter, ~when you left the basement after, you know, did you happen to see anyone around?~ ^^~Sure, I saw Mrs. Stratham leaving down the hall, towards the garden,~ he says, clearly unaware of the implication."; } else keith.keith_scared = true; "~Listen, Melissa was spying on us. She took a picture and if it gets to Frank, you'll be fired, and I'll be looking for a new husband.~ He casts you a hopeful glance. ^^Dream on, you think."; 'photo', 'picture', 'pic', 'camera', 'flash', 'click', 'film': if (melissa.blackmailed == false) { keith.keith_scared = true; "~Listen, Keith, someone was in the access hall while we were in the closet and they took a photo.~ ^^~You mean someone took a picture of us while we were fucking?~ You cringe at his vulgarity. ~Shit, what are we going to do?~ ^^~Don't worry, I'll take care of it,~ you say, hoping it's not a lie."; } else "~Melissa told me someone put her up to taking the photo. And I was thinking since...~ ^^~You're not suggesting I put her up to it, are you?~ he interrupts, sounding a little hurt. ~You know I love you babe, but Frank would ruin me if he found out about us. I have as much to lose in this as you do.~"; 'Frank', 'husband', 'marriage': "~About Frank...~ ^^~Why don't you leave him already? Then we could finally be together. Just don't tell him about us, he'd ruin me.~ With that, he leans forward dramatically. ~I could give you the moon.~ ^^No, what he could give you would be more painfully trite lines like that."; 'Charles', 'burton': "~What do you think of Charles?~ ^^~That guy freaks me out. Always brushing up against me and stuff.~"; 'me', 'Julia', 'sex': "~You're one wild girl.~"; 'Cynthia', 'Fordham': "~Do you know what Cynthia's been up to today?~ ^^~She's been in the dining area all day, as far as I know.~"; 'salary', 'pay', 'ten', 'thousand', 'ten thousand', '10,000', '$10,000', 'tips', 'jar': "~You don't make that much, do you?~ ^^~Yeah, I know, but as soon as my acting career takes off we'll be living large.~ ^^Yeah, that's gonna happen. You saw him in Hamlet one time, and he brought a whole new meaning to the word tragedy. By the end, you wished you were in the play so that at least you could have been killed off and put out of your misery."; 'hamlet', 'shakespeare', 'play', 'theatre', 'acting', 'actor': "~That was some play you were in.~ ^^~I was great, wasn't I?~ he says. ^^God, he's so desperate for approval."; 'roger', 'knowles', 'driving', 'range': "~Have you seen Roger today?~ ^^~Yeah, Roger's up at the driving range right now.~"; 'beverly', 'winters', 'cissy', 'cecilia', 'williams', 'winnecott', 'bev', 'ms': "~Sorry, babe. You know I don't move in the same circles as you.~"; } "~Sorry, babe. I don't know nothing about that.~"; ], has animate proper male worker; !--------------------------------------------------------------------------- !DRIVING RANGE !--------------------------------------------------------------------------- Room driving_range "Driving range" with description "With the banquet just a few hours away, most people aren't willing to work up a sweat. As such, the driving range is all but uninhabited. While most of the course is just grass, the range has concrete walks, sparing you from the torture that is walking on grass in heels. The Pro Shop lies to the south.", s_to pro_shop, cant_go "The rest of the golf course doesn't interest you. Besides, soft dirt and grass are hell in heels.", has ; Object pro_shop_far "Pro Shop" driving_range with name 'pro' 'shop' 'store', article "the", description "From this far away, the Pro Shop looks as cramped as it felt inside.", before [; Go,Enter: PlayerTo(pro_shop); ], has scenery; Object concrete "walk" driving_range with name 'concrete' 'walk' 'walkway' 'pavement' 'cement', article "the", description "Ahh, the miracle of concrete. Where would we be without it?", has scenery; Object grass "grass" driving_range with article "some", name 'grass' 'weeds' 'dirt', description "Ugh, nature.", has scenery; Object range "driving range" driving_range with article "the", name 'driving' 'range' 'net' 'green' 'links', description "Stretching a long ways off and ending in a large net, the driving range is for those members who are either too old or too lazy to actually play the holes.", has scenery; Object playing_equipment "club and some balls" driving_range with name 'club' 'ball' 'balls' 'bucket' 'Roger^s' 'iron' 'and' 'some', description "Roger's playing equipment; it's almost as old as the man himself.", before [; Take: "Roger probably wouldn't like that."; ], has scenery; NPC roger "Roger" driving_range with name 'Roger' 'Knowles' 'man' 'golfer' 'mr', initial "Roger Knowles, a man who puts the 'old' in old money, stands here, occasionally hitting a ball off in to the green.", description "While Pine Meadows's members have never been known for their progressive politics, Roger Knowles is considered a little old-fashioned even here. You'd be wise to watch your step around him; he's never liked you and, being a primary shareholder of the club, is likely to expel you should you disturb him too much.", julia_seen false, kiss_tried false, opinion_known false, each_turn [; print (string) random("^Roger sights up and smacks a ball clear across the green.^","^Thwack! A particularly bad slice. ~Damn it!~^","","","",""); if (self.julia_seen == false) { self.julia_seen = true; print "^~Oh, Julia, it's you,~ Roger says, looking up. As he returns his concentration to the game, he continues, ~What do you want?~^"; } ], before [; Blackmail: "Best not, you might anger him."; ], life [; Order: "Better not. He's probably the only man you can't bend to your will."; Show: if (noun == pills) "Better not, he might think they're yours."; else return false; Attack: "Beating up an old man is despicable even for you."; Kiss: (deadflag = 3); "Roger intercepts your advance with a wrinkled hand. ~Don't try your charms on me. Consider your membership revoked.~ ^^Getting kicked out isn't so bad, it's the fact that everyone knows why that is. After all, kissing an eighty-four year-old is hardly considered genteel, unless of course you're in the will."; Ask,Tell: switch(second) { 'cell', 'cellular', 'mobile', 'phone', 'telephone', 'calling', 'phoning': "~Do you happen to have a phone I could borrow?~ ^^~No. Phones only serve to interrupt you when you're doing something fun. Just like nosy socialites.~"; 'golf', 'golfing', 'driving', 'range', 'links', 'green', 'game': "~You really love golf, don't you?~ ^^~Yes, it's a very soothing sport. Or at least it usually is,~ he says, glaring at you."; 'pill', 'pills', 'bottle', 'prescription', 'percodan', 'drug', 'drugs', 'grandson', 'grand', 'son', 'doper', 'dopers', 'junkies', 'junkie', 'junky': Achieved(11); self.opinion_known = true; "You carefully feel Roger out about drugs. ^^~Damn junkies,~ he spits, ~they're ruining this country and this club. I will not have those people at Pine Meadows.~"; 'Pine', 'meadows', 'club': "~You've been here longer than anyone, how do you like it? ^^~This place really has gone down hill, along with the rest of America. Back in my day, a man was able to play a game of golf without getting disturbed.~"; 'primary', 'shareholder', 'discretion', 'membership', 'decisions': "~What's it like having all that power?~ ^^~Well, one of the great things about being the primary shareholder is that I can revoke the membership of anyone who bothers me too much,~ he says, glaring at you."; 'Melissa', 'mel', 'Stratham', 'Johnathan', 'Melissa^s': if (phone.doctor_called == false && office. doctor_called == false) "~Julia, I have no need of your gossip.~"; else "You better not, blackmail only works if you haven't actually revealed the information."; 'Cynthia', 'Fordham', 'Cissy', 'Winnecott', 'Beverly', 'Winters', 'Frank', 'keith', 'lover', 'affair', 'adultery', 'rumor', 'rumour', 'rumors', 'rumours', 'gossip': "~Julia, I have no need of your gossip.~"; 'Charles', 'Scott', 'desk', 'Burton', 'Registrar', 'gay', 'hoe', 'invoice', 'homosexual': if (scott.blackmailed == false) "~Julia, I have no need of your gossip.~"; else "Best not. You can get more out of Charles if you blackmail him directly."; 'film', 'photo', 'photograph', 'camera': "That's probably not such a good idea."; } "~God, Julia, say something important or leave me alone,~ he spits, casting you a baleful glare."; ], has animate proper male; !--------------------------------------------------------------------------- !BANQUET HALL !--------------------------------------------------------------------------- Room banquet "Banquet hall (at your table)" with name 'pearls', description [; if (fire notin self) "Well, here you are, seated at a table in what amounts to the most horrifically uncomfortable chair you have ever been upon. An ostentatious centerpiece, surrounded by candles with a program leaning against it, sits in the middle of the table, its baby's breath bouncing perilously close to the flames. All around you, the din of diners talking, plates clunking, and air-conditioners whirring, fade in to the background, allowing you to concentrate on the problem at hand."; else "With the fire blazing, your attention is better spent not looking around the room."; ], burn_unsuccessful false, burn_successful false, before [; Listen: if (fire notin banquet) "The banquet hall is alive with the sounds of people chatting, air-conditioners whirring, and plates clunking, but all that fades away beneath the sound of your heart pumping in your ears."; else "Frantic screams die away beneath the crackle of the fire."; Go: if(fire notin banquet) "If you leave now, Beverly will surely take the opportunity to show the photo to Frank."; else "You should probably ensure the photo is destroyed first."; Burn: if (self.burn_unsuccessful == true) "Better not, you already look like enough of a pyro."; else { if (noun == banquet_menu or program) { if (drinks.drinks_finished == false) { self.burn_unsuccessful = true; remove drinks; remove noun; StopDaemon(drinks); "Trying to make it look as accidental as possible, you put ", (the) noun, " in to the flame. Within seconds it is flaring away, causing quite a scene. ^^~Your ", (name) noun, "!~ Frank shouts, jumping to his feet, surprisingly gallant. Quickly, he grabs one of the glasses from the table and dashes water over the burgeoning fire. It goes out with a hiss, leaving a puddle of ashy water and charred paper. ~That was close,~ he wheezes, wiping the sweat from his forehead. ^^~Yes, a little too close,~ Beverly mutters, eyeing you suspiciously and moving her purse beneath her chair. ^^A team of waiters, hitherto immobilized with shock, move in to action. Within a few moments, the table is restored and people start getting back to waiting for their meals and gossiping amongst themselves."; } else { self.burn_successful = true; remove banquet_menu; remove program; remove candles; move fire to banquet; StopDaemon(drinks); "Trying to make it look as accidental as possible, you put ", (the) noun, " in to the flame. At first, no one notices the small flame, and by the time they do, it's too late for them to do anything. ^^~Your ", (name) noun, "!~ Frank shrieks, pointing frantically and lurching back from the table. His foot catches on the leg of his chair, and he is sent sprawling in to a dessert cart. Another time and you might have found that funny, but you've had your fill of schadenfreude for today. ^^Beverly, for once losing her icy composure, scrabbles away from the table as fast as she can. ^^The fire begins to spread."; } } if (noun == photo) { if (photo notin player) "You have to be holding the photo first."; else { move amusing_things to wasp_hints; Achieved(15); (deadflag = 2); "With a rather dramatic flourish (hey, you deserve it) you crumple up the photo and toss it in to the fire. As it burns, so does Beverly's hope of destroying your marriage. Not that she stops trying, though. Frank tells you later that week about a phone call from her, but without any proof, his blind adoration of you wins out over suspicion. ^^The fire that resulted during the banquet ended up destroying a good portion of the building. Good riddance, you say, the club was past its prime and it was more fitting that it go out with flare rather than dwindle away to mediocrity. "; } } else "Something of a pyro, are we?"; } ], each_turn [; if (self has visited) move endgame to all_hints; if (self.burn_unsuccessful == true) StartDaemon(self); else return false; ], turns_after_burn 0, daemon [; self.turns_after_burn = self.turns_after_burn + 1; switch (self.turns_after_burn) { 1: return false; 2: return false; 3: return false; 4: "^Suddenly, from the stage, the ceiling, and behind, speakers screech to life. ~Testing.~ Charles voice sounds out from all corners of the room, a good deal less servile when pumped out at a hundred and ten decibels."; 5: "^~Now, to say a few words before the banquet, here's Julia Hawthorne, this year's philanthropist of the year,~ Charles says, gesturing to you with a wide sweep of his hand while an enormous circle of light falls on you from a spotlight above. ~Let's give her a hand, everybody!~ A round of applause ensues."; 6: (deadflag = 4); "^You have no other choice. The time for action is over. Dejected, you make your way to the stage, hoping that Beverly chooses to prolong your anxiety for awhile longer and not show Frank the photo. Of course, hope is all you can do. ^^When you reach the stage, you cast a glance towards your table, just long enough to see Beverly showing something to Frank. As you begin your speech, Frank leaves the table, and your life, forever."; } ], has ; Object fire "fire" with name 'fire' 'flame' 'flames', description "The fire rages out of control.", each_turn [; if(self in banquet) { Achieved(14); StartDaemon(self); } else return false; ], before [; Enter: "That's not such a good idea, especially since you're more than 10% plastic."; Listen: "The fire crackles and hisses."; Smell: "The pleasant smell of burning wood and paper mingles with the stench of burnt plastic."; Receive,ThrownAt: if (noun == photo) { if (photo notin player) "You have to be holding the photo first."; else { move amusing_things to wasp_hints; Achieved(15); (deadflag = 2); "With a rather dramatic flourish (hey, you deserve it) you crumple up the photo and toss it in to the fire. As it burns, so does Beverly's hope of destroying your marriage. Not that she stops trying, though. Frank tells you later that week about a phone call from her, but without any proof, his blind adoration of you wins out over suspicion. ^^The fire that resulted during the banquet ended up destroying a good portion of the building. Good riddance, you say, the club was past its prime and it was more fitting that it go out with flare rather than dwindle away to mediocrity. "; } } ], turns_burning 0, react_before [; Tell,Ask,Order: "No time for that now!"; Smell: "The pleasant smell of burning wood and paper mingles with the stench of burnt plastic."; ], daemon [; self.turns_burning = self.turns_burning + 1; switch(self.turns_burning) { 1: remove centerpiece; "^The fire spreads to the centrepiece, the cheap plastic leaves curling and spouting out plumes of foul-smelling smoke."; 2: "^The flames web across the tablecloth, scorching the table underneath and sending waves of heat in to your face. You feel your nose soften. Dr. Rickers said it would take at least twice this much heat; that son of a bitch is so sued."; 3: "^The fire licks at the table, sending out smoke that makes your head swim."; 4: (deadflag = 6); "^The table collapses in to a pile of flaming kindling, sending a scent reminiscent of your trip upstate in to the air. ^^All the smoke finally gets to you. Your mind clouds over for a moment, and your knees buckle from under you. The last thing you remember is pitching headlong in to the fire. ^^When you awaken a few days later, you learn that Frank never saw the photo. But your satisfaction is short lived. With all the scars on your face, that's probably the last photo in which you looked decent. Well maybe not decent."; } ], has scenery burning; Object chair "chair" banquet with name 'chair' 'seat', description "Upholstered seat and wooden back, while aesthetically pleasing, is a somewhat inadequate design for comfort. You find it impossible to get settled, although that's probably due more to the awkwardness of the situation instead of the awkwardness of the chair's design.", before [; Enter: "You're already sitting."; ], react_before [; GetOff,Exit: if(fire notin banquet) "If you leave, Beverly will surely take the opportunity to show the photo to Frank."; else "You get off the chair."; ], has scenery; Object table "table" banquet with name 'table' 'cloth' 'tablecloth', description [; if (fire in banquet) "The cheap cedar is burning well."; else "While you would have preferred a simple white table cloth, this lace one serves just as well to cover the cheap, cedar fold-out underneath."; ], before [; Push,Pull,PushDir: "That would create too much of a scene, accidental is the look we're going for."; ], has scenery supporter transparent; Object centerpiece "centerpiece" banquet with name 'centerpiece' 'centrepiece' 'piece' 'bouquet' 'flowers' 'flower' 'baby^s' 'breath', description "Egad, from a cursory glance, the centerpiece appeared to be fresh-cut flowers, but on closer inspection, it's plastic! You knew this place was going down hill, but plastic?", before [; Burn: "It'd be hard to burn that without looking too obvious. Maybe try something that could look a little more accidental."; Smell: "Being plastic, the flowers don't smell quite as nice as you would hope."; Touch,Pull,Push,Take: "You'd rather not."; ], has scenery; Object candles "candles" banquet with name 'candle' 'candles' 'fire' 'flame', article "the", description "I guess Charles thinks that if the banquet is lit with these, people won't be able to see how tacky the whole thing is.", before [; Take: "That would look a little odd."; Receive: if (banquet.burn_unsuccessful == true) "Better not, you already look like enough of a pyro."; else { if (noun == banquet_menu or program) { if (drinks.drinks_finished == false) { banquet.burn_unsuccessful = true; remove drinks; remove noun; StopDaemon(drinks); "Trying to make it look as accidental as possible, you put ", (the) noun, " in to the flame. Within seconds it is flaring away, causing quite a scene. ^^~Your ", (name) noun, "!~ Frank shouts, jumping to his feet, surprisingly gallant. Quickly, he grabs one of the glasses from the table and dashes water over the burgeoning fire. It goes out with a hiss, leaving a puddle of ashy water and charred paper. ~That was close,~ he wheezes, wiping the sweat from his forehead. ^^~Yes, a little too close,~ Beverly mutters, eyeing you suspiciously and moving her purse beneath her chair. ^^A team of waiters, hitherto immobilized with shock, move in to action. Within a few moments, the table is restored and people start getting back to waiting for their meals and gossiping amongst themselves."; } else { banquet.burn_successful = true; remove banquet_menu; remove program; remove candles; move fire to banquet; StopDaemon(drinks); "Trying to make it look as accidental as possible, you put ", (the) noun, " in to the flame. At first, no one notices the small flame, and by the time they do, it's too late for them to do anything. ^^~Your ", (name) noun, "!~ Frank shrieks, pointing frantically and lurching back from the table. His foot catches on the leg of his chair, and he is sent sprawling in to a dessert cart. Another time and you might have found that funny, but you've had your fill of schadenfreude for today. ^^Beverly, ever the ice queen, backs away and cautiously maintains her distance, not willing to abandon her purse just yet. ^^The fire begins to spread."; } } if (noun == photo) { if (photo notin player) "You have to be holding the photo first."; else { move amusing_things to wasp_hints; Achieved(15); (deadflag = 2); "With a rather dramatic flourish (hey, you deserve it) you crumple up the photo and toss it in to the fire. As it burns, so does Beverly's hope of destroying your marriage. Not that she stops trying, though. Frank tells you later that week about a phone call from her, but without any proof, his blind adoration of you wins out over suspicion. ^^The fire that resulted during the banquet ended up destroying a good portion of the building. Good riddance, you say, the club was past its prime and it was more fitting that it go out with flare rather than dwindle away to mediocrity. "; } } else "Something of a pyro, are we?"; } ], has scenery burning; NPC waiters "waiters" banquet with name 'waiter' 'waiters' 'server' 'servers', description "Ahh, failed actors. Where would the service industry be without them?", react_before [; OrderSomething: "~I'm sorry, Mrs. Hawthorne, but we're really very busy,~ a waiter says on his way to another table. ~Someone will be around to take your order soon though."; ], life [; Kiss: "In front of Frank? So instead of Beverly giving him the photo you'll give him a live demonstration?"; Ask,Order,Tell: "~I'm sorry, Mrs. Hawthorne, but we're really very busy,~ a waiter says on his way to another table. ~Someone will be around to take your order soon though."; Attack: "Come on, the service isn't that slow."; ], has scenery animate pluralname worker; Object background_stuff "banquet" banquet with name 'diners' 'diner' 'air' 'conditioner' 'conditioners' 'plates' 'hall' 'banquet' 'background' 'people', description "You don't have time to be worrying about that.", before [; Examine: return false; default: "You don't have time to be worrying about that."; ], has scenery; Object banquet_menu "menu" with name 'menu' 'order' 'menus' 'list', description "The situation is enough to make you lose your appetite. And if it weren't, having seen the kitchen earlier certainly would.", first_turn false, each_turn [; if (self.first_turn == false) { self.first_turn = true; "^You nervously flip the menu over in your hands, absent-mindedly pretending to read."; } else return false; ], has ; NPC frank "Frank" banquet with name 'Frank' 'husband' 'hubby' 'wallet', initial [; if (fire notin banquet) "Frank sits to one side, gazing fondly at you."; else "Frank gibbers ineffectually as the fire rages out of control."; ], description [; if (fire notin banquet) "Looking at Frank, you wonder what ever attracted you to him in the first place. His skin is pale, his hair is limp, his body is flabby, and his clothes are outdated. Then you glance down at the bulge in his pants and remember: it was the size of his wallet."; else "Frank gibbers ineffectually as the fire rages out of control."; ], before [; Touch: "I don't think he'd appreciate that. Well, he would, but you sure wouldn't."; ], life [; Order: "Normally you revel in bossing Frank around, but today it might be a little risky."; Show,Give: if (noun == photo) "You haven't come this far just to give him the photo."; else "Frank smiles blankly."; Kiss: "You haven't kissed him in months. To do so now might raise suspicion, and something else you're not too fond of."; Attack: "If you don't destroy that photo, he'll be hurting enough."; Ask,Tell: switch(second) { 'Keith', 'lover', 'affair', 'photo', 'photograph', 'picture', 'pic', 'adultery', 'adulterer': (deadflag = 4); "First casting a defiant look at Beverly, you turn to Frank, take his hand in yours, and pinch your thigh to get some authentic tears flowing. ^^~Frank, I have to tell you something...~ ^^After what seems like hours of tears, pleads, and yells, things finally settle down. It's over. Not that it's the worst loss or anything, you just wish you hadn't signed that pre-nupt."; } "You're too nervous to talk to him now."; ], has proper animate male; NPC beverly_banquet "Beverly" banquet with name 'Beverly' 'Winters' 'bev', initial [; if (location hasnt visited) "Beverly eyes you suspiciously and pulls her purse a little closer."; else { if (fire notin banquet) "Beverly sits to the other, twiddling her pearls and smiling."; else "Beverly stands paralyzed, not knowing whether to dive for her purse or dive for the door."; } ], description [; if (fire notin banquet) "For all her bravado on the tennis court, Beverly seems to be a tad nervous. It's a lot easier to threaten to cause a scene and ruin a marriage than to actually do so. But if she's held on this long, there's no way she'll bow out now. In fact, you can see her hand dangling below the table, ready to fish out the photo from her purse at any moment."; else "Beverly stands paralyzed, not knowing whether to dive for her purse or dive for the door."; ], life [; Order: "Best not to provoke her."; Kiss: "Ahh, convince Frank you're a complete nympho by kissing Beverly and then maybe he won't consider your affair an act of betrayal and instead carry you off to the sexual-dysfunction clinic in his arms and you'll all live happily ever after, is that your plan? Dream on."; Attack: "Beverly could pull out that photo faster than you could hit her."; Ask,Tell: "You have nothing to say to her."; ], has proper female animate; Object beverly_purse "Beverly's purse" banquet with name 'bev^s' 'Beverly^s' 'purse' 'bag' 'handbag' 'hand', description [; if (photo in self) "Beverly's purse lies open on the floor, the photograph tantalizingly visible on top, obviously to remind you of Beverly's plan."; else "Beverly's purse lies open on the floor, but without the photo, it's of little interest to you."; ], before [; Search: "Beverly's purse lies open on the floor, the photograph tantalizingly visible on top, obviously to remind you of Beverly's plan."; Take: "It's not her purse you want."; Close: if (photo in self) "That would only make the photo harder to get."; else "You have more pressing things to consider."; ], has scenery open openable container proper; Object photo "photo" beverly_purse with name 'photo' 'photograph' 'pic' 'picture', article "the", description "It's no Annie Leibowitz, but you can still clearly make out both you and Keith. Hmm, you didn't realize you were so flexible.", before [; Take: if (banquet.burn_successful == false) "~Tut, tut, Julia,~ Beverly whispers, ~you needn't provoke me, I'll show Frank in due time.~"; else { print "With everyone distracted by the raging fire, you grab the photo. Damn it's hot.^"; move photo to player; return true; } ], has concealed; Object drinks "drinks" table with name 'drinks' 'Beverly^s' 'Frank^s' 'drink' 'wine' 'water', description "The others' drinks are on the table.", before [; Drink: "You must be really thirsty. You'll just have to wait for the waiter."; Take: "You don't want to anger either of them."; ], each_turn [; if (self.number_of_sips == 0) StartDaemon(self); ], number_of_sips 0, drinks_finished false, daemon [; self.number_of_sips = self.number_of_sips + 1; switch (self.number_of_sips) { 1: "^Beverly takes a sip of her drink."; 2: return false; 3: "^Frank sips at his drink nervously."; 4: "^Glancing up towards the stage, you see Charles preparing the podium for the speakers."; 5: return false; 6: "^Frank gulps down the rest of his drink."; 7: self.drinks_finished = true; "^Draining her glass, Beverly licks the rim with relish. She always was a bit of a lush."; 8: "^~Here, Beverly, let me get that for you,~ Frank says, taking the empty glasses and calling over the waiter. ^^~Oh, Frank. You're such a gentleman. How does Julia ever keep her hands off of you?~ she says, handing him her glass. ^^Frank chuckles. He always does that when he's nervous."; 9: remove drinks; "^A waiter comes by and removes the empty glasses, ignoring all requests for new drinks."; 10: return false; 11: return false; 12: return false; 13: return false; 14: "^Suddenly, from the stage, the ceiling, and behind, speakers screech to life. ~Testing.~ Charles voice sounds out from all corners of the room, a good deal less servile when pumped out at a hundred and ten decibels."; 15: "^~Now, to say a few words before the banquet, here's Julia Hawthorne, this year's philanthropist of the year,~ Charles says, gesturing to you with a wide sweep of his hand while an enormous circle of light falls on you from a spotlight above. ~Let's give her a hand, everybody!~ A round of applause ensues."; 16: (deadflag = 4); "^You have no other choice. The time for action is over. Dejected, you make your way to the stage, hoping that Beverly chooses to prolong your anxiety for awhile longer and not show Frank the photo. Of course, hope is all you can do. ^^When you reach the stage, you cast a glance towards your table, just long enough to see Beverly showing something to Frank. As you begin your speech, Frank leaves the table, and your life, forever."; } ], has scenery pluralname; Object speakers "speakers" banquet with name 'speaker' 'speakers', description "You almost forgot these were here. Surprising, considering the force with which they shook the room last time. You can still make out cracks in the walls from the time some idiot forgot to set the volume to medium.", before [; Examine: return false; default: "Now's not the time."; ], has scenery pluralname; Object stage "stage" banquet with name 'stage' 'podium', article "the", description "Ah, the stage. Normally you can't get enough of it, but today it fills you with dread.", before [; Examine: return false; default: "Now's not the time."; ], has scenery; Object program "program" table with name 'program' 'programme', speech_known false, description [; if (self.speech_known == false) { self.speech_known = true; "Damnit, with all that's happened today, it completely slipped your mind. But there it is, right in front of you. ~Opening speech by Julia Hawthorne; Philanthropist of the Year.~ You better make your move quick, before you have to go on stage. Serves you right for doing something nice."; } else "With black calligraphy on goldenrod, the program look like an angry wasp. It announces the ~Opening speech by Julia Hawthorne, Philanthropist of the Year~ that you have to make at quarter to seven. Whatever you're going to do, you better do it quick."; ], has concealed; NPC charles_banquet "Charles" banquet with name 'Charles' 'Burton' 'Charlie', description "Charles hustles about the stage, preparing it for the upcoming speech.", before [; Examine: ; default: "Charles is too far away to interact with."; ], life [; default: "Charles is too far away to interact with."; ], has scenery male proper; !--------------------------------------------------------------------------- !MISCELLANY !--------------------------------------------------------------------------- Object player_body "body" with article "your", pname 'face' 'eyes' 'lips' 'breasts' 'breast' 'chest' 'legs' 'tummy' 'ass' 'hips' 'cheeks' 'hands' 'nails' 'hands', description "Absolute perfection.", found_in [; return true; ], before [; Examine: return false; Tie: <>; default: "You don't need to do that."; ], has concealed; Object pine_meadows "Pine Meadows" with name 'pine' 'meadows' 'club' 'country', description "Despite its name, you can see surprisingly few pines and even fewer meadows.", found_in behind_club garden garden_path court dining_kitchen dining_golf range, before [; Enter: "Use a compass direction instead."; Examine: return false; default: "You don't need to do that."; ], has proper scenery; Object court_far "tennis court" with article "the", name 'tennis' 'court' 'fence' 'fences', description "You can't see much from here.", before [; Enter: "Use a compass direction instead."; Examine: return false; default: "It's too far."; ], found_in garden_path dining_golf dining_kitchen, has scenery; Object garden_far "garden" with article "the", name 'garden', description "You can't see much from here.", before [; Enter: "Use a compass direction instead."; Examine: return false; default: "It's too far."; ], found_in garden_path, has scenery; Object dining_far "dining area" with article "the", name 'dining' 'area', description "You can't see much from here.", before [; Enter: "Use a compass direction instead."; Examine: return false; default: "It's too far."; ], found_in garden_path court, has scenery; Object pro_far "pro shop" with article "the", name 'proshop' 'shop' 'pro' 'store', description "You can't see much from here.", before [; Enter: "Use a compass direction instead."; Examine: return false; default: "It's too far."; ], found_in dining_golf, has scenery; !ENTRY POINT ROUTINES [ Warning k; @erase_window -1; print "^^^^^^^^^^^^^"; k = 0->33; if (k > 30) k = (k-30)/2; style bold; font off; spaces(k); print " ^"; style roman; print "^^"; spaces(k); print "^^^^^^^"; font on; box " WARNING:" "" "This game contains sexual references" "and some strong language. If you are" "uncomfortable with this, please close" "your interpreter now. Otherwise, press" "any key to continue." "" "Despite the first scene, this is not a" "pornographic game." ; @read_char 1 -> k; @erase_window -1; ]; [ TitlePage i; @erase_window -1; print "^^^^^^^^^^^^^"; i = 0->33; if (i > 30) i = (i-30)/2; style bold; font off; spaces(i); print " ^"; style roman; print "^^"; spaces(i); print "^^^^^^^"; font on; box "Wasp or WASP (w@^osp)" "" " 1)" "" " Any of numerous social insects" " with mouths adapted for biting" " or sucking, and in the females" " an ovipositor modified as a sting." "" " 2)" "" " A white, usually Protestant" " member of the American upper" " social class." "" " --American Heritage Dictionary"; @read_char 1 -> i; @erase_window -1; ]; [ PrintTaskName task_number; switch (task_number) { 0: "finding the bleach"; 1: "getting some dirt on Charles"; 2: "giving Ms. Williams a new look"; 3: "finding the key"; 4: "learning of Cynthia's allergy"; 5: "finding the pills"; 6: "hiding from Charles"; 7: "getting in to the kitchen"; 8: "contaminating Cynthia's meal"; 9: "visiting Keith"; 10: "entering the office"; 11: "learning of Roger's attitudes"; 12: "blackmailing Melissa"; 13: "confronting Beverly"; 14: "putting the spark back in your marriage"; 15: "burning the photo"; 16: "staining Beverly's clothes"; 17: "finding out who took the picture"; 18: "calling Dr. Ferguson"; 19: "blackmailing Charles"; } ]; [ PrintRank; print ", earning you the rank of "; if (score == 20) "Diva."; if (score >= 15) "Dowager."; if (score >= 10) "Socialite."; if (score >= 5) "Debutante."; "Nouveau."; ]; !##ENTER and ##OPEN ACTION MY OWN [ ChooseObjects obj code; if (code < 2) { if (obj has scenery or animate or static) return 2; rfalse; } if (action_to_be == ##Eat && obj has edible) return 3; if (action_to_be == ##Enter && obj has supporter) return 3; if (action_to_be == ##Open && obj has openable) return 3; if (action_to_be == ##Change && obj has clothing) return 3; if (obj hasnt scenery) return 2; return 1; ]; [ Amusing; print "Have you tried: ^^ Kissing everyone? ^^ Trying all the generally unused verbs? ^^ Eating the salad? ^^ Telling Frank about Keith? ^^ Doing nothing after starting the fire? ^^ Asking Cynthia about nouveaus? ^^ Finding an alternate way of getting into the kitchen? ^^ Finding an alternate way of avoiding Ms. Williams seeing you? ^"; ]; [ Initialise; Warning(); TitlePage(); location = utility_closet; move clothes to player; give clothes worn; move watch to player; give watch worn; lookmode = 2; "^~Oh, Julia! Where did you learn that?~ Keith whispers breathlessly. ^^All tongue and fingers, he kisses the milky skin above your breasts, while your hands slide their way up and down his sculpted chest, so eager with lust that your watch occasionally snags on a stray chest hair. Your lips, glistening like two fresh strawberries laced with dew, hungrily roam across his neck. And your hips! Well, that's better left to the imagination. ^^Normally, you wouldn't even consider seeing Keith at Pine Meadows, but Frank's in Boston and won't be back until tonight's banquet. And when the cat's away... ^^Just then, a low shelf wedges itself in to your back, jarring you from your reverie. That's when you hear it. ^^A click. A flash. The tell-tale tapping of heels on concrete. ^"; ]; [ DeathMessage; if (deadflag == 3) print "You've been stung by a wasp"; if (deadflag == 4) print "Your marriage is ruined"; if (deadflag == 2) print "You saved your marriage"; if (deadflag == 6) print "Too bad, you fell out of the frying pan and in to the fire"; ]; !NEW VERBS [ WriteSub; "You don't have a pen."; ]; [ ThreatenSub; if (noun has pluralname) "", (The) noun, " aren't afraid of you."; else "", (The) noun, " isn't afraid of you."; ]; [ KnockSub; "No reply."; ]; [ BlackmailSub; "", (The) noun, " isn't afraid."; ]; [ PlaySub; "You've never been one for playing games. Come on, who are you kidding?"; ]; [ ShowerSub; "You're not close enough to the showers."; ]; [ HideSub; "There's nothing to hide from."; ]; [ OrderSomethingSub; "There's no one here to order something from."; ]; [ XyzzySub; "Nothing happens. Guess if you want to travel someplace exotic, you'll have to do it the old-fashioned way and sleep with Frank."; ]; [ UseSub; "That verb is too vague. Try something more specific."; ]; [ DummyBlackSub; "Try typing BLACKMAIL (someone) WITH (some words)."; ]; [ CallSub; "There's no phone here."; ]; [ ChangeSub; if (noun == nothing) "You don't need to change right now."; if (noun has clothing) "You don't need to change right now."; else "You can't change that."; ]; [ SmileSub; "That's the thing about botox, you can't."; ]; [ LaughSub; "You're laughing on the inside."; ]; [ HandleSub; "You feel nothing unexpected."; ]; [ TimeSub; <>; ]; [ MakeupSub; if (makeup in player) <>; else "You have to have your makeup with you before you can do that."; ]; [ SexSub; "That's gotten you into enough trouble today!"; ]; [ SignUpSub; "There's nothing to sign up on."; ]; !GRAMMAR AND EXTENDED Include "Grammar"; Extend 'lock' first * noun=DefaultLockTest -> DefaultLock; Extend 'unlock' first * noun=DefaultLockTest -> DefaultUnlock; Verb 'undress' * held -> Disrobe; Extend 'push' * "over" noun -> Push * noun "over" -> Push; Verb 'sign' * "up" -> SignUp * "up" "on" noun -> SignUp; Extend only 'burn' 'light' replace * noun -> Burn * noun "with" burning -> Burn; Extend 'blow' first * noun -> Blow; Extend 'fuck' first * creature -> Sex; Extend 'screw' first * creature -> Sex; Verb 'have' * "sex" "with" creature -> Sex; Extend 'fuck' * creature -> Sex; Extend 'sleep' * "with" creature -> Sex; Verb 'makeup' 'make-up' * 'self' -> Makeup * 'face' -> Makeup * 'my' 'face' -> Makeup * 'eyes' -> Makeup * 'me' -> Makeup * -> Makeup; Verb 'frisk' * creature -> Search; Verb 'mix' * held "with" noun -> Insert; Verb 'time' * -> Time; Verb 'handle' * noun -> Handle; Verb 'laugh' 'chuckle' 'guffaw' * -> Laugh * "at" noun -> Laugh; Verb 'smile' 'frown' * -> Smile; Verb 'change' * -> Change * noun -> Change; Extend 'sit' * "at" noun -> Enter; Verb 'call' 'dial' 'phone' * topic "on" noun -> Call * topic "with" noun -> Call * topic -> Call; Verb 'bump' 'jostle' * noun -> Push * "into" noun -> Push; Verb 'use' 'utilize' * noun -> Use * noun "on" noun -> Use * noun "with" noun -> Use; Verb 'xyzzy' * -> Xyzzy; Extend 'empty' * noun "in" noun -> EmptyT * noun "into" noun -> EmptyT; Verb 'do' * "up" noun -> Close; Verb 'order' * noun -> OrderSomething * noun "from" creature -> OrderSomething; Verb 'unbutton' * noun -> Open; Verb 'hide' * -> Hide * "behind" noun -> Hide * "under" noun -> Hide; Verb 'shower' * -> Shower; Verb 'talk' * "to" creature "about" topic -> Tell * "with" creature "about" topic -> Tell; Extend 'pick' * noun -> Take; Verb 'blackmail' 'threaten' * creature -> DummyBlack * creature "about" topic -> Blackmail * creature "with" topic -> Blackmail; Verb 'button' * noun -> Close; Verb 'apply' * noun -> Wear * noun "to" noun -> PutOn; Extend 'touch' * "up" noun -> Wear; Verb 'write' * "on" noun -> Write; Verb 'berate' 'boss' 'scare' 'yell' 'scream' 'shriek' * noun -> Threaten * "at" noun -> Threaten * noun "around" -> Threaten; Verb 'knock' 'rap' * "on" noun -> Knock * "over" noun -> Push * noun "over" -> Push; Verb 'spill' * noun "in" noun -> PutOn * noun "on" noun -> PutOn; Verb 'play' * "with" noun -> Play * topic -> Play; Extend 'ask' * creature "for" topic -> Ask; Verb 'pour' * noun "on" noun -> PutOn * noun "in" noun -> Insert; Extend 'look' * "up" topic -> Consult * topic "up" "in" noun -> Consult; Extend 'climb' * "through" noun -> Enter * noun "of" noun -> Enter * noun noun -> Enter;