|
|
| 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; |
| global.start.lookAround( true ); |
| global.start.isseen := true; |
| 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 |
| score = 0 |
| maxscore = 10 |
| verbose = true |
| lamplist = [] |
| mystatus = 0 |
| ischicken = nil |
| rapped = nil |
| tvon = 0 |
| beakyou = "You can only carry one thing at a time in your beak. " |
|
|
| b1 = nil |
| b2 = nil |
| b3 = nil |
| b4 = nil |
| b5 = nil |
| b6 = nil |
| b7 = nil |
| b8 = nil |
|
|
| 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 ); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| chickens = [ |
| 'Uncle Orpington' |
| 'Aunt Lamona' |
| 'Mr. Dorkings' |
| 'Cousin Red' |
| ] |
| recipelist = { |
| |
| 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. ' |
| ] |
| |
| |
| 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: |
| ; |
|
|
| |
| |
| |
|
|
| 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: 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: |
| 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: 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: 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 = { |
| "\^<<balloon.thedesc>>, 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, <<self.thedesc>> is stretched over the tube of the bellows. "; |
| if (global.b4) |
| "Currently, <<self.thedesc>> stretched over one end of <<straw.thedesc>>"; |
| 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)) |
| "\^<<self.thedesc>> isn't attached to <<i.thedesc>>. "; |
| else if (i=straw or i=knot) |
| "Winnie sees you trying to pull the <<straw.sdesc>> from the <<i.thedesc>> |
| 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 <<self.thedesc>>"; |
| if (i=straw) " or <<i.thedesc>> "; |
| ". "; |
| } |
| else self.verIoAttachTo(a); |
| } |
| verIoAttachTo(a)={ |
| if (global.b8 or global.b4) "\^<<balloon.thedesc>> is already attached to the |
| <<global.b8 ? "bellows" : "Rainbow Wacky Straw (pat. pending)" >>. "; |
| } |
| ioAttachTo(a,d)={ |
| if (d=bellows or d=knot or d=straw) { |
| d.ioAttachTo(a,self); |
| } |
| else |
| "You're unable to attach <<balloon.thedesc>> to <<d.thedesc>>. "; |
| } |
| 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) { |
| "\^<<balloon.thedesc>>, attached to one end of |
| <<straw.thedesc>>, 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 <<balloon.thedesc>>, |
| 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 <<balloon.thedesc>> and attached <<straw.sdesc>> up in your beak like a |
| long, fat-headed worm. "; |
| balloon.moveInto( Me ); |
| self.moveInto( Me ); |
| } |
| else if (global.b8) { |
| "You grab the <<balloon.thedesc>> 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 <<balloon.sdesc>> |
| 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 <<balloon.thedesc>> 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 <<helper.thedesc>>. "; |
| } |
| 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 <<self.thedesc>> to which to attach <<d.thedesc>>. "; |
| else { |
| self.ioPutOn(a,d); |
| } |
| } |
| verIoPutOn(a)={} |
| ioPutOn(a,d)={ |
| if (d<>helper) { |
| "\^<<d.thedesc>> slides off the <<self.thedesc>>, 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 |
| <<d.thedesc>> on the trophy's horns. "; |
| } |
| roomDrop( o ) = { |
| "\^<<o.thedesc>> slides off the <<self.thedesc>> 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) { |
| "\^<<d.thedesc>> slides off the <<self.thedesc>>, landing on the study floor. "; |
| d.moveInto( studyfloor ); |
| } |
| else { |
| "With Winnie's help, you mount the <<helper.thedesc>> on the horns of the <<buffalo.thedesc>>. "; |
| 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) = { |
| |
| switch(global.btot) { |
| case 0: |
| |
| self.z1; ". "; self.z0; self.z4; self.z6; ". "; self.z3; ". "; self.z8; ". "; |
| break; |
| case 1: |
| |
| self.z1; self.z2; self.z3; self.z9; self.z0; self.z10; self.z8; self.z11; |
| break; |
| case 2: |
| |
| self.z1; ". "; self.z3; self.z12; self.z0; self.z5; self.z6; ". "; |
| self.z8; ". "; |
| break; |
| case 3: |
| |
| self.z1; self.z2; self.z0; self.z5; self.z6; " "; self.z13; |
| self.z14; ". "; self.z8; self.z11; self.z15; |
| break; |
| case 4: |
| |
| 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: |
| |
| 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: |
| |
| 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: |
| |
| "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: |
| |
| 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 <<straw.thedesc>>" |
| z17 = ", which whips wildly back and forth for a moment before falling still again. " |
| z18 = ", then into the attached <<balloon.sdesc>>, 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 |
| <<balloon.thedesc>> 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 <<balloon.sdesc>> 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 <<balloon.sdesc>> at the end of <<straw.adesc>>. "; |
| } |
| 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 <<balloon.sdesc>> 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 <<balloon.sdesc>> at the end of <<straw.adesc>>. "; |
| } |
| 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 <<balloon.sdesc>>. "; |
| } |
| ioAttachTo(a,d)={ |
| if (d<>balloon and d<>straw) "You can't get <<d.thedesc>> into the knot. "; |
| else if ((d=balloon or d=straw) and global.b4) { |
| "You cram the balloon-covered end of <<straw.thedesc>> |
| into the knot, then, gripping it with your beak, shove <<balloon.thedesc>> |
| 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 <<balloon.thedesc>> 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 <<straw.thedesc>> into the knot in |
| the frame. Unfortunately, it's a loose fit, and <<straw.thedesc>> 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 <<global.b3 ? "Rainbow Wacky Straw (pat. pending)" : |
| "Super-Bendy Balloon-Animal Balloon (pat. pending)" >> |
| 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 <<balloon.thedesc>> over the tube of the bellows. "; |
| balloon.moveInto(bellows); |
| global.b8 := true; |
| } |
| else "You can't attach <<d.thedesc>> 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)={"\^<<self.thedesc>> 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 <<i.thedesc>>. "; |
| 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, <<straw.thedesc>> |
| 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 <<straw.thedesc>> |
| turned the drink from cherry cola red to lime rickey green to tang orange. "; |
| if (global.b3) "\bOne end of <<straw.thedesc>> 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 <<straw.thedesc>> "; |
| if (global.b4) "is inserted into <<balloon.thedesc>>"; |
| 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)) |
| "\^<<self.thedesc>> isn't attached to <<i.thedesc>>. "; |
| else if (i=bellows or i=straw or i=knot) |
| "Winnie sees you trying to pull the <<straw.sdesc>> from the <<i.thedesc>> |
| 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 <<self.thedesc>>"; |
| if (i=balloon) " or <<i.thedesc>>"; |
| ". "; |
| } |
| else self.verIoAttachTo(a); |
| } |
| verIoAttachTo(a)={ |
| if (global.b3 and global.b5) |
| "\^<<straw.thedesc>> is already attached to the bellows |
| at one end and <<balloon.thedesc>> 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 <<balloon.thedesc>> over |
| <<straw.thedesc>>. "; |
| global.b4 := true; |
| if (straw.location = Me or balloon.location = Me) { |
| balloon.moveInto( Me ); |
| straw.moveInto( Me ); |
| } |
| } |
| else "You're unable to attach <<straw.thedesc>> to <<d.thedesc>>. "; |
| } |
| 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)={ |
| "\^<<straw.thedesc>> slides "; |
| if (Me.location.location and Me.location<>studyfloor) |
| "off <<Me.location.thedesc>> "; |
| "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 <<straw.thedesc>> and attached |
| <<balloon.sdesc>> 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 <<balloon.thedesc>>, |
| 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 <<straw.thedesc>> 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 |
| ; |
|
|
| |
| |
| |
|
|
| 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. " |
| |
| 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 = "\^<<self.sdesc>> look at you with a cumulative sneer that suggests they |
| have nothing to say to you. " |
| cavow = "\^<<self.sdesc>> 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 = "<<self.sdesc>> 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 = "\^<<self.sdesc>> 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 = "\^<<self.sdesc>> 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. " |
| |
| 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. " |
| ; |
|
|
| |
| |
| |
|
|
| replace scoreStatus: function( ) { |
| |
| 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: |
| June 30, 1998. Thanks for your patience!"; |
| } |
|
|
| class intangible: fixeditem |
| errmsg = "You can't do that with <<self.thedesc>>. " |
| 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 <<self.thedesc>> 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 <<self.thedesc>> 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, \^<<self.sdesc>> has nothing to say to you. " |
| cavow = { "\^<<self.sdesc>> the chicken has even less to say to you than |
| <<self.sdesc>> the human being. "; } |
| hignore = "<<self.sdesc>> 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 ); "\". "; |
| } |
| ; |
|
|
| |
| |
| |
|
|
| 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' |
| ; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| regsterVerb: deepverb |
| verb = 'register' |
| sdesc = "register" |
| action(a) = { |
| "On-line registration for TextFeather products will be available |
| at http: |
| } |
| ; |
|
|
| 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; |
| } |
| ; |
|
|
| |
| |
| |
|
|
| 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!' |
| ] |
| ; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |