replace userinit: function { "\bPoor Uncle Foggy. He was the best guardian any kid could ever ask for. After your parents died in that freak waterbed accident, Uncle Foggy practically raised you and your twin sister Winnie. You grew up in his home full of wacky inventions - practical jokes for all occasions. Uncle Foggy was a prankster, no two ways about it. It's only been a couple of years since you and Winnie left for college. Since then you've spoken far too infrequently. When you last spoke, Uncle Foggy rambled on and on about some ultimate practical joke, but you had a class on gallinaceous theology to get to. \b You and Winnie pull in to Foggywood Estate in your beaten-up coupe. The white picket gate swings quietly shut behind you as you kill the engine. Unfortunately your relatives, the Barnevelders from Rhode Island, have also just arrived. Uncle Orpington and Aunt Lamona are just climbing out of their gleaming black sedan, while your cousin 'Red' sits in his ridiculous monster truck and leans on the horn, which blares an ear splitting rendition of 'La Cucharacha.' \b Not a very auspicious way to kick off the reading of Uncle Foggy's will, is it? \b"; version.sdesc; "\b"; Me.location := global.start; // move player to initial location global.start.lookAround( true ); // show player where he is global.start.isseen := true; // note that we've seen the room notify(global, #events, 0); } replace version: object sdesc = "\(Foggywood Hijinx\) Release 2\n (Type \"about\" for more information)\n Copyright (c) 1998 by TextFeather, Inc. All rights reserved.\n Created for Adam Cadre's Chicken Comp and Lucian Smith's Mini-Comp.\n Developed with TADS, the Text Adventure Development System.\n" ; replace global: object start = outside turnsofar = 0 // no turns have transpired so far score = 0 // no points have been accumulated yet maxscore = 10 // maximum possible score verbose = true // we are currently in VERBOSE mode lamplist = [] // list of all known light providers in the game mystatus = 0 ischicken = nil rapped = nil tvon = 0 beakyou = "You can only carry one thing at a time in your beak. " b1 = nil //helpers are on buffalo b2 = nil //bellows is in place b3 = nil //straw is attached to bellows b4 = nil //straw is attached to balloon b5 = nil //balloon is in knot b6 = nil //balloon is full b7 = nil //everything in place b8 = nil //balloon is attached to bellows btot = { if (global.b7) return( 7 ); else if (!b1 and !b2) return( 0 ); else if (b1 and !b2) return( 1 ); else if (!b1 and b2) return( 2 ); else if (b1 and b2 and b3 and b8) return( 11 ); else if (b1 and b2 and !b3 and !b7 and !b8) return( 3 ); else if (b1 and b2 and b3 and !b4) return( 4 ); else if (b1 and b2 and b3 and b4 and !b5) return( 5 ); else if (b1 and b2 and b3 and b4 and b5 and !b6) return( 6 ); else if (b1 and b2 and b3 and b4 and b5 and b6) return( 7 ); else if (b1 and b8 and !b6) return( 8 ); } //0 = !b1 + !b2 nothing //1 = b1 + !b2 helper in place //2 = b2 + !b1 bellows in place (+any other condition), but not helper //3 = b2 + b1 + !b3 + !b7 + !b8 bellows and helper in place, no balloon or straw //4 = b1 + b2 + b3 + !b4 bellows connected to straw, no balloon //5 = b1 + b2 + b3 + b4 + !b5 bellows to straw to balloon //6 = b1 + b2 + b3 + b4 + b5 + !b6 bellows to straw to balloon in knot //7 = b1 + b2 + b3 + b4 + b5 + b6 bellows to straw to full balloon in knot //8 = b1 + b7 + !b6 helper in place + balloon on bellows chickens = [ 'Uncle Orpington' 'Aunt Lamona' 'Mr. Dorkings' 'Cousin Red' ] recipelist = { //if (rand(3) = 1) say(self.recipemsg[rand( length(self.recipemsg) )]); } recipemsg = [ '\b"Once we\'re done with our coq au vin," says Julia Childs, "we\'ll move on to a lovely chicken divan recipe." ' '\b"Thanks for tuning in," says Julia Childs. "I know you\'ll just LOVE our all day long chicken recipe-athon!" ' '\bOn the television, Julia Childs mercilessly pounds the carcass of some poor disemboweled fowl with a - gulp - meat tenderizer. ' '\b"You know," says Julia as she strips the flesh off some poor dead bird, "the thing I like about these Purdue chickens is how nice and easily the skins slide off. I guess it\'s true what they say. It really DOES take a tough man to make a tender chicken." Julia\'s audience laughs politely. ' '\b"I\'ve never tasted human flesh," says Julia, "but I hear it tastes just like Chicken! Doesn\'t THAT make you want to pat your tummies and say yummy yummy, viewers?" ' '\bOn the television, Julia Childs is busy shoving her entire forearm up some poor chicken\'s posterior. How humiliating! ' '\bThe terrible pounding resumes briefly as Mrs. Faverolles makes another attempt at the door. ' '\bA gutteral French accent beyond the door can only be Mrs. Faverolles cursing Dorkings for chasing her out of the study during her program. ' '\b"I once killed a chicken just to watch it die," says Julia Childs. ' '\bOn the television, Julia Childs is hacking the limbs off some unfortunate fowl with a butcher\'s knife the size of Bayonne, New Jersey. ' '\bOn the television, Julia Childs coughs up a mouthful of feathers. "Oh, dear!" she exlaims. "Excuse me!" ' '\bOn the television, Julia Childs cracks an egg into a bowl, whips it into a light batter, and then drops eviscerated chicken parts into it. "Well," says Julia, "I guess that answers the question of which came first!" ' '\bOn the television, Julia Childs invites an audience member up to assist her. The volunteer hesitates at reaching into the chicken\'s cavity, prompting Julia to ask "What\'re you... chicken?" Julia laughs hysterically at her own joke, accompanied by a smattering of applause from the audience. ' '\bOn the television, an audience member asks Julia if she uses free range chickens. "Free range!" she shouts cheerfully. "Gas range is more like it!" ' '\bOn the television, Julia Childs leans out into her audience and asks conspiratorially, "Do you folks know why the chicken crossed the road?" After a moment she answers, "Because it was hauled across in a butcher\'s cart, of course!" Her joke is met by silence from the audience, prompting her to respond cheerily with "Well! THAT joke sure laid an egg!" ' '\bOn the television, Julia Childs sneaks a sip of sherry from a bottle beneath the counter. You hear the word \'cirrhosis\' shouted from among the audience, to which Julia responds "Oh, pish tosh. There\'s nothing wrong with MY liver that a little CHICKEN liver won\'t cure!" ' '\b"Later today," says Julia Childs, "we\'ll be demonstrating how to perform emergency liver transplant surgery on your house pets using chicken liver!" ' '\b"Later on the program," says Julia Childs, "I\'ll show you how to feed a family of four even if your man is bringing home chicken feed!" ' '\bOn the television, Julia Childs drops one of the hens she is preparing. "Oh, too bad," she says, "Looks like that little chicky flew the coop!" ' '\b"On next week\'s program," says Julia Childs, "I\'ll be showing you how to make chicken-fried chicken!" ' '\bThe formerly dour Mr. Dorkings makes for a peculiar sight as he rebounds off your uncle\'s desk, leaving a trail of black feathers. ' '\bAunt Lamona and Uncle Orpington - at least you \(think\) they\'re Aunt Lamona and Uncle Orpington - slam into each other at full tilt and knock each other onto the floor. ' '\bRed - at least you \(think\) it\'s Red - clambers up onto the sofa and crows at the top of his scrawny little lungs. ' '\bCousin Red mistakenly runs into Aunt Lamona - she raises a great squawk and pecks Red viciously in return. ' '\bUncle Orpington pecks at the carpet as if looking for worms. ' '\bUncle Orpington pulls a long strand of fiber from the carpet. Cousin Red jealously tries to snatch it away, and a tug-of-war ensues. ' ] /*'\bWinnie calmly follows you about the room, observing your actions with interest. ' '\bWinnie, following closely, cocks her head quizzically at your actions. '*/ events = { switch(global.turnsofar) { case 1: "\bThe Barnevelders glare haughtily at you and Winnie as you all wait for admittance to Uncle Foggy's house. Not a word passes between the two factions. So far as you know, the Barnevelders have never even visited Foggywood before. "; break; case 2: "\bNone too soon, the front door is opened, revealing Mr. Dorkings, Uncle Foggy's solicitor. A dour man in black who rarely smiles, you've never quite trusted Dorkings. \b\"Mm,\" is all Dorkings has to say in greeting. \"You've all arrived. Good. We can begin right away. Please follow me.\" "; executor.moveInto( outside ); break; case 3: "\bYou and your relatives dutifully troop into the house after Dorkings. \b"; foyer.lookAround( true ); "\b\"We will be adjourning in the study for the reading of... \" He breaks off in mid-sentence and cocks his head towards the study. You listen carefully, and hear what sounds like polite applause. Dorkings turns back to all of you and says, \"Mm. Please wait here while I ensure that all is in readiness,\" before disappearing into the study. \bOdd, you think. Knowing Dorkings, he would have checked and double checked everything long before your arrival. "; Me.moveInto( foyer ); sister.moveInto( foyer ); executor.moveInto( study ); red.moveInto( foyer ); orp.moveInto( foyer ); aunt.moveInto( foyer ); break; case 4: "\bAfter a brief moment you hear rising voices. Well, one voice anyway. Dorkings' tone never rises or falls, but the other voice sounds like... \bMrs. Faverolles, the cook, storms out of the study, slamming the door against the wall. You can see from her complexion that she's at full broil. Ignoring your party, she whirls around and hurls a string of incomprehensible French epithets towards the study, waving a sauce spattered spoon in one hammy fist. Her other hand clenches a saucepan full of some rich burgundy sauce. "; cook.moveInto( foyer ); break; case 5: "\bMrs. Faverolles storms off toward the kitchen, still raging. Once the noise of her passage has quieted, Dorkings gestures your party into the study. \bYou and your relatives shuffle inside and take seats at opposite sides of the room. You and Winnie fill out the love seat, while the Barnevelders perch like chicken hawks on the matching sofa. \b"; study.lookAround( true ); "\bYou notice that an integrated television/video player has been set up on Uncle Foggy's desk, about where Uncle Foggy would be if he were presiding. "; Me.moveInto( loveseat ); sister.moveInto( loveseat ); cook.moveInto( nil ); red.moveInto( couch ); orp.moveInto( couch ); aunt.moveInto( couch ); break; case 6: "\b \"Just a moment more. Mm,\" says Dorkings, as he turns to the television. Your mind wanders, and you find yourself focusing on the Buffalo-On-A-Spring (pat. pending) mounted on the wall behind Uncle Foggy's desk. It was one of Uncle Foggy's funniest inventions, a terrific source of amusement. Well, for everyone but the unlucky victims, anyway. "; break; case 7: "\b\"Mm, here we are.\" Dorkings steps aside as the television springs to life. And there on the screen, real as life but only half as dead, is Uncle Foggy. \b\"Greetin's, family,\" begins your deceased uncle. \"Ah suppose, Ah say, Ah suppose you're all wondering why Ah've gathered you here today.\" Uncle Foggy pauses for an expectant moment, while the Barnevelders glare dispassionately. Winnie rolls her eyes, though at Uncle Foggy or the Barnevelders, you're not sure. \"Haw haw! It's a joke, son! Ah made a funny! Get it? Ah'm too fast for you! Gotta keep up, son!\" "; foggy.moveInto( study ); global.tvon := 1; break; case 8: "\b \"As you all know, Ah've made, Ah say, Ah've made a bunch of dough - that's SAWbucks, boy - off my inventions. Now Ah've gotta figure out who gets it.\" Uncle Foggy stares out of the screen for a moment before continuing. \"Well Ah won't do it, y'hear! Never was any good at this family stuff, and Ah'm not going to start playing favorites now. Instead, Ah'm leavin' it, Ah say, Ah'm leavin' it up to you all!\" You and Winnie and the Barnevelders exchange quizzical glances, but no one speaks. "; break; case 9: "\bUncle Foggy rolls on. \"What Ah propose, Ah say what Ah PROPOSE is a challenge. And the ones who best know me and my ways, well, they're gonna come out ahead.\" \bUncle Orpington leaps angrily to his feet and shouts, \"What new foolishness is this!\" Aunt Lamona spears him with a withering glance, and he reluctantly reseats himself. \b\"Now Orpy, by now Ah expect you're gettin' pretty riled up,\" says Uncle Foggy with frightening prescience. \"Well them's the breaks! The breaks, Ah say! Maybe if you'd ever taken favor on my work, things'd be different now.\" "; break; case 10: "\b\"Contest goes like, Ah say, contest goes like this! Ah've scattered ten of my inventions around, Ah say, all 'round my estate. Dorkings here will give you all a list. The one o' you who finds the most number of things on the list gets it, Ah say gets it ALL! The house, the money, and most importantly... Dorkings? Ain't you ready yet, suh?\" \b\"Ah, mm. Yes.\" Dorkings retrieves a black shammy sack from the desk and loosens the cord binding it shut. Reaching inside, he pulls out a matte black pyramidal object with a small switch at its apex. You jerk instinctively as Dorkings fumbles with the strange object. Everything slows as you watch it tumble to the ground with inexplicable dread. It lands on the shag rug with a faint but sickening 'click.' \bSuddenly the world seems larger. You look to Winnie for help only to find... a chicken! Staring back at you is a perfectly normal white crested hen! You look around. Oh, no. Where once stood Mr. Dorkings and your relations, now you see only chickens. A long moment of stunned silence follows, as the room's occupants glance around nervously at each other. \bThe silence is broken by Uncle Foggy's booming voice. \"You got it yet Dorkings? Good. Now, what you got here is my latest invention. The ultimate, Ah say, the ULTIMATE practical joke! Great at parties! It'll make a million, if my name isn't Fogarth Barnevelder! And the one of you all to bring back the most items on my list, gets it! And that's, Ah say, that's IT! Dorkings, you can stop this consarned thing any time now. My, Ah say, my job here is done.\" \bAs the implications of the situation sink in, there is a sudden tidal swell of panic. Someone - Aunt Lamona? Cousin Red? - leaps from their perch and sets up a dreadful squawking. Soon, the room is full of squawking, screaching birds running in panicked circles, feathers flying everywhere. "; gag.moveInto( studyfloor ); foggy.moveInto( nil ); global.ischicken := true; sister.moveInto(studyfloor); orp.moveInto(studyfloor); aunt.moveInto(studyfloor); red.moveInto(studyfloor); executor.moveInto(studyfloor); addword(sister, &noun, 'chicken'); addword(sister, &noun, 'hen'); addword(aunt, &noun, 'chicken'); addword(aunt, &noun, 'hen'); addword(executor, &noun, 'chicken'); addword(executor, &noun, 'rooster'); addword(orp, &noun, 'chicken'); addword(orp, &noun, 'rooster'); addword(red, &noun, 'chicken'); addword(red, &noun, 'rooster'); addword(barnevelders, &noun, 'chickens'); addword(barnevelders, &noun, 'roosters'); addword(barnevelders, &noun, 'hens'); break; case 11: "\bThe cacophany is broken by a sudden click as loud as the hammer of a revolver. Uncle Foggy's tape rolls to a stop and automatically starts rewinding. With the tape's feed gone, the television reverts to receiving broadcast signal. All eyes focus on the television as a recognizeable human figure appears, a woman in an apron standing behind a counter covered with neatly placed cooking utensils. \b\"Thank you, Charles,\" says Julia Childs. \"Now that our burgundy sauce is chilling and the hen's organs have been removed, we can proceed to stewing the guts and gizzards.\" Suddenly your attention is drawn to a furious pounding at the study door. Oh no - it must be the cook wanting to watch her program! \b\"SQUAWK!\" The panic renews with increased fury as your crazed relatives hurl themselves in shrieking clouds of feathers at every surface in the room. Well, it looks like its up to you and Winnie to figure out how to reverse Uncle Foggy's joke. "; julia.moveInto( study ); global.tvon := 2; notify(global, #recipelist, 0); break; case 666: "\bYou die and go to hell. \b* * *\b Too bad! "; quit(); break; default: break; } } noverb = { return( global.verbmsg[rand( length(global.verbmsg) )]); } verbmsg = [ 'You can\'t do that, you dumb cluck! You\'re a chicken! ' ] thanks = "\b\bThank you for playing \(Foggywood Hijinx\), a TextFeather release. On-line registration for TextFeather products will be available at http://www.textfeather.com on or before June 30, 1998. Thanks for your patience! " ; /* -outside:thing; */ outside: room sdesc = "\(Front Lawn\)" ldesc = { "Uncle Foggy's front lawn teeters just on the border of ill-kempt, though no one specific flaw draws attention. The three vehicles parked on the lawn fail to aid its appearance. Uncle Foggy's home, Foggywood Manor, lies to the north, while the gate through which you entered rests back to the south. Though you can't see it over the hedges, you know that beyond the gate and across the road lies the ramshackle cabin that Uncle Foggy called his lab. "; if (!global.ischicken) "\bThe Barnevelders are here, standing by the front door with you and Winnie. "; else "\bWinnie is here with you, eagerly waiting for your next move. "; } north = { if (global.ischicken) { "There's no getting back through the window, even if you wanted to. You can still hear Mrs. Faverolles chasing your squawking relatives and screaming French invectives. "; return(nil); } } south = { if (global.ischicken) { if (global.triedgate) "Not with that fox hanging around out there! You're going to have to find another way to cross that road. "; else "You head for the swinging gate, left conveniently ajar, and squeeze through to the other side. It looks like an easy trip across the road to Uncle Foggie's lab. But just as you're about to set foot on the road, a streak of copper catches your eye. It's a fox! You turn tail and run back through the gate, just in time to bump into Winnie coming out. The two of you rebound off each other, confusing your sense of direction. With a growing sense of urgency you rush at the gate again, and manage to squeeze through just as a sharp claw swipes at your tail feathers. The gate bangs shut behind you, startling the fox away for the moment. Then it slowly creaks open again. "; global.triedgate := true; } else { "But you just got here! Wouldn't you like to at least hear the reading of the will first? "; } return( nil ); } ; outsidewindow: fixeditem verDoOpen(a) = { if (!global.ischicken) "Though you and Winnie used to crawl through that window often, the spirit of the day has got you too melancholy to think about it. "; else "You'll never get the window open again from this side. "; } location = outside adjective = 'study' noun = 'window' sdesc = "window" ldesc = "It's a plain, white-framed, four-panel window that looks in on Uncle Foggy's study. " verDoLookthru(a) = { if (!global.ischicken) "The interior of Uncle Foggy's study is dimly lit, and reveals little to your bright adjusted eyes. "; else "You can't see much through the shut window, but you can still hear the horrible massacre within. "; } ; house: fixeditem sdesc = "mansion" ldesc = "Uncle Foggy's lovely Tudor mansion sprawls to the north. Atop the front arch spins a creaky old weather vane. A glance at the window leading in to Uncle Foggy's study fills you with nostalgic reverence. " noun = 'house' 'manor' 'mansion' 'home' 'foggywood' location = outside ; vane: fixeditem sdesc = "weather vane" ldesc = "A creaky old iron weather vane in the shape of a rooster points vaguely northward. " adjective = 'creaky' 'old' 'weathervane' 'weather' noun = 'vane' 'weathervane' location = outside ; frontdoor: fixeditem sdesc = "front door" ldesc = "Uncle Foggy's door is painted a simple eggshell white, adorned with a wrought-iron knocker in the shape of a crowing cock. " adjective = 'front' noun = 'door' verDoOpen(a) = {} doOpen(a) = { "You raise the chicken knocker and rap lightly on the door. "; global.rapped := true; } verDoKnock(a) = {self.verDoOpen(a);} doKnock(a) = {self.doOpen(a);} location = outside ; knocker: fixeditem sdesc = "knocker" ldesc = "It's a wrought-iron knocker in the shape of a crowing cock. " adjective = 'wrought' 'iron' noun = 'knocker' verDoPull(a) = { frontdoor.verDoOpen(a); } doPull(a) = { frontdoor.doOpen(a); } verDoKnock(a) = { frontdoor.verDoOpen(a); } doKnock(a) = { frontdoor.doOpen(a); } location = frontdoor ; coupe: vehicle isListed = nil sdesc = "coupe" ldesc = "Your car is a beaten-up, anonymous-looking two door coupe. It reminds you of one of Uncle Foggy's favorite jokes: Why has a chicken coop got only two doors? Because if it had four it'd be a chicken sedan! " adjective = 'mine' 'our' 'my' noun = 'car' 'coupe' 'vehicle' location = outside verDoBoard( a ) = {} doBoard( a ) = { if (!global.ischicken) "You just got out of it. There's nothing inside that you need. "; else "Unfortunately the doors are locked. Well, not locked, exactly, since the locks don't work anymore. Certainly chicken-proof, anyway. "; } verDoDrive(a) = {"It would help if you were inside it first. ";} verDoSteal(a) = { "Stealing your own car would be silly. "; } ; limo: vehicle isListed = nil sdesc = "Oldsmobuick" ldesc = "Your Uncle Orpington's Oldsmobuick is a beetle black sedan of late vintage. It looks big and mean, fit for running down small animals and old ladies on the highway. " adjective = 'black' 'uncle' 'orpington\'s' noun = 'sedan' 'car' 'vehicle' 'Oldsmobuick' location = outside verDoBoard( a ) = {} doBoard( a ) = { if (!global.ischicken) "Your Uncle Orpington favors you with a foul glance. "; else "Uncle Orpington's steam roller is more suitable to running chickens down than passengering them. "; } verDoDrive(a) = {"It would help if you were inside it first. ";} verDoSteal(a) = { "You consider stealing Uncle Orpington's car. Then you consider how bad the food is at the local prison. You just \(hate\) powdered eggs. "; } ; truck: vehicle isListed = nil adjective = 'cousin' 'red\'s' 'monster' noun = 'truck' 'monster' 'vehicle' 'stairs' 'ladder' 'steps' sdesc = "monster truck" ldesc = { if (self.location=outside) { if (Me.location=outside) "Your cousin Red's monster truck is a masterpiece of modern automotive engineering. Its brightly colored chassis hovers nearly five feet off the ground, suspended by enormous black tires big enough to feed an entire tribe of African pygmies through three rainy seasons. A galvanized metal stair extends down from the driver's side door, without which tiny Red could never have tamed the monster. Apparently Red left the roof at home, as the cab is open to the air. Red has obnoxiously parked the truck facing forward right in front of the gate, which forced you to drive around him when you entered. "; else "The gas pedal, ignition key, and gear stick all promise interesting avenues of investigation. \bWinnie is here with you, eagerly waiting for your next move. "; if (key.turned) "\bThe monster truck rumbles ominously. "; } else "It's a good thing Cousin Red's not here to see his truck. It's a wreck, filled with fallen debris from its collision with Uncle Foggy's lab. "; } location = outside stealmsg = "Your Cousin Red sees you aiming for his ride and simpers at you, \"Hey, don't even think about it.\" " stealmsg2 = "YEAH! YEAH! DRIVE! LET'S TAKE THIS MONSTER TO \(VEGAAAAS\)! " doSynonym( 'Board' ) = 'Climb' 'Enter' doBoard( a ) = { if (!global.ischicken) self.stealmsg; else if (self.location = lab) "It's too full of debris to reenter. "; else { "Followed by Winnie, you hop up the metal steps and flutter over the door into the cab of Red's truck. It is with incredible relief that you find Red's car keys hanging from the ignition. You've never driven a truck like this - let alone while wearing a chicken's body - but the ignition, gear stick and gas pedal look like a good place to start. "; Me.moveInto( self ); sister.moveInto( self ); } } verDoUnboard(a) = { if(Me.location<>self) "You're not in the monster truck. "; else "Winnie grabs your tailfeathers with her beak, as if to say \"C'mon, let's get this show on the road!\" "; } down = self.verDoUnboard( Me ) out = self.verDoUnboard( Me ) verDoSteal(a) = { if (!global.ischicken) self.stealmsg; else self.stealmsg2; } verDoDrive(a) = { if (!Me.isIn(self)) { if (!global.ischicken) self.stealmsg; else self.stealmsg2; } else if (!key.turned) "It's not going far without the ignition switched on. "; else if (!stick.shifted) "It's not going far in neutral. "; else { self.stealmsg2; "\b(It might help if you were a bit more specific in your actions.) "; } } ; key: fixeditem turned = nil doSynonym( 'Turn' ) = 'Switch' 'Turnon' verDoTurn(a)={} doTurn(a) = { if (self.turned) "Winnie pecks you lightly as if to say \"C'mon... let's blow this coop!\""; else { "You turn the keys with your beak, and the monster truck roars to life!"; self.turned := true; } } adjective = 'ignition' 'rabbit\'s' 'rabbit' noun = 'key' 'keys' 'ignition' 'foot' sdesc = "keys" ldesc = "Thankfully, Cousin Red has left his keys in the ignition. A lucky rabbit's foot dangles from the keychain. You wonder if the rabbit was still alive when Red cut it off. " location = truck ; stick: fixeditem shifted = nil doSynonym( 'Push' ) = 'Move' 'Pull' 'Turn' 'Switch' 'Press' verDoPush(a)={} doPush(a) = { if (!key.turned) "It would help if you turned on the ignition first. "; else if (self.shifted) "Winnie pecks you lightly as if to say \"C'mon... let's blow this coop!\""; else { "You and Winnie together both jump on the gear shift, your combined weight just barely enough to slide it into gear. "; self.shifted := true; } } adjective = 'stick' 'gear' noun = 'shift' 'stick' 'gears' 'gear' sdesc = "gear shift" ldesc = "Cousin Red's gear shift has an eight-ball mounted on the knob. " location = truck ; pedal: fixeditem doSynonym( 'Push' ) = 'Move' 'Jump' 'Stand' 'Standon' 'Press' verDoPush(a)={} doPush(a) = { if (!key.turned) "It would help if you turned on the ignition first. "; else if (!stick.shifted) "It would help if you put the truck in gear first. "; else { "Fearing that even your combined weight may not be enough, you and Winnie jump together onto the gas pedal. The truck lurches into motion! Rear wheels pealing, it bursts forward, crashing through the front gate \(and across the road, baby!\) At the far side, the truck hits a deep pothole that jolts you and Winnie into the air, giving you a perfect view as the truck slams into one sagging wall of Uncle Foggy's ramshackle lab. The impact flattens you into the windshield, as debris from the crumbling wall crashes down upon you. \b When the dust finally settles, you and Winnie clamber dizzily out of the truck. Uncle Foggy's lab is a shambles. Shelves have collapsed, spilling their contents everywhere. The entire structure looks as though it may fall down at any moment. But there, posted on a relatively stable section of wall, is a diagram outlining the process of Uncle Foggy's Super Funky Chickenizer (pat. pending). Below it, on a sturdy bench, is a small white pyramid - clearly the mate to the device that got you into this mess. "; truck.moveInto(lab); Me.moveInto(lab); sister.moveInto(lab); } } adjective = 'gas' noun = 'pedal' sdesc = "gas pedal" ldesc = "Press it and go \(vroom\). " location = truck ; horn: fixeditem location = truck noun = 'horn' sdesc = "horn" ldesc = "The horn on cousin Red's truck is so loud that when it sounds, God fearing Christians kneel in prayer and wait to be swept up into the sky. " verDoPush(a) = { "The horn blares out an ear-splitting version of 'La Cucaracha.' "; } doSynonym( 'Push' ) = 'Play' 'Press' ; playVerb: deepverb sdesc = "play" verb = 'play' doAction = 'Play' ; /* -lab:thing ;*/ lab: room sdesc = "Uncle Foggy's Lab" ldesc = "Uncle Foggy's lab is a complete wreck as the result of your recent mishap with Cousin Red's truck. Debris is scattered everywhere. Posted on one wall, like a vision from heaven, is a diagram outlining the process of Uncle Foggy's Super Funky Chickenizer (pat. pending). Beneath it is a sturdy bench on which rests a white pyramidal device. " noexit = "You'll never climb out of this wreck in your chicken form. " ; bench: chairitem sdesc = "bench" ldesc = "It's a sturdy lab bench that survived the recent disaster. Resting on it is a white pyramidal device. " adjective = 'sturdy' 'work' noun = 'bench' location = lab outOfPrep = "off of" statusPrep = "on" doUnboard(a) = { "You hop down off the bench, still in your chicken form. "; Me.moveInto(lab); } down = self.doUnboard( Me ) ; magag: fixeditem adjective = 'white' 'matte' 'pyramidal' 'ultimate' 'practical' 'super' 'funky' noun = 'pyramid' 'joke' 'invention' 'antidote' 'device' 'humanizer' ldesc = "This must be the reversion device for Uncle Foggy's Super Funky Chickenizer (pat. pending). It's a white matte pyramid with a small switch at its apex. " sdesc = "Super Funky Humanizer (pat. pending)" verDoTake(a) = { "Whatever it's made of, it's too big and heavy for you to carry in your beak. "; } location = bench ; toggle2: fixeditem location = magag noun = 'switch' 'toggle' sdesc = "switch" ldesc = "It works flip-flop! " doSynonym( 'Flip' ) = 'Turn' 'Push' 'Pull' 'Kick' 'Scratch' 'Peck' 'Press' verDoFlip(a) = { if (Me.location=lab) "You can't reach the device from the lab floor. "; } doFlip(a) = { "The switch flips over with a hollow 'click'... and suddenly, the world seems smaller. \b\b\b [Hit any key to continue.] "; Me.moveInto( diningroom ); sister.moveInto( diningroom ); inputkey(); clearscreen(); "Much later, you and Winnie sit down to a sumptuous dinner prepared by Mrs. Faverolles. You're both able to laugh over the day's events from the comfortable safety of Uncle Foggy's expansive dining room. \b\t\"What a day!\" you exclaim to Winnie between mouthfuls. \n\t\"I know,\" she says, sipping a glass of wine. \"I thought we would \(never\) find a way to revert to our old selves.\" \n\t\"Too bad about the Barnevelders missing their chance to participate in the scavenger hunt.\" \n\t\"Oh, yes,\" nods Winnie. \n\t\"So. How are you finding the chicken?\" you ask, changing the subject. \n\t\"Mm, it's a big stringy for my tastes.\" says Winnie, chewing a mouthful of food. \n\t\"Really? Mine's quite tender.\" \n\t\"Well, you know what they say,\" says Winnie. \n\t\"What's that?\" you inquire. \b\t\"\(It's all relative!\)\" \b\t* * *\b Congratulations! You have won \(Foggywood Hijinx\)! \b\bThank you for playing \(Foggywood Hijinx\), a TextFeather release. On-line registration for TextFeather products will be available at http://www.textfeather.com on or before June 30, 1998. Thanks for your patience! "; quit(); } ; diningroom: room sdesc = "dining room" ldesc = "Uncle Foggy's dining room is beautifully furnished. " ; debris: fixeditem sdesc = "debris" ldesc = "The remains of what was once Uncle Foggy's lab. Unidentifiable ruins are scattered everywhere. " location = lab noun = 'debris' 'mess' 'junk' 'stuff' ; diagram: fixeditem ldesc = "It seems to outline the process of Uncle Foggy's Super Funky Chickenizer (pat. pending). " location = lab noun = 'diagram' sdesc = "diagram" ; cars: fixeditem location = outside noun = 'cars' 'vehicles' sdesc = "cars" ldesc = "Your worn out coupe looks pretty shoddy compared to the gleaming lustre of the Barnevelder's massive sedan, to say nothing of Red's gargantuan, brilliantly painted truck. " verDoSteal(a) = { self.specify; } verDoDrive(a) = { self.specify; } verDoBoard(a) = { self.specify; } specify = "You should specify which one you're referring to: your coupe, Uncle Orpington's sedan, or Cousin Red's truck. " isListed = nil isplural = true ; gate: fixeditem sdesc = "gate" ldesc = "It's a simple picket fence gate that spans a gap between tall hedges on either side. The gate opens wide enough to permit vehicles to pass through. Currently it's slightly ajar. " adjective = 'white' 'picket' noun = 'gate' 'fence' verdoOpen(a)={} doOpen(a) = { if(!global.ischicken) "You just arrived. No need to open the gate now. "; else "The gate is too heavy for you to push open, though you could squeeze through the gap. "; } location = outside ; hedges: fixeditem sdesc = "hedges" ldesc = "Eight foot high hedges border the property on all sides. Uncle Foggy was a bit on the reclusive side. " noun = 'hedge' 'hedges' location = outside ; fakelab: intangible errmsg = self.ldesc sdesc = "fox" ldesc = "You can't see Uncle Foggy's lab from the yard, but you know it's just across the road beyond the gate. " adjective = 'uncle' 'foggy\'s' noun = 'lab' ; fox: intangible errmsg = "You can't see the fox, but you know it's still out there. " sdesc = "fox" ldesc = "It's little more than an occasional coppery streak beyond the gate. " adjective = 'copper' 'coppery' noun = 'fox' 'streak' ; /* -foyer:thing; */ foyer: room sdesc = "\(Foyer\)" ldesc = { "Uncle Foggy's foyer is tastefully decorated, even if the blue hen wallpaper does seem a bit queer. Passages from the foyer lead off in many directions, but your only business here today is in the study to the east. The walls are adorned with glossy photos taken around Uncle Foggy's favorite travel destination. Nailed to a chest-high post is a stuffed bird, eternally caught in its morning salutation to the sun. "; if (!global.ischicken) "\bThe Barnevelders are here, waiting to be admitted into the study with you and Winnie. "; } south = { "While standing in the same room as the Barnevelders \(is\) enough to send you screaming out the front door, right now you'd rather bide your time until you've heard the reading of the will. "; return(nil); } east = { "Though you feel as if you should have free run of the place, right now you'll have to wait until Mr. Dorkings allows you to enter. "; return(nil); } north = { "It saddens you to think that, after today, you may never visit Uncle Foggy's home again. But for now you'll just have to wait for the reading of the will. "; return(nil); } west = self.north nw = self.north up = self.north ne = self.north ; photos: fixeditem sdesc = "photographs" ldesc = "Lush photos of the Sun Pyramid taken around Chi-chen Itza. Uncle Foggy claimed to have held great admiration for the builders of the pyramid. " noun = 'photo' 'photos' 'photographs' 'photograph' 'picture' 'pictures' location = foyer ; wallpaper: fixeditem noun = 'wallpaper' 'paper' 'hens' adjective = 'wall' sdesc = "wallpaper" ldesc = "A cheery chicken-and-egg motif!" location = foyer ; studydoor: fixeditem location = foyer sdesc = "study" ldesc = "Uncle Foggy's study lies to the east, though you can't see much from here. " noun = 'study' verDoBoard(a) = { if (global.turnsofar=4) ""; else "You'll have to wait until Dorkings invites you inside. "; } ; rooster: fixeditem adjective = 'stuffed' noun = 'bantam' 'post' 'perch' 'bird' sdesc = "stuffed bantam" ldesc = "The famous Norwegian Blue Bantam. No wonder they call it blue - it really does look a bit down in the beak. Perhaps it's pinin' for the fjords? No, clearly it has shuffled off this mortal coil. After all, the only reason it's even sitting on that perch is that it's been nailed there. " location = foyer ; /* -study: thing; */ study: room sdesc = "\(Study\)" ldesc = { "Light from the outside streams in through the closed window, illuminating Uncle Foggy's comfortably cluttered study. It's full of interesting odds and ends, not the least of which is the trophy mounted on the wall above the desk. Many were the times that you and Winnie would climb the bookshelves in search of written treasure, and then spread out by the fireplace with your latest finds. For more dexterous pleasures, there was the carton of assorted works in progress Uncle Foggy usually kept beneath his desk. If nothing else appealed, sneaking maraschino cherries from the bar was always good for a few giggles. "; if (!global.ischicken) "\bThe Barnevelders are here, seated on the couch across from you and Winnie, while Mr. Dorkings stands beside the desk. "; else "\bThe room is filled with chickens, running in crazy circles and bounding off the furniture and each other. Resting off to one side of the room is Uncle Foggy's ultimate practical joke. "; } noun = 'study' west = { if (!global.ischicken) "It would be disrespectful to go wondering through the mansion during the reading of Uncle Foggy's will. "; else self.pharoah; } pharoah = "The Pharoahs built their pyramids on the labor of thousands of slaves, each tied into harnesses and pulling inhuman weight. This game hates to break it to you, but frankly, you're no Pharoah, and the Barnevelders ain't Jewish. That door is \(massive\). Perhaps you'd have more luck with the window. " escape = { "You flounce through the window, Winnie close behind. You've just reached the outside sill when behind you, a thunderous din begins at the door. The door cracks open to reveal the terrible figure of Mrs. Faverolles! She stands beneath the lintel brandishing the mucous-white corpse of a dead fowl in one hand and a great cleaver in the other. All is still as she and your relatives regard each other with silent amazement. The tableau is broken as Julia Childs show cuts to a commercial and an announcer's voice screams \"FUNNY CAR AND MONSTER TRUCK RALLY SUNDAY SUNDAY \(SUNDAAAAY\)!!!\" Mrs. Faverolles slams the door behind her and wades into the room swinging her bloody cleaver to the sound of manic laughter on the television. The feathers fly as your relatives carom around the room like chickens with their heads cut off. You and Winnie watch in horror until the Super-Bendy Balloon-Animal Balloon (pat. pending) beneath the window finally bursts, sending the window speeding shut and throwing the two of you from your perch on the sill. You flutter to the ground, no worse for wear. \b"; } south = { if (global.b7) { self.escape; unnotify(global, #recipelist); fox.moveInto( outside ); sister.moveInto( outside ); return( outside ); } else if (global.ischicken) window.twins; else "Crawling through the window just doesn't appeal like it once did when you and Winnie were kids. "; } ; studydoor2: fixeditem ldesc = "The door to Uncle Foggy's study is a great heavy slab of carven oak. " noun = 'door' adjective = 'study' 'oak' location = studyfloor sdesc = "study door" verDoOpen(a) = { study.pharoah; } ; studyfloor: chairitem location = study sdesc = "floor" noun = 'floor' 'rug' 'carpet' ldesc = "The shag carpeting makes you hungry for wriggling invertebrates. " verDoUnboard(a) = { "You hop into the air, but alas, gravity's cruel pull drags you down once more."; } doUnboard(a) = {self.verDoUnboard(a);} verDoBoard(a) = { if (Me.location=self) "You're already on the floor. "; } doBoard(a) = { "You hop down to the floor. "; Me.moveInto( self ); } south = { return(study.south); } west = { return(study.west); } up = { "You flap your wings edgily, glancing from desk to sill to shelves to bar, looking for something to hop up onto. "; } reachable = [ self self.contents orp aunt red executor sister foggy julia desk windowsill couch loveseat deskchair bar shelves] outOfPrep = "off of" statusPrep = "on" mount = "down" noexit = { "The obvious exit is the study door, to the west, but there's no chance of getting that open now. The southern window looks promising, though. "; } ; desk: chairitem sdesc = "desk" ldesc = "Uncle Foggy's desk is a great monolith of mahogany, with drawers of all sizes and shapes on virtually every face. Even though Uncle Foggy did most of his work in his lab, the desk's surface is still scarred from his constant tinkering. As you know, Uncle Foggy usually kept a carton of assorted parts beneath the desk for idle moments. Sitting on the center of the desk is a television set. At one corner, you see Uncle Foggy's Super-Bendy Balloon-Animal Balloon Dispenser (pat. pending). \bYour eye is inevitably drawn to the massive Buffalo-On-A-Spring (pat. pending) hanging heavily far up on on the wall overhead which, as you know, is activated by a hidden button on the desk. " noun = 'desk' location = study reachable = [ self orp aunt red executor sister foggy julia self.contents studyfloor deskchair] verDoLookunder(actor) = {} doLookunder(actor) = { "You don't see anything of interest besides Uncle Foggy's box of junk. "; } ischair = nil outOfPrep = "off of" statusPrep = "on" down = self.doUnboard( Me ) mount = { if (Me.location=studyfloor or Me.location=deskchair) "up"; else "down"; } ; drawers: fixeditem location = desk noun = 'drawer' 'drawers' sdesc = "drawers" ldesc = "Drawers of all sizes and shape fill Uncle Foggy's desk. " verDoLookin(a)={self.verDoOpen(a);} verDoOpen(a)={ if (!global.ischicken) "You feel that now is not the time to go rifling through Uncle Foggy's desk. "; else "Your new body hasn't got the power to open the heavy wooden drawers. "; } ; tv: fixeditem noun = 'tv' 'vcr' 'television' sdesc = "television" ldesc = { "A standard twenty-seven inch screen housed in molded black plastic with an integrated video player. "; switch(global.tvon) { case 0: "It's switched off at the moment. "; break; case 1: "The screen shows a closeup of Uncle Foggy, looking big as life and only half as dead. "; break; case 2: "The screen shows Julia Childs performing barbaric ritual desecrations to the corpses of murdered chickens. "; break; } } verDoTurnoff(a) = { if (!global.ischicken) { if (global.tvon = 0) "It's not on. "; else "That would be no way to respect Uncle Foggy's memory. "; } else "As much as you would love to end Ms. Childs' depredations, the television seems to be chicken-proof. "; } verDoTurnon(a) = { if (global.tvon = 0) "Dorkings seems to have things under control. "; else "It's already on. "; } doSynonym( 'Push' ) = 'Move' verDoPush(a) = { "The television towers over you like the monolith from 2001. My god... it's full of stars! "; } location = desk ; dispenser: fixeditem sdesc = "Super-Bendy Balloon-Animal Balloon Dispenser (pat. pending)" ldesc = { "Uncle Foggy often liked to make elaborate balloon animals for favored visitors, and the Super-Bendy Balloon-Animal Balloon Dispenser (pat. pending) is another of his inventions. It's in the shape of a small elephant statuette with raised trunk. Super-Bendy Balloon-Animal Balloons (pat. pending) are dispensed from the elephant's open mouth. Yank out one and another takes its place. "; if (balloon.location<>self) "Sadly, it has dispensed its last Super-Bendy Balloon-Animal Balloon (pat. pending). "; } doSynonym( 'Push' ) = 'Move' verDoPush(a) = { "You put your nose (such as it is) to the grindstone (such as it is) and try to shove the dispenser across the desk, but it's just too heavy for you. "; } adjective = 'balloon' 'elephant' 'super-bendy' 'super' 'bendy' 'balloon-animal' 'animal' noun = 'dispenser' 'elephant' 'statuette' location = desk verDoTake(a) = { if (!global.ischicken) "You're not in the mood to play with balloons just now, though you suspect that Uncle Foggy would've approved of the notion. "; else "The dispenser is too heavy for you to move in your current state. "; } ; balloon: item sdesc = "Super-Bendy Balloon-Animal Balloon (pat. pending)" ldesc = { "\^<>, a long, thin balloon of the variety used to make balloon animals, is another of Uncle Foggy's inventions. Uncle Foggy was endlessly fond of making balloon animals for guests, but equally frustrated at their short life-span and tendancy to burst. So he took vulcanization a step further with Uncle Foggy's Foggyized Super-Bendy Balloon-Animal Balloon Rubber (pat. pending)! "; if (global.b8) "\bCurrently, <> is stretched over the tube of the bellows. "; if (global.b4) "Currently, <> stretched over one end of <>"; if (global.b5 and !global.b6) "and jammed into the knot in the windowframe. "; else if (global.b5 and global.b6) "and holding open the window frame. "; if (global.b4 and !global.b5) ". "; } adjective = 'super' 'bendy' 'balloon' 'animal' noun = 'balloon' location = dispenser isListed = { if(self.location = dispenser) return( nil ); else return( true ); } verIoRemoveFrom(a)={self.verIoDetachFrom(a);} ioRemoveFrom(a,d)={self.ioDetachFrom(a,d);} verDoRemoveFrom(a,i)={self.verDoDetachFrom(a,i);} verIoDetachFrom(a)={ } ioDetachFrom(a,d)={ if (d=straw or d=knot) balloon.doTake(a); else d.verDoDetachFrom(a,self); } verDoDetachFrom(a,i)={ if((i<>bellows and i<>straw and i<>knot) or (i=bellows and !global.b8) or (i=straw and !global.b4) or (i=knot and !global.b5)) "\^<> isn't attached to <>. "; else if (i=straw or i=knot) "Winnie sees you trying to pull the <> from the <> and pecks you on the ankle as if to say, \"Don't undo that - we've got to get out of here!\""; } verDoAttachTo(a,i)={ if (self.location<>Me and i.location<>Me) { "You're not carrying <>"; if (i=straw) " or <> "; ". "; } else self.verIoAttachTo(a); } verIoAttachTo(a)={ if (global.b8 or global.b4) "\^<> is already attached to the <>. "; } ioAttachTo(a,d)={ if (d=bellows or d=knot or d=straw) { d.ioAttachTo(a,self); } else "You're unable to attach <> to <>. "; } verDoPutOn( a,i ) = { if (i=bellows or i=straw) self.verDoAttachTo(a,i); else pass verDoPutOn; } doPutOn(a,i) = { if (i=bellows or i=straw) self.verDoAttachTo(a,i); else pass verDoPutOn; } verIoPutIn( actor ) = {} ioPutIn( a,d ) = { if (d=straw or d=bellows) { outhide(true); self.verIoAttachTo(a); if (outhide(nil)) self.verIoAttachTo(a); else self.ioAttachTo(a,d); } else { outhide(true); d.verDoPutIn( a, self ); if (outhide(nil)) d.verDoPutIn( a, self ); else d.doPutIn( a, self ); } } doDrop(a) = { if (global.b4) { "\^<>, attached to one end of <>, slides to the floor of the study. "; balloon.moveInto( studyfloor ); straw.moveInto( studyfloor ); } else pass doDrop; } doSynonym( 'Take' ) = 'Unwear' 'Detach' doTake(a) = { if (!global.ischicken) pass doTake; else { if (length(Me.contents)>0) global.beakyou; else if (global.b5) { "You tug at <>, trying to pull it from beneath the window frame. Winnie, following you closely, flaps with agitation, as if to say, \"Don't be a bird brain! We've got to get out of here!\". "; } else if (global.b4) { "You snatch <> and attached <> up in your beak like a long, fat-headed worm. "; balloon.moveInto( Me ); self.moveInto( Me ); } else if (global.b8) { "You grab the <> and yank it off the tube of the bellows. "; balloon.moveInto( Me ); global.b8 := nil; } else { self.taken; self.moveInto( Me ); } } } taken = { if (self.location=dispenser) "You grab hold of the long, stringy <> with your beak and pull until it flaps free of the Super-Bendy Balloon-Animal Balloon Dispenser (pat. pending). You discover that it is the last one in the dispenser, something that leaves you with a queer sense of melancholy. "; else "You snatch <> up in your beak like a tasty worm. "; } verDoBreak(a)={ if (global.b6) "Winnie shakes her head furiously at you as if to say \"Don't even think about it, buster! \(I'm\) not going on tonight's menu!\" "; else "You can't pop it until it's inflated. "; } verDoInflate(a) = { if (global.b7) "It's already as inflated as it's going to get. "; else if ((global.b8) or (global.b3 and global.b4)) "You don't have the muscle power to squeeze the bellows. You'll have to find another way. "; else "You have no lips and you must blow. "; } ; deskchair: chairitem sdesc = "desk chair" ldesc = "It's Uncle Foggy's chair, a comfortable, broad bottomed seat with a carved beech frame. " adjective = 'desk' noun = 'chair' location = study reachable = [ self orp aunt red executor sister foggy julia self.contents studyfloor desk] down = self.doUnboard( Me ) mount = { if (Me.location=studyfloor) "up"; else "down"; } ; gag: fixeditem adjective = 'black' 'matte' 'pyramidal' 'ultimate' 'practical' 'super' 'funky' noun = 'pyramid' 'joke' 'invention' 'device' 'chickenizer' ldesc = "Uncle Foggy's Super Funky Chickenizer (pat. pending) is a matte black pyramid with a small switch at its apex. You dearly hope Uncle Foggy left his development notes, or a reversion device, in his lab across the road. " sdesc = "Super Funky Chickenizer (pat. pending)" verDoTake(a) = { "Whatever it's made of, it's too big and heavy for you to carry in your beak. "; } location = nil ; toggle: fixeditem location = gag noun = 'switch' 'toggle' sdesc = "switch" ldesc = "It works flip-flop! " doSynonym( 'Flip' ) = 'Turn' 'Push' 'Pull' 'Kick' 'Scratch' 'Peck' 'Press' verDoFlip(a) = { "The switch flips over with a hollow 'click' but nothing happens. For the first time in your life, you curse Uncle Foggy's sense of humor. You realize there's only one hope. You have to get outside the house, and across the road to Uncle Foggy's lab. There, you're sure to find some way to reverse the effects of this prank. "; } ; buffalo: chairitem sdesc = "Buffalo-On-A-Spring (pat. pending)" ldesc = { "The Buffalo-On-A-Spring (pat. pending) is an enormous, furry buffalo head with thick horns mounted as far apart as a broad man's shoulders. As you know, it rests on a tightly coiled spring, and launches forward at the touch of a button hidden on the desk. Uncle Foggy favored using the device on unsolicited salesmen and IRS auditors. He would seat them before the desk, wait until they were deeply engrossed in business, and then... \(SPROI-OI-OING\)! The huge head would lunge towards them at high velocity while Uncle Foggy screamed, \"It's still alive! Run! For the love of God, \(RUN\)!\" Then he'd cackle hysterically as they tripped over themselves in their rush for the door. Needless to say, victims of this prank rarely returned. "; if (global.b1) "\bMounted on the trophy's horns are <>. "; } adjective = 'buffalo' 'head' 'buffalo' 'on' 'a' 'trophy' noun = 'buffalo' 'head' 'spring' 'Buffalo-On-A-Spring' 'tropy' 'mount' location = study doSynonym( 'Board' ) = 'Climb' 'Jump' outOfPrep = "off of" statusPrep = "on" reachable = [ self orp aunt red executor sister foggy julia self.contents studyfloor shelves desk deskchair ] down = self.doUnboard( Me ) verIoAttachTo(a)={} ioAttachTo(a,d)={ if (d<>helper) "There's nothing on <> to which to attach <>. "; else { self.ioPutOn(a,d); } } verIoPutOn(a)={} ioPutOn(a,d)={ if (d<>helper) { "\^<> slides off the <>, landing on the study floor. "; d.moveInto( studyfloor ); } else "There's no good surface on the head itself, but you might be able to mount <> on the trophy's horns. "; } roomDrop( o ) = { "\^<> slides off the <> and falls to the study floor below. "; o.moveInto( studyfloor ); } ; horns: fixeditem sdesc = "buffalo's horns" ldesc = "The horns are as thick as a grown man's arms, and even sprout like raised arms from the buffalo's broad, massive head. " location = buffalo adjective = 'buffalo\'s' noun = 'horn' 'horns' verIoAttachTo(a)={} ioAttachTo(a,d)={self.ioPutOn(a,d);} verIoPutOn(a)={} ioPutOn(a,d)={ if (d<>helper) { "\^<> slides off the <>, landing on the study floor. "; d.moveInto( studyfloor ); } else { "With Winnie's help, you mount the <> on the horns of the <>. "; helper.moveInto( horns ); global.b1 := true; } } doSynonym( 'Board' ) = 'Climb' 'Jump' verDoBoard(a)={ "You're already as close to the ceiling as you care to be. "; } ; button: buttonitem sdesc = "hidden button" ldesc = { if (Me.location<>desk) "It's hidden out of sight, but you know it's there on the desk. "; else "It's effectively disguised as a knot in the wood of the desk. "; } adjective = 'hidden' noun = 'button' location = desk doSynonym( 'Push' ) = 'Peck' 'Kick' 'Press' verDoPush(a) = {} doPush(a) = { //"\b\("; say(global.btot); "\)\b"; switch(global.btot) { case 0: //No elements in place self.z1; ". "; self.z0; self.z4; self.z6; ". "; self.z3; ". "; self.z8; ". "; break; case 1: //Only helper in place self.z1; self.z2; self.z3; self.z9; self.z0; self.z10; self.z8; self.z11; break; case 2: //Bellows in place (+ and other condition), but not helper self.z1; ". "; self.z3; self.z12; self.z0; self.z5; self.z6; ". "; self.z8; ". "; break; case 3: //Helper + bellows, but no balloon or straw self.z1; self.z2; self.z0; self.z5; self.z6; " "; self.z13; self.z14; ". "; self.z8; self.z11; self.z15; break; case 4: //Helper + bellows connected to straw, no balloon self.z1; self.z2; self.z0; self.z5; self.z6; self.z13; self.z14; self.z16; if (helper.location = Me) { self.z23; straw.moveInto( studyfloor ); } else self.z17; self.z8; self.z11; self.z15; break; case 5: //Helper + bellows + straw + balloon self.z1; self.z2; self.z0; self.z5; self.z6; self.z13; self.z14; self.z16; self.z18; self.z19; self.z22; self.z8; self.z11; self.z15; balloon.moveInto( studyfloor ); global.b4 := nil; break; case 6: //Helper + bellows + straw + balloon in knot self.z1; self.z2; self.z0; self.z5; self.z6; self.z13; self.z14; self.z16; self.z18; self.z19; self.z20; self.z21; self.z8; self.z11; self.z15; global.b6 := true; global.b7 := true; sister.moveInto( windowsill ); break; case 7: //Helper + bellows + straw + full balloon in knot "Winnie sees you reaching for the button and raises a frantic squawk, as if to say \"C'mon, you dumb cluck! We don't have much time before the window closes again!\" In addition, the furious pounding at the door reminds you of your fate if Mrs. Faverolles catches you in your current state!"; break; case 8: //Helper + bellows + balloon self.z1; self.z2; self.z0; self.z5; self.z6; self.z13; self.z14; self.z18; self.z19; self.z22; self.z8; self.z11; self.z15; balloon.moveInto( studyfloor ); global.b8 := nil; break; default: "No numbers matched. "; break; } } z0 = { say(global.chickens[rand(length(global.chickens))]); } z1 = "The Buffalo-On-A-Spring (pat. pending) zooms off the wall with a resounding \(SPROI-OI-OING\)" z2 = ", the Hedge Helpers (pat. pending) bouncing crazily behind. " z3 = "The trophy jerks to a sudden stop about three feet off the ground, in front of the desk" z4 = ", standing in the center of the room, " z5 = ", standing near the bellows, " z6 = "leaps with bulging eyes from the path of the charging trophy" z7 = "looks up to see the huge trophy head bearing down and leaps out of its path" z8 = "A moment later, the head snaps back to the wall" z9 = ", while the Hedge Helpers (pat. pending) snap forward and down, reaching nearly to the floor. " z10 = ", standing on the spot, receives a powerful goosing from the Hedge Helpers (pat. pending) and leaps face first into a nearby piece of furniture. " z11 = ", the Hedge Helpers (pat. pending) whipping insanely behind. " z12 = ", and just above the bellows lying in the middle of the room. " z13 = " just in time to avoid the whipping Hedge Helpers (pat. pending), which latch onto the bellows and give it a good solid squeeze. " z14 = "The bellows \(BOOFS\) as the air is forced out of it" z15 = " The bellows slowly returns to its original position as air rushes back into it." z16 = " and through <>" z17 = ", which whips wildly back and forth for a moment before falling still again. " z18 = ", then into the attached <>, which" z19 = " fills with air" z20 = ", slowly raising the window a scant chicken's height as it swells. " z21 = "Winnie, seeing your intent, hops onto the windowsill and steps on the mouth of <> to prevent the air escaping it. " z22 = ", but then launches free and sputters across the study before falling to the ground. " z23 = ", which tears itself loose from your grip and whips wildly back and forth for a moment before falling still again. " ; windowsill: chairitem sdesc = "windowsill" adjective = 'window' noun = 'sill' ldesc = { if (!global.ischicken) "It's a narrow ledge beneath the window. "; else "It's a ledge beneath the window, easily broad enough for you to stand on in your current form. "; } location = study doSynonym( 'Board' ) = 'Climb' 'Jump' verIoPutOn(a) = {} ioPutOn(a,d) = { if (d=balloon or d=straw) { "Good thinking, but perhaps a more direct approach would help. "; } else "You don't need to put anything on the sill. "; } outOfPrep = "off of" statusPrep = "on" reachable = [ self orp aunt red executor sister foggy julia self.contents studyfloor ] down = self.doUnboard( Me ) south = { return(study.south); } ; window: fixeditem sdesc = "window pane" ldesc = { "A plain, white-framed, four-panel window that looks out on the front lawn. There's a small knot, about the diameter of your fingertip "; if (global.ischicken) " (the kind you used to have) "; " at the base of the frame where it meets the sill. "; if (global.b6) "\bThe inflated <> has raised it just about high enough for you to consider escaping, though you don't know how long that will last. "; else if (global.b5) "\bCrammed into the knot is a <> at the end of <>. "; } adjective = 'window' noun = 'window' 'glass' 'pane' 'panel' 'frame' location = windowsill verDoLookthru(a) = { "Through the bright sunshine streaming in, you see the parked vehicles in Uncle Foggy's front yard, and beyond them, the gate leading to the road. "; } verDoOpen(a) = { if (!global.ischicken) "You're afraid to disturb the solemn occasion with such a mundane act. "; else if (global.b7) "It's already open, held up by the inflated balloon. "; else self.twins; } twins = "It's far too heavy too open by chicken power alone, so you motion Winnie over, slam your chicken-twin power-rings together and squawk, \"Chicken-Twin Power \(ACTIVATE\)!\" \bOr not. \b(Hint: that's the puzzle, doofus.)" verDoBoard(a)={self.verDoGothru(a);} verDoUnboard(a)={self.verDoGothru(a);} verDoGothru(a) = { if (!global.ischicken) "Crawling through the window just doesn't appeal like it once did when you and Winnie were kids. "; else if (!global.b7) self.twins; } doGothru(a) = { study.escape; unnotify(global, #recipelist); fox.moveInto( outside ); Me.moveInto( outside ); sister.moveInto( outside ); outside.lookAround( true ); } ; knot: fixeditem, container sdesc = "knot" ldesc = { "It's a small knot just at the very bottom of the frame, about large enough to allow a pencil or a pinky finger between the frame and the sill. "; if (global.b6) "The inflated <> you inserted in the knot has raised the window just about high enough for you to consider escaping. "; else if (global.b5) "Crammed into the knot is a <> at the end of <>. "; } noun = 'knot' 'hole' isqcontainer = true location = windowsill verIoPutIn(a) = {self.verIoAttachTo(a);} ioPutIn(a,d) = {self.ioAttachTo(a,d);} verIoRemoveFrom(a)={self.verIoDetachFrom(a);} ioRemoveFrom(a,d)={self.ioDetachFrom(a,d);} verIoDetachFrom(a)={ } ioDetachFrom(a,d)={ if (d=balloon) balloon.doTake(a); else d.verDoDetachFrom(a,self); } verIoAttachTo(a)={ if (global.b5) "The knot already contains a <>. "; } ioAttachTo(a,d)={ if (d<>balloon and d<>straw) "You can't get <> into the knot. "; else if ((d=balloon or d=straw) and global.b4) { "You cram the balloon-covered end of <> into the knot, then, gripping it with your beak, shove <> as far into the knot as you can. "; global.b5 := true; balloon.moveInto( knot ); if (global.b3) straw.moveInto( studyfloor ); windowsill.reachable := windowsill.reachable + [straw]; } else if (d=balloon) { "You try to cram <> into the knot, but your current anatomical facilities lack any method (i.e. fingers) of pushing things into deep, narrow holes, being rather more suited to pulling things out of deep, narrow holes. "; } else if (d=straw) { "You slide one end of <> into the knot in the frame. Unfortunately, it's a loose fit, and <> slides out. "; } } ; fireplace: fixeditem sdesc = "fireplace" ldesc = { "You and Winnie used to spend many cold days bundled up by the charming old brick fireplace, with good books and hot chocolate, the latter preferably drunken through one of Uncle Foggy's Wacky Rainbow Straws (pat. pending). Standing to one side of the fireplace is an assortment of brass pokers"; if (!global.b2) " and an old bellows"; ". "; } noun = 'fireplace' location = studyfloor doSynonym( 'Board' ) = 'Climb' 'Enter' verDoBoard(a) = { if (!global.ischicken) "Though you and Winnie often tried to climb the sooty chimney, the idea no longer holds much interest for you. "; else "You try to hop from brick to brick up the chimney shaft, but find too few good toe holds, and flop back down to the study floor. "; } verDoPutIn(a,i) = { "You're not in the mood for pyromania today. "; } ; pokers: fixeditem sdesc = "pokers" ldesc = { "A variety of brass implements for tending fires stands upright by the fireplace. "; if (!global.b2) "Among them stands an old bellows. "; } noun = 'pokers' 'poker' location = studyfloor ; bellows: item sdesc = "bellows" ldesc = { "It's an ordinary bellows, "; if (!global.b2) "standing on end among the pokers by the fireplace"; else "lying in the middle of the room in front of Uncle Foggy's desk"; ". Two bits of tapered wood are joined by an accordion-like sleeve. Pulling the handle out fills it with air; squeezing them together expels the air. You and Winnie used to use enjoy using this particular bellows to inflate Uncle Foggy's Super-Bendy Balloon-Animal Balloons (pat. pending). "; if (global.b3) "\bAttached to the tube of the bellows is one of Uncle Foggy's Rainbow Wacky Straws (pat. pending). "; else if (global.b8) "\bAttached to the tube of the bellows is one of Uncle Foggy's Super-Bendy Balloon-Animal Balloons (pat. pending). "; } doSynonym( 'Squeeze' ) = 'Inflate' 'Deflate' verDoSqueeze(a)={ if (!global.ischicken) "Though you and Winnie used to have fun inflating balloons with it, now is not the time. "; else "As a chicken, you don't have the muscle (or the hands, for that matter) to squeeze the bellows. Oh, if only you had hands again! "; } noun = 'bellows' 'tube' 'handle' location = studyfloor isListed = { if(!global.b2) return( nil ); else return( true ); } doSynonym( 'Move' ) = 'Push' 'Take' 'Pull' 'Turn' verDoMove(a) = {} doMove(a) = { if (!global.ischicken) "Though blowing up Uncle Foggy's Super-Bendy Balloon-Animal Balloons (pat. pending) with the bellows used to provide you and Winnie hours of amusement, you just don't have the heart for it given the current circumstances. "; else { if (!global.b2) { "Realizing that you can't use the bellows in its current position, you try to topple it from its upright position by the fireplace. It budges, but just barely. Winnie, comprehending your efforts, lends a beak to assist. Working together, you manage to pull the bellows down to the ground and drag it to the center of the room. "; global.b2 := true; } else "Winnie gives you a light peck as if to say \"Don't be a little chicken shit. I'm not helping you move \(that\) again.\" "; } } verIoRemoveFrom(a)={self.verIoDetachFrom(a);} ioRemoveFrom(a,d)={self.ioDetachFrom(a,d);} verIoDetachFrom(a)={ } ioDetachFrom(a,d)={ if (d=balloon) balloon.doTake(a); else d.verDoDetachFrom(a,self); } verDoAttachTo(a,i)={self.verIoAttachTo(a);} verIoAttachTo(a)={ if (!global.b2) "The bellows is standing vertically on its handles, putting the tube slightly out of easy reach. "; else if (global.b3 or global.b8) "The <> is already attached to the bellows. "; } ioAttachTo(a,d)={ if (d=straw) { "You hold the straw firmly in beak and cram it as far into the tube of the bellows as it will go. The straw fits snugly inside the tube, forming a solid connection. "; global.b3 := true; if (global.b5) straw.moveInto( studyfloor ); } else if (d=balloon) { "You slide the mouth of <> over the tube of the bellows. "; balloon.moveInto(bellows); global.b8 := true; } else "You can't attach <> to the bellows. "; } verIoPutIn( actor ) = {} ioPutIn( a,d ) = { if (d=straw) { outhide(true); self.verIoAttachTo(a); if (outhide(nil)) self.verIoAttachTo(a); else self.ioAttachTo(a,d); } else { outhide(true); d.verDoPutIn( a, self ); if (outhide(nil)) d.verDoPutIn( a, self ); else d.doPutIn( a, self ); } } verIoPutOn( actor ) = {} ioPutOn( a,d ) = { if (d=balloon) { outhide(true); self.verIoAttachTo(a); if (outhide(nil)) self.verIoAttachTo(a); else self.ioAttachTo(a,d); } else { outhide(true); d.verDoPutOn( a, self ); if (outhide(nil)) d.verDoPutOn( a, self ); else d.doPutOn( a, self ); } } ; helper: item sdesc = "Hedge Helpers (pat. pending)" adesc = self.thedesc ldesc = { "The Hedge Helpers (pat. pending) extend a gardener's reach while trimming tall hedges. They clamp on to the shoulders at one end, and end in a pair of articulated rubber hands at the other. The hands operate a second pair of shears, mimicking the operator's own hands, doubling both his reach and his efficiency. \bThe Hedge Helpers (pat. pending) are another of Uncle Foggy's inventions. Being the recluse he was, he liked his hedges TALL. "; if (global.b1) "Currently, they're dangling from the horns of the Buffalo-On-A-Spring (pat. pending) on the wall above the desk. "; } adjective = 'hedge' noun = 'helper' 'helpers' location = box verDoExtend(a)={ "They were meant to be worn on human shoulders. It's unlikely that you could extend them in your current form. "; } verDoWear(a)={"\^<> weren't designed to mount on small fowl. ";} verDoPutOn(a,i)={ if (isclass(i,Actor)) self.verDoWear(a); } verDoAttachTo(a,i) = { if (i=buffalo) "You might have better luck attaching it to the trophy's horns. "; else if (i<>horns) "There's no good way to mount it to <>. "; else if (isclass(i,Actor)) self.verDoWear(a); } doTake(a) = { if (length(Me.contents)>0) "You can only carry one thing at a time in your beak. "; else if (global.b1) "Winnie sees you headed on a course to pull down the Hedge Helpers (pat. pending) and starts up an agitated flapping, as if to say \"Don't even think about it, egg head. We've got to get out of here!\""; else { "You snatch an end of the Hedge Helpers (pat. pending) up in your beak. Though quite bulky, they're light enough that you can drag them around single... er... beakedly. "; helper.moveInto( Me ); } } ; box: fixeditem, openable sdesc = "carton" ldesc = { "The greasy, worn carton was Uncle Foggy's hobby box - full of spare bits and pieces and small works in progress. "; if(self.isopen) { if (length(self.contents)>1) { "Uncle Foggy's box contains "; listcont( self ); ". "; } } else "The grubby flaps are closed, hiding whatever stray parts Uncle Foggy left behind. "; } noun = 'carton' 'box' location = studyfloor isopen = nil ; parts: fixeditem location = box sdesc = "miscellaneous parts and pieces" adesc = self.thedesc adjective = 'crack' 'monkey' noun = 'parts' 'pieces' 'crack' 'crackpipe' 'pipe' 'butler' 'corn' ldesc = { "The greasy box contains an amazing jumble of parts and pieces of things Uncle Foggy was working on. "; if (helper.location = box) "The only thing among them that looks to be of any immediate use is the set of Hedge Helpers (pat. pending). "; } verDoTake(a) = {"You don't see anything of any use in there. ";} ; bar: chairitem sdesc = "bar" ldesc = { "Though not a habitual drinker, Uncle Foggy always kept a stocked bar. As kids, you and Winnie often had fun sneaking olives and maraschino cherries. However, it looks like all of the condiments, along with the booze and glasses, have been locked away. "; if (straw.location = bar) "\bLying on the surface of the bar is one of Uncle Foggy's Rainbow Wacky Straws (pat. pending). "; } noun = 'bar' location = study reachable = [ self orp aunt red executor sister foggy julia self.contents studyfloor] ischair = nil outOfPrep = "off of" statusPrep = "on" down = self.doUnboard( Me ) verDoOpen(a)={ "It's been locked up, presumably by Mr. Dorkings to prevent the help from helping themselves. "; } ; straw: item sdesc = "Rainbow Wacky Straw (pat. pending)" ldesc = { "Another of Uncle Foggy's inventions, <> was developed with you and Winnie in mind. It's a ludicrously long flexible straw that randomly changes the color of liquids that pass through it. You and Winnie used to enjoy drinking Shirley Temples from across the room, watching as <> turned the drink from cherry cola red to lime rickey green to tang orange. "; if (global.b3) "\bOne end of <> is inserted into the bellows"; if (global.b3 and global.b4) ", while the other "; if (global.b3 and !global.b4) ". "; if (global.b4 and !global.b3) "\bOne end of <> "; if (global.b4) "is inserted into <>"; if (global.b5) " and crammed into the knot in the window"; if (global.b4 or global.b5) ". "; } adjective = 'rainbow' 'wacky' noun = 'straw' location = bar isListed = { if(self.location = bar) return( nil ); else return( true ); } verIoRemoveFrom(a)={self.verIoDetachFrom(a);} ioRemoveFrom(a,d)={self.ioDetachFrom(a,d);} verDoRemoveFrom(a,i)={self.verDoDetachFrom(a,i);} verIoDetachFrom(a)={ } ioDetachFrom(a,d)={ if (d=balloon) balloon.doTake(a); else d.verDoDetachFrom(a,self); } verDoDetachFrom(a,i)={ if((i<>bellows and i<>balloon and i<>knot) or (i=bellows and !global.b3) or (i=balloon and !global.b4) or (i=knot and !global.b5)) "\^<> isn't attached to <>. "; else if (i=bellows or i=straw or i=knot) "Winnie sees you trying to pull the <> from the <> and pecks you on the ankle as if to say, \"Don't undo that - we've got to get out of here!\""; } verDoAttachTo(a,i)={ if (self.location<>Me and i.location<>Me) { "You're not carrying <>"; if (i=balloon) " or <>"; ". "; } else self.verIoAttachTo(a); } verIoAttachTo(a)={ if (global.b3 and global.b5) "\^<> is already attached to the bellows at one end and <> at the other. "; } ioAttachTo(a,d)={ if (d= bellows or d=knot) d.ioAttachTo(a,self); else if (d=balloon) { "You slide the mouth of <> over <>. "; global.b4 := true; if (straw.location = Me or balloon.location = Me) { balloon.moveInto( Me ); straw.moveInto( Me ); } } else "You're unable to attach <> to <>. "; } verIoPutOn( actor ) = {} ioPutOn( a,d ) = { if (d=balloon) { outhide(true); self.verIoAttachTo(a); if (outhide(nil)) self.verIoAttachTo(a); else self.ioAttachTo(a,d); } else { outhide(true); d.verDoPutOn( a, self ); if (outhide(nil)) d.verDoPutOn( a, self ); else d.doPutOn( a, self ); } } verDoPutIn( a,i ) = { if (i=bellows or i=balloon) self.verDoAttachTo(a,i); else pass verDoPutIn; } doPutIn(a,i) = { if (i=bellows or i=balloon) self.verDoAttachTo(a,i); else pass verDoPutIn; } doDrop(a)={ "\^<> slides "; if (Me.location.location and Me.location<>studyfloor) "off <> "; "to the study floor. "; straw.moveInto(studyfloor); if (global.b4 and !global.b5) balloon.moveInto(studyfloor); } doSynonym( 'Take' ) = 'Unwear' 'Detach' doTake(a) = { if (!global.ischicken) pass doTake; else { if (length(Me.contents)>0) global.beakyou; else if (!global.b4) { self.taken; straw.moveInto( Me ); } else if (global.b4 and !global.b5) { "You snatch <> and attached <> up in your beak like a long, fat-headed worm. "; self.moveInto( Me ); balloon.moveInto( Me ); } else if (global.b3 and global.b5) { "You tug at <>, attempting to dislodge it from the bellows or the knot. Winnie, following you closely, flaps with agitation, as if to say, \"Don't be a bird brain! We've got to get out of here!\". "; } else { self.taken; self.moveInto( Me ); } } } taken = "You snatch <> up in your beak like a long wriggly worm. " ; shelves: chairitem sdesc = "shelves" ldesc = "Tall wooden shelves tower over Uncle Foggy's desk on either side, drawing attention to the Buffalo-On-A-Spring (pat. pending), mounted prominently on the wall between them. The shelves are crammed with books of all ages and subjects, though there's probably little on them that hasn't been read by you or Winnie. " adjective = 'book' noun = 'shelf' 'shelves' 'bookshelves' 'bookshelf' location = study doSynonym( 'Board' ) = 'Climb' 'Jump' outOfPrep = "off of" statusPrep = "on" reachable = [ self orp aunt red executor sister foggy julia self.contents studyfloor buffalo desk deskchair] mount = { if (Me.location=studyfloor) "up"; else "down"; } down = self.doUnboard( Me ) verDoBoard(a) = {} doBoard(a) = { if (!global.ischicken) "Maybe when you were kids, but you and Winnie are far too big for that now. "; else { if (helper.location = Me) { "With one of the light-weight Hedge Helper (pat. pending) hands clutched in your beak, you attempt to climb the tall bookshelf, without much progress. Winnie, seeing your plan, beaks down on the other hand and mounts alongside you. Between you both, you're able, slowly, laboriously, to climb the bookshelves with the Hedge Helpers (pat. pending). At last you reach the top, even with the Buffalo-On-A-Spring (pat. pending). "; Me.moveInto(shelves); } else "You slowly, laboriously climb the bookshelf, one shelf at a time, claw over beak over claw. Eventually you reach the top. You look around and find yourself at a level with the Buffalo-On-A-Spring (pat. pending). "; Me.moveInto(shelves); } } ; books: fixeditem sdesc = "books" ldesc = "The shelves are packed with numerous books in a wide variety of subjects. Between you and Winnie, you've probably read most of them. " noun = 'book' 'books' doSynonym( 'Take' ) = 'Read' 'Search' verDoTake(a) = { if (!global.ischicken) "Now's not the time to be browsing Uncle Foggy's library. "; else "Oh no! You seem to have lost your ability to read! All the writing on the books' spines looks like chicken scratch! "; } location = shelves ; loveseat: chairitem location = study adjective = 'love' noun = 'loveseat' 'seat' sdesc = "love seat" reachable = [ self orp aunt red executor sister foggy julia self.contents studyfloor] ldesc = "The love seat is upholstered in plush, overstuffed, Corinthian leather. Quien es mas macho? " noexit = "It would be disrespectful to go wandering before the reading is over. " verDoUnboard(a) = { if (!global.ischicken) self.noexit; } roomAction( actor, v, d, prep, io ) = { if ((v=standVerb or v=outVerb or v=standVerb) and !global.ischicken) { self.noexit; exit; } else pass roomAction; } down = { if (global.ischicken) self.doUnboard( Me ); else self.noexit; } ; couch: chairitem sdesc = "couch" ldesc = "The sofa is a comfortably worn leather affair, part of a matched set with the loveseat. " noun = 'couch' 'sofa' location = study outOfPrep = "off of" statusPrep = "on" reachable = [ self orp aunt red executor sister foggy julia self.contents studyfloor] down = self.doUnboard( Me ) ; vocabulary: thing noun = 'chicken' 'chickens' location = nil ; /* -actors:thing; */ executor: Actor isListed = nil adjective = 'Mr.' noun = 'dorkings' 'executor' sdesc = "Mr. Dorkings" ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; } hdesc = "Dorkings was Uncle Foggy's solicitor. A dour man in black who rarely smiles, you've never quite trusted him. " cdesc = "Dorkings was a dour looking man in black. Now he's a dour looking black chicken. And those beady eyes don't make him look any more trustworthy. " havow = "Mr. Dorkings looks at you with disapproving eyes. You know he's never liked you and Winnie. " location = foyer verDoFollow( a ) = { if (!global.ischicken and Me.location=outside) ""; else pass doFollow; } actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; } ; foggy: fixeditem isListed = nil adjective = 'uncle' noun = 'fogarth' 'foggy' 'Barnevelder' sdesc = "Uncle Foggy" ldesc = "The closeup image of Uncle Foggy's face on the television floats just about where it would be if he were still sitting at his desk, creating an eerie warping of reality. " //cdesc = self.hdesc location = nil disavow = "Your grief must be getting to you. Get a grip. Uncle Foggy is just an image on the television. " ; red: Actor isListed = nil adjective = 'cousin' noun = 'Reginald' 'Red' 'Reggie' 'Barnevelder' sdesc = "Red" ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; } hdesc = "Your cousin Reginald 'Red' Barnevelder is a scrawny red-headed jerk. Ever since you were children, he's always lorded it over you and Winnie. " cdesc = "Cousin Red was a scrawny, red-headed human. Now he's a scrawny, thin-necked rooster with a floppy red comb. " havow = "\"HAH hah! We're going to get everything, and you're going to get nothing! So don't try sucking up to me, 'cause it won't work!\"" location = outside actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; } ; orp: Actor isListed = nil adjective = 'uncle' 'Mr.' noun = 'Orpington' 'Barnevelder' sdesc = "Uncle Orpington" ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; } hdesc = "Your Uncle Orpington is a big, blustery man prone to sudden outbursts and disapproving tirades. The only time you can recall ever seeing him happy was while reminiscing about some of Uncle Foggy's failed experiments. " cdesc = "Uncle Orpington makes for a big, bullish rooster, the cock of the walk. " havow = "Uncle Orpington snorts in apparent disgust. \"You gold-digging little brats. You'll get nothing.\" " location = outside actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; } ; aunt: Actor isListed = nil adjective = 'aunt' 'Mrs.' noun = 'Lamona' 'Barnevelder' sdesc = "Aunt Lamona" ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; } hdesc = "Your Aunt Lamona wears a high collar and a pinched expression over a plain woolen dress. She's always held your side of the family at a distance with her snobbishly aristocratic values. " cdesc = "Aunt Lamona makes for a stringy looking hen. You're willing to bet she's all gristle. " havow = "Aunt Lamona sniffs at you and looks away haughtily. She's never had any use for your side of the family, and Uncle Foggy's death hasn't changed that. " location = outside actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; } ; barnevelders: Actor, floatingItem isplural = true noun = 'barnevelders' sdesc = "the Barnevelders" ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; } hdesc = "The Rhode Island Barnevelders are a pompous, arrogant looking group. " cdesc = "The Rhode Island Barnevelders make for a panicky looking group of chickens. " locationOK = true location = {return(orp.location);} havow = "\^<> look at you with a cumulative sneer that suggests they have nothing to say to you. " cavow = "\^<> have even less to say to you now than they did before. " actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; } ; sister: Actor isListed = nil adjective = 'twin' 'sister' noun = 'sister' 'Winnie' 'Wyandotte' sdesc = "Winnie" ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; } hdesc = "Your sister Wyandotte 'Winnie' Langshan has been your steady companion since birth. The two of you have never been separated, and share an almost psychic bond. " cdesc = "Though outwardly Winnie looks like a coquettish young hen, you can still sense the calm intelligence and wry humor beneath that feathered skin. " location = outside actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; } hignore = "<> spares you a sympathetic glance, but she's lost in her own thoughts right now. " cignore = "You let out an unintelligible squawk, failing to communicate your order. " havow = "\^<> glances at you with a sympathetic smile, but fails to say anything. She's lost in her own memories of Uncle Foggy, as you know all too well. " cavow = "\^<> is unable to speak, but you nonetheless sense the warm intelligence behind those beady eyes. " ; julia: fixeditem isListed = nil adjective = 'Julia' noun = 'Childs' 'Julia' sdesc = "Julia Childs" ldesc = "Julia Childs chirps cheerfully as she performs unspeakable mutilations to deceased fowl. " //cdesc = self.hdesc location = nil disavow = "Get real. Julia Childs is just an image on the television. " ; cook: Actor isListed = nil adjective = 'Mrs.' noun = 'Faverolles' 'cook' sdesc = "Mrs. Faverolles" ldesc = "Mrs. Faverolles is a short, squat, troll-like woman stuffed into a tightly fitted white chef's uniform. Mrs. Faverolles is notorious for her mercurial temper, which often leads to screaming paroxysms of incomprehensible French. " cdesc = self.hdesc location = study actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; } ; saucepan: fixeditem location = cook adjective = 'sauce' noun = 'sauce' 'pan' 'saucepan' sdesc = "sauce pan" ldesc = "It's full of some rich, burgundy colored sauce. " ; spoon: fixeditem location = cook noun = 'spoon' sdesc = "spoon" ldesc = "A wooden spoon, apparently used for stirring sauce. " ; /* -objects:thing; */ replace scoreStatus: function( ) { //setscore( cvtstr(global.score) + ' out of 14' ); setscore (''); } replace terminate: function { "Thank you for playing the demo version of \(Foggywood Hijinx\), a TextFeather release. On-line registration for TextFeather products will be available at http://www.textfeather.com on or before June 30, 1998. Thanks for your patience!"; } class intangible: fixeditem errmsg = "You can't do that with <>. " doverbs = [ inspectVerb ] dobjGen(a, v, i, p) = { if (find(self.doverbs,v) = nil) { self.errmsg; exit; } } iobjGen(a, v, d, p) = { self.dobjGen(a, v, d, p); } ; modify Me ldesc = { if (!global.ischicken) "You look about the same as always. "; else "You make a tasty looking chicken. "; } ; modify thing verDoSmell(a) = "You smell nothing unusual. " verDoListen(a) = "You hear nothing unusual. " verDoPeck(a) = { if (!global.ischicken) "Uncle Foggy's death must be getting to you worse than you realized. "; else "You dart forward and give <> a frustrated little peck. "; } verDoKick(a) = { if (!global.ischicken) "Uncle Foggy's death must be getting to you worse than you realized. "; else "You dart forward and give <> a frustrated little kick. "; } verDoSteal(a) = { if (!global.ischicken) "Please try to control yourself until AFTER the reading of the will. "; else "You don't make a very good cat, er, chicken burglar. "; } ; modify Actor thedesc = self.sdesc adesc = self.sdesc ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; } hdesc = "A human being." cdesc = "A chicken." verDoTalk( a ) = {self.disavow;} disavow = { if (!global.ischicken) self.havow; else self.cavow; } havow = "Apparently, \^<> has nothing to say to you. " cavow = { "\^<> the chicken has even less to say to you than <> the human being. "; } hignore = "<> sneers at you unpleasantly. " cignore = "You let out an unintelligible squawk, failing to communicate your order. " verIoSayTo( actor ) = {} ioSayTo( actor, v ) = { self.disavow; } verDoAttack(a) = { "Tempting, but not helpful. "; } verDoKick(a) = { self.verDoAttack(a); } verDoPeck(a) = { self.verDoAttack(a); } verDoEat(a) = { if (!global.ischicken) "Uncle Foggy didn't raise you to be a cannibal. "; else "Mmm, tastes just like chicken. "; } ; modify room hverbs = [ askVerb sayVerb tellVerb yellVerb helloVerb ] cverbs = [ peckVerb squawkVerb flapVerb ] roomAction( actor, v, d, prep, io ) = { if (global.ischicken and find(self.hverbs,v)<>nil) { "You squawk something unintelligible. It's no wonder Winnie always tells you to shut your beak!"; exit; } else if (!global.ischicken and find(self.cverbs,v)<>nil) { "Don't be a dumb cluck. What do you think you are, a chicken? "; exit; } else { pass roomAction; } } ; towardPrep: Prep preposition = 'toward' 'towards' sdesc = "toward" ; modify basicStrObj verDoSayTo( actor, io ) = {} verDoSay( actor ) = {} doSay( actor ) = { "You say \"";say( self.value ); "\". "; } ; /* -verbs:thing; */ xyzzyverb: sysverb verb = 'xyzzy' sdesc = "xyzzy" action(actor) = { if (global.ischicken) "\bWith a mighty 'psquaAWK', you squeeze out an egg! Sadly it lands on the hard cold ground, where it meets an untimely demise. "; else "A hollow voice says, \"Hey, didn't I see you on the MUD last night?\""; abort; } ; aboutVerb: sysverb verb = 'about' sdesc = "about" action(a) = { "TextFeather is pleased to present \(Foggywood Hijinx\) a game hen, by Ivan Cockrum. \b About the author: \b Ivan \"Henny\" Cockrum grew up on a chicken ranch in northern Montana. As a young boy, Ivan spent so much time around poultry that for a long time he thought he \(was\) a chicken. That is, until the Great Thanksgiving Day Beheading of '57, which provided a dramatic lesson in applied Darwinism to innocent young Ivan. Now, Ivan is a chicken rancher himself and a fanatical proponent of game hens, which is why he proudly presents this game of \(Foggywood Hijinx\). \b Please direct comments or questions to ivan@cockrumville.com. \b \(Foggywood Hijinx\) was beta tested and catered by Chad Hernandez, Christopher Huang, Christopher Klimas, and Dan Shiovitz. \b About TextFeather: \b TextFeather, Inc. is a partnership of chicken ranchers formed for the purpose of providing quality works of interactive game hen to a worldwide community of players, hobbyists, and chicken fetishists. Help support our efforts to keep interactive game hens alive! "; abort; } doAction = 'About' ; /*hintVerb: deepverb verb = 'hint' 'help' 'hints' sdesc = "hint" action(a) = { "Hints are available with the full registered version of \(Foggywood Hijinx\). Type REGISTER for additional information. "; } ; */ regsterVerb: deepverb verb = 'register' sdesc = "register" action(a) = { "On-line registration for TextFeather products will be available at http://www.textfeather.com on or before June 30, 1998. Thanks for your patience! "; } ; smellVerb: deepverb verb = 'smell' 'sniff' sdesc = "smell" action(actor) = { if (global.ischicken) "Your incredible chicken sense of smell detects nothing unusual. "; else "You smell nothing out of the ordinary."; } doAction = 'Smell' ; listenVerb: deepverb verb = 'listen' sdesc = "listen" action(actor) = { if (global.ischicken) "Your super-keen chicken hearing detects nothing unusual. "; else "You hear nothing out of the ordinary."; } doAction = 'Listen' ; knockVerb: deepverb verb = 'knock' sdesc = "knock" doAction = 'Knock' ; squawkVerb: deepverb verb = 'squawk' 'peep' 'cheep' 'chirp' 'crow' sdesc = "squawk" action(actor) = { "You rear back, flap your wings, and let loose with a loud \(PSQUAWK\)! "; } ; flapVerb: deepverb verb = 'flap' 'fly' sdesc = "flap" action(actor) = { "You flap your wings furiously. The feathers fly, but sadly, you don't. "; } ; goBehindVerb: deepverb verb = 'go behind' sdesc = "go behind" doAction = 'Gobehind' ; goThruVerb: deepverb verb = 'go through' 'go thru' sdesc = "go through" doAction = 'Gothru' ; goUnderVerb: deepverb verb = 'go under' 'go beneath' sdesc = "go under" doAction = 'Gounder' ; kickVerb: deepverb verb = 'kick' 'claw' 'scratch' sdesc = "kick" doAction = 'Kick' ; peckVerb: deepverb verb = 'peck' sdesc = "peck" doAction = 'Peck' ; driveVerb: deepverb verb = 'drive' sdesc = "drive" doAction = 'Drive' ; stealVerb: deepverb verb = 'steal' sdesc = "steal" doAction = 'Steal' ; squeezeVerb: deepverb verb = 'squeeze' sdesc = "squeeze" doAction = 'Squeeze' ; inflateVerb: deepverb verb = 'inflate' 'blow up' sdesc = "inflate" doAction = 'Inflate' ; deflateVerb: deepverb verb = 'deflate' sdesc = "deflate" doAction = 'Deflate' ; pressVerb: deepverb verb = 'press' sdesc = "press" doAction = 'Press' ; extendVerb: deepverb verb = 'extend' sdesc = "extend" doAction = 'Extend' ; modify sayVerb ioAction( toPrep ) = 'SayTo' ; setupVerb: deepverb verb='setup' sdesc = "setup" action(a) = { global.turnsofar:=11; julia.moveInto(study); Me.moveInto(studyfloor); sister.moveInto(studyfloor); orp.moveInto(studyfloor); aunt.moveInto(studyfloor); red.moveInto(studyfloor); executor.moveInto(studyfloor); global.ischicken:=true; global.tvon:=2; addword(sister, &noun, 'chicken'); addword(sister, &noun, 'hen'); addword(aunt, &noun, 'chicken'); addword(aunt, &noun, 'hen'); addword(executor, &noun, 'chicken'); addword(executor, &noun, 'rooster'); addword(orp, &noun, 'chicken'); addword(orp, &noun, 'rooster'); addword(red, &noun, 'chicken'); addword(red, &noun, 'rooster'); addword(barnevelders, &noun, 'chickens'); addword(barnevelders, &noun, 'roosters'); addword(barnevelders, &noun, 'hens'); straw.moveInto( studyfloor ); balloon.moveInto( studyfloor ); global.b2 := true; helper.moveInto( studyfloor ); box.isopen := true; "Yeah, baby! "; } ; endgameVerb: deepverb verb='endgame' sdesc = "endgame" action(a) = { global.turnsofar:=11; julia.moveInto(study); Me.moveInto(outside); sister.moveInto(outside); orp.moveInto(studyfloor); aunt.moveInto(studyfloor); red.moveInto(studyfloor); executor.moveInto(studyfloor); global.ischicken:=true; addword(sister, &noun, 'chicken'); addword(sister, &noun, 'hen'); global.b7 := true; "Yeah, baby!"; } ; chickenVerb: sysverb verb = 'chicken' sdesc = "chicken" action(a) = { "Bart: Fat kids, skinny kids, kids who climb on rocks... \nBart: Smart kids, dumb kids... \nMilhouse: ...even kids with chicken pox... \nBart: ...love hot dogs, \(armor\) hot dogs! \nBart: They're the \(dogs\)... kids love to \(muuunch!\) \nLisa: Doesn't this family know any songs that AREN'T television commercals? \n(Pause.) \nSimpsons family (minus Lisa): I feel like chicken tonight, like chicken tonght, like chicken tonight! "; abort; } ; hypnotizeVerb: sysverb verb = 'hypnotize' sdesc = "hypnotize" action(a) = { "Bart: Remember that hypnotist we saw to help us resolve our family issues? \nHomer: How can I forget! Five years later, and I \(still\) think I'm a chicken. \nHomer: I'm a chicken, Marge! \nMarge: I know. "; abort; } ; /* -foggyhints: thing; */ helpVerb: sysverb verb = 'help' 'hint' 'hints' action(actor) = { self.helpme( actor ); abort; } listhints = { local i, tot, list; list := allhints.myhints; tot := length( list ); clearscreen(); for (i := 1 ; i <= tot ; ++i) { "\("; say( i ); ")\) "; list[i].sdesc; "\n"; } "\b"; "------------------------------\n"; "\b"; } helpme( actor ) = { local list, tot, cnt, i; list := allhints.myhints; tot := length( list ); self.listhints; while ( 1 ) { local resp, j; if(not j) { "\nEnter a number from 1 to "; say(tot); ", or (E)xit: >"; } else { "\nEnter a number from 1 to "; say(tot); ", or (E)xit: >"; } j := true; resp := lower(input()); if (resp = 'e' or resp = 'exit') { clearscreen(); Me.location.lookAround(true); abort; } resp := cvtnum( resp ); if (resp < 1 or resp > tot) continue; clearscreen(); "\("; list[resp].sdesc; "\)"; while( 1 ) { local num, cnt, subresp; num := length(list[resp].myhints); if (cnt = -1) { cnt := nil; break; } if (cnt = nil) cnt := 1; "\b"; say(cnt); "/"; say(num); ": "; say( list[resp].myhints[cnt] ); "\b"; while( 1 ) { if(not j) { if (cnt < num) "\nType (N)ext, or (E)xit: >"; else "\nNo more hints! Type (E)xit: >"; } else { if (cnt < num) "\nType (N)ext, or (E)xit: >"; else "\nNo more hints! Type (E)xit: >"; } j := true; subresp := lower(input()); if (cnt < num) { if (subresp = 'n' or subresp = 'next') { ++cnt; break; } } if (subresp = 'e' or subresp = 'exit') { self.listhints; cnt := -1; break; } } } } } ; class hintitem: thing ; class hintlist: thing ; allhints: hintlist sdesc = "Hints" myhints = [ hint1 hint2 hint3 hint4 hint5 hint6 hint7 hint8 hint9 hint10 hint11 hint12 hint13 hint14 ] ; hint1: hintitem sdesc="How do I reverse Uncle Foggy's practical joke?" hintsseen = 0 myhints = [ 'Have you tried using the Super Funky Chickenizer (pat. pending)?' 'Too bad it doesn\'t do anything.' 'Maybe you can find something in Uncle Foggy\'s lab, across the road.' ] ; hint2: hintitem sdesc="What do I do with the Super Funky Chickenizer (pat. pending)?" hintsseen = 0 myhints = [ 'Have you tried flipping the switch?' 'Doesn\'t do anything, does it?' 'Looks like you\'ll have to find some other way to reverse the process.' ] ; hint3: hintitem sdesc="What do I do with the Hedge Helpers (pat. pending)?" hintsseen = 0 myhints = [ 'Maybe cutting Uncle Foggy\'s hedges would help you deal with your grief.' 'No?' 'Then you might try attaching them to something.' 'Something about as broad as a man\'s shoulders.' 'Something like the buffalo\'s horns.' ] ; hint4: hintitem sdesc="What do I do with the Super-Bendy Balloon-Animal Balloon (pat. pending)?" hintsseen = 0 myhints = [ 'Make balloon animals, of course!' 'Or maybe you can attach it to something useful.' 'Like the bellows.' 'Or the straw.' 'Then use it to raise the window.' 'By putting it in the knot.' 'And inflating it.' ] ; hint5: hintitem sdesc="What do I do with the bellows?" hintsseen = 0 myhints = [ 'You could stoke up a nice hot fire.' 'Or maybe use it to inflate something.' 'Like the balloon.' 'Though attaching the balloon directly to the bellows doesn\'t do much good.' 'A go-between might help.' 'Like the straw.' ] ; hint6: hintitem sdesc="What do I do with the knot in the window?" hintsseen = 0 myhints = [ 'If you had a lever, maybe you could use it to raise the window.' 'You don\'t have a lever, but maybe you could put something else in the knot.' 'Like an uninflated balloon.' 'Attached to a straw.' ] ; hint7: hintitem sdesc="Where's that secret button?" hintsseen = 0 myhints = [ 'You\'ll know it when you see it.' 'Just get on the desk to press it.' ] ; hint8: hintitem sdesc="What do I do with the Buffalo-On-A-Spring (pat. pending)?" hintsseen = 0 myhints = [ 'Hmm, it stops at a point above the middle of the room.' 'Perhaps you could extend its reach.' 'By attaching something to it.' 'Or its horns.' 'Something like the Hedge Helpers.' ] ; hint9: hintitem sdesc="How do I get the window open?" hintsseen = 0 myhints = [ 'That\'s the big trick, isn\'t it?' 'You\'ll need to use a combination of objects found in the room.' 'You\'ll need the bellows.' 'And the Super-Bendy Balloon-Animal Balloon.' 'And the Rainbow Wacky Straw.' 'And the Hedge Helpers.' 'And the Buffalo-On-A-Spring.' 'And of course the knot in the window.' ] ; hint10: hintitem sdesc="How do I get across the road?" hintsseen = 0 myhints = [ 'That fox is fast.' 'But he can\'t stop a \(raging monster truck\).' ] ; hint11: hintitem sdesc="How do I start up the monster truck?" hintsseen = 0 myhints = [ 'Just like you would start up any car.' 'Turn the key.' 'Put it in gear.' 'Push the pedal and watch out!' ] ; hint12: hintitem sdesc="How can I shut up Julia Childs?" hintsseen = 0 myhints = [ 'Try turning off the television.' 'No?' 'Maybe you could call the tv station and ask them to change the program.' 'Oh yeah, no phone.' 'And you\'re a chicken, anyway.' 'Looks like you\'ll have to suffer through her program. Get over it.' ] ; hint13: hintitem sdesc="How do I get Santa's skeleton out of the chimney?" hintsseen = 0 myhints = [ 'Try using the Hedge Helpers (pat. pending).' 'Hedge Helpers (pat. pending) didn\'t help?' 'I\'m not surprised.' 'There is no skeleton in the chimney!' ] ; hint14: hintitem sdesc="How do I raise Uncle Foggy from the dead?" hintsseen = 0 myhints = [ 'Have you found Uncle Foggy\'s Zombie-O-Rama (pat. pending)?' 'You\'ll find it hidden beneath the hidden trap door.' 'You know, the one beneath the carpet.' 'Oh, waitaminute.' 'There is no trap door.' 'Sorry, wrong game!' ] ; /* hint?: hintitem sdesc = "" hintsseen = 0 myhints = [ ] ; */ Rfoggy.tTEXTR*chTEXTR*chac *t-replace userinit: function6Mreplace version: objectzreplace global: objectGG-outside:thing;GG outside: roomOOoutsidewindow: fixeditemRRhouse: fixeditemTT vane: fixeditemUUfrontdoor: fixeditemVVknocker: fixeditemXX coupe: vehicle[$[2limo: vehicle^b^ptruck: vehicleiikey: fixeditemll&stick: fixeditemnnpedal: fixeditemtthorn: fixeditemvPvbplayVerb: deepverbvv -lab:thingvv lab: roomxxbench: chairitemz'z7magag: fixeditem|'|:toggle2: fixeditem diningroom: room[ldebris: fixeditem(:diagram: fixeditemcars: fixeditemgate: fixeditemhedges: fixeditemfakelab: intangiblefox: intangible -foyer:thing; foyer: roomphotos: fixeditemwallpaper: fixeditemxstudydoor: fixeditemrooster: fixeditemO]-study: thing;bm study: roomstudydoor2: fixeditemsstudyfloor: chairitemdesk: chairitemJ\drawers: fixeditem tv: fixeditemCWdispenser: fixeditem/< balloon: itemɀɔdeskchair: chairitemgag: fixeditem8Jtoggle: fixeditem gybuffalo: chairitemhorns: fixeditem button: buttonitemwindowsill: chairitemwindow: fixeditemknot: fixeditem, container fireplace: fixeditemypokers: fixeditemr bellows: itemAM helper: item{box: fixeditem, openableK[parts: fixeditemhvbar: chairitem } straw: item00shelves: chairitem77books: fixeditem99loveseat: chairitem executor: ActorA Afoggy: fixeditemBB red: ActorEE orp: ActorHH aunt: ActorKK!barnevelders: Actor, floatingItemN\Ni sister: ActorRRjulia: fixeditemTT! cook: ActorUVsaucepan: fixeditemVVspoon: fixeditemW7WF-objects:thing;WKWl!replace scoreStatus: function( ) WWreplace terminate: functionXXclass intangible: fixeditemYY modify MeZ]Zi modify thing]]" modify Actoraa modify roomcctowardPrep: PrepcQccmodify basicStrObjcc -verbs:thing;cdxyzzyverb: sysverbeEeWaboutVerb: sysverbkkregsterVerb: deepverbklsmellVerb: deepverblm listenVerb: deepverbmnknockVerb: deepverbn?nSsquawkVerb: deepverbnoflapVerb: deepverboogoBehindVerb: deepverbopgoThruVerb: deepverbpjpgoUnderVerb: deepverbppkickVerb: deepverbq/qApeckVerb: deepverbqwqdriveVerb: deepverbqqstealVerb: deepverbrr$squeezeVerb: deepverbrcrxinflateVerb: deepverbrrdeflateVerb: deepverbss(pressVerb: deepverbsasuextendVerb: deepverbssmodify sayVerbsssetupVerb: deepverbwwendgameVerb: deepverbydyxchickenVerb: sysverb{{hypnotizeVerb: sysverbH Geneva@@ <'<'%33R*chHH(FG(HH(d'hMonaco  Helvetica ConfidentialHRr& RMPSRBBST* . zr{