replace userinit: function
{
"\bPoor Uncle Foggy. He was the best guardian any kid could ever ask for.
After your parents died in that freak waterbed accident, Uncle Foggy practically
raised you and your twin sister Winnie. You grew up in his home full of wacky
inventions - practical jokes for all occasions. Uncle Foggy was a prankster, no
two ways about it. It's only been a couple of years since you and Winnie left for
college. Since then you've spoken far too infrequently. When you last spoke, Uncle
Foggy rambled on and on about some ultimate practical joke, but you had a class on
gallinaceous theology to get to.
\b
You and Winnie pull in to Foggywood Estate in your beaten-up
coupe. The white picket gate swings quietly
shut behind you as you kill the engine. Unfortunately your relatives, the Barnevelders
from Rhode Island, have also just arrived. Uncle Orpington and Aunt Lamona are just
climbing out of their gleaming black sedan, while your cousin 'Red' sits in his ridiculous
monster truck and leans on the horn, which blares an ear splitting rendition of
'La Cucharacha.'
\b
Not a very auspicious way to kick off the reading of Uncle Foggy's will, is it?
\b";
version.sdesc;
"\b";
Me.location := global.start; // move player to initial location
global.start.lookAround( true ); // show player where he is
global.start.isseen := true; // note that we've seen the room
notify(global, #events, 0);
}
replace version: object
sdesc = "\(Foggywood Hijinx\) Release 2\n
(Type \"about\" for more information)\n
Copyright (c) 1998 by TextFeather, Inc. All rights reserved.\n
Created for Adam Cadre's Chicken Comp and Lucian Smith's Mini-Comp.\n
Developed with TADS, the Text Adventure Development System.\n"
;
replace global: object
start = outside
turnsofar = 0 // no turns have transpired so far
score = 0 // no points have been accumulated yet
maxscore = 10 // maximum possible score
verbose = true // we are currently in VERBOSE mode
lamplist = [] // list of all known light providers in the game
mystatus = 0
ischicken = nil
rapped = nil
tvon = 0
beakyou = "You can only carry one thing at a time in your beak. "
b1 = nil //helpers are on buffalo
b2 = nil //bellows is in place
b3 = nil //straw is attached to bellows
b4 = nil //straw is attached to balloon
b5 = nil //balloon is in knot
b6 = nil //balloon is full
b7 = nil //everything in place
b8 = nil //balloon is attached to bellows
btot = {
if (global.b7) return( 7 );
else if (!b1 and !b2) return( 0 );
else if (b1 and !b2) return( 1 );
else if (!b1 and b2) return( 2 );
else if (b1 and b2 and b3 and b8) return( 11 );
else if (b1 and b2 and !b3 and !b7 and !b8) return( 3 );
else if (b1 and b2 and b3 and !b4) return( 4 );
else if (b1 and b2 and b3 and b4 and !b5) return( 5 );
else if (b1 and b2 and b3 and b4 and b5 and !b6) return( 6 );
else if (b1 and b2 and b3 and b4 and b5 and b6) return( 7 );
else if (b1 and b8 and !b6) return( 8 );
}
//0 = !b1 + !b2 nothing
//1 = b1 + !b2 helper in place
//2 = b2 + !b1 bellows in place (+any other condition), but not helper
//3 = b2 + b1 + !b3 + !b7 + !b8 bellows and helper in place, no balloon or straw
//4 = b1 + b2 + b3 + !b4 bellows connected to straw, no balloon
//5 = b1 + b2 + b3 + b4 + !b5 bellows to straw to balloon
//6 = b1 + b2 + b3 + b4 + b5 + !b6 bellows to straw to balloon in knot
//7 = b1 + b2 + b3 + b4 + b5 + b6 bellows to straw to full balloon in knot
//8 = b1 + b7 + !b6 helper in place + balloon on bellows
chickens = [
'Uncle Orpington'
'Aunt Lamona'
'Mr. Dorkings'
'Cousin Red'
]
recipelist = {
//if (rand(3) = 1)
say(self.recipemsg[rand( length(self.recipemsg) )]);
}
recipemsg = [
'\b"Once we\'re done with our coq au vin," says Julia Childs, "we\'ll move on to a
lovely chicken divan recipe." '
'\b"Thanks for tuning in," says Julia Childs. "I know you\'ll just LOVE our all day long
chicken recipe-athon!" '
'\bOn the television, Julia Childs mercilessly pounds the carcass of some poor
disemboweled fowl with a - gulp - meat tenderizer. '
'\b"You know," says Julia as she strips the flesh off some poor dead bird, "the thing
I like about these Purdue chickens is how nice and easily the skins slide off. I guess
it\'s true what they say. It really DOES take a tough man to make a tender
chicken." Julia\'s audience laughs politely. '
'\b"I\'ve never tasted human flesh," says Julia, "but I hear it tastes just like
Chicken! Doesn\'t THAT make you want to pat your tummies and say
yummy yummy, viewers?" '
'\bOn the television, Julia Childs is busy shoving her entire forearm up some poor
chicken\'s posterior. How humiliating! '
'\bThe terrible pounding resumes briefly as Mrs. Faverolles makes another attempt
at the door. '
'\bA gutteral French accent beyond the door can only be Mrs. Faverolles cursing
Dorkings for chasing her out of the study during her program. '
'\b"I once killed a chicken just to watch it die," says Julia Childs. '
'\bOn the television, Julia Childs is hacking the limbs off some unfortunate fowl with
a butcher\'s knife the size of Bayonne, New Jersey. '
'\bOn the television, Julia Childs coughs up a mouthful of feathers. "Oh, dear!" she
exlaims. "Excuse me!" '
'\bOn the television, Julia Childs cracks an egg into a bowl, whips it into a light batter,
and then drops eviscerated chicken parts into it. "Well," says Julia, "I guess that
answers the question of which came first!" '
'\bOn the television, Julia Childs invites an audience member up to assist her. The
volunteer hesitates at reaching into the chicken\'s cavity, prompting Julia to ask
"What\'re you... chicken?" Julia laughs hysterically at her own joke, accompanied
by a smattering of applause from the audience. '
'\bOn the television, an audience member asks Julia if she uses free range chickens.
"Free range!" she shouts cheerfully. "Gas range is more like it!" '
'\bOn the television, Julia Childs leans out into her audience and asks conspiratorially,
"Do you folks know why the chicken crossed the road?" After a moment she answers,
"Because it was hauled across in a butcher\'s cart, of course!" Her joke is met by
silence from the audience, prompting her to respond cheerily with "Well! THAT joke
sure laid an egg!" '
'\bOn the television, Julia Childs sneaks a sip of sherry from a bottle beneath the
counter. You hear the word \'cirrhosis\' shouted from among the audience, to which
Julia responds "Oh, pish tosh. There\'s nothing wrong with MY liver that a little
CHICKEN liver won\'t cure!" '
'\b"Later today," says Julia Childs, "we\'ll be demonstrating how to perform emergency
liver transplant surgery on your house pets using chicken liver!" '
'\b"Later on the program," says Julia Childs, "I\'ll show you how to feed a family of
four even if your man is bringing home chicken feed!" '
'\bOn the television, Julia Childs drops one of the hens she is preparing. "Oh, too bad,"
she says, "Looks like that little chicky flew the coop!" '
'\b"On next week\'s program," says Julia Childs, "I\'ll be showing you how to make
chicken-fried chicken!" '
'\bThe formerly dour Mr. Dorkings makes for a peculiar sight as he rebounds off your
uncle\'s desk, leaving a trail of black feathers. '
'\bAunt Lamona and Uncle Orpington - at least you \(think\) they\'re Aunt Lamona and
Uncle Orpington - slam into each other at full tilt and knock each other onto the floor. '
'\bRed - at least you \(think\) it\'s Red - clambers up onto the sofa and crows at the
top of his scrawny little lungs. '
'\bCousin Red mistakenly runs into Aunt Lamona - she raises a great squawk and
pecks Red viciously in return. '
'\bUncle Orpington pecks at the carpet as if looking for worms. '
'\bUncle Orpington pulls a long strand of fiber from the carpet. Cousin Red
jealously tries to snatch it away, and a tug-of-war ensues. '
]
/*'\bWinnie calmly follows you about the room, observing your actions with interest. '
'\bWinnie, following closely, cocks her head quizzically at your actions. '*/
events = {
switch(global.turnsofar) {
case 1:
"\bThe Barnevelders glare haughtily at you and Winnie as you all wait for
admittance to Uncle Foggy's house. Not a word passes between the two
factions. So far as you know, the Barnevelders have never even visited
Foggywood before. ";
break;
case 2:
"\bNone too soon, the front door is opened, revealing Mr. Dorkings, Uncle Foggy's
solicitor. A dour man in black who rarely smiles, you've never quite trusted
Dorkings.
\b\"Mm,\" is all Dorkings has to say in greeting. \"You've all arrived. Good.
We can begin right away. Please follow me.\"
";
executor.moveInto( outside );
break;
case 3:
"\bYou and your relatives dutifully troop into the house after Dorkings. \b";
foyer.lookAround( true );
"\b\"We will be adjourning in the study for the reading of... \" He breaks off in
mid-sentence and cocks his head towards the study. You listen carefully, and
hear what sounds like polite applause. Dorkings turns back to all of you and says,
\"Mm. Please wait here while I ensure that all is in readiness,\" before
disappearing into the study.
\bOdd, you think. Knowing Dorkings, he would have checked and double checked
everything long before your arrival.
";
Me.moveInto( foyer ); sister.moveInto( foyer ); executor.moveInto( study );
red.moveInto( foyer ); orp.moveInto( foyer ); aunt.moveInto( foyer );
break;
case 4:
"\bAfter a brief moment you hear rising voices. Well, one voice anyway.
Dorkings' tone never rises or falls, but the other voice sounds like...
\bMrs. Faverolles, the cook, storms out of the study, slamming the door
against the wall. You can see from her complexion that she's at full
broil. Ignoring your party, she whirls around and hurls a string of
incomprehensible French epithets towards the study, waving a sauce spattered
spoon in one hammy fist. Her other hand clenches a saucepan full of some rich
burgundy sauce.
";
cook.moveInto( foyer );
break;
case 5:
"\bMrs. Faverolles storms off toward the kitchen, still raging. Once the noise of
her passage has quieted, Dorkings gestures your party into the study.
\bYou and your relatives shuffle inside and take seats at opposite sides of the room.
You and Winnie fill out the love seat, while the Barnevelders perch like chicken
hawks on the matching sofa. \b";
study.lookAround( true );
"\bYou notice that an integrated television/video
player has been set up on Uncle Foggy's desk, about where Uncle Foggy would be
if he were presiding.
";
Me.moveInto( loveseat ); sister.moveInto( loveseat ); cook.moveInto( nil );
red.moveInto( couch ); orp.moveInto( couch ); aunt.moveInto( couch );
break;
case 6:
"\b
\"Just a moment more. Mm,\" says Dorkings, as he turns to the television.
Your mind wanders, and you find yourself focusing on the Buffalo-On-A-Spring
(pat. pending) mounted
on the wall behind Uncle Foggy's desk. It was one of Uncle Foggy's funniest
inventions, a terrific source of amusement. Well, for everyone but the unlucky
victims, anyway.
";
break;
case 7:
"\b\"Mm, here we are.\" Dorkings steps aside as the television springs to life.
And there on the screen, real as life but only half as dead, is Uncle Foggy.
\b\"Greetin's, family,\" begins your deceased uncle. \"Ah suppose, Ah say,
Ah suppose you're all wondering why Ah've gathered you here today.\" Uncle
Foggy pauses for an expectant moment, while the Barnevelders glare
dispassionately. Winnie rolls her eyes, though at Uncle Foggy or the
Barnevelders, you're not sure. \"Haw haw! It's a joke, son!
Ah made a funny! Get it? Ah'm too fast for you! Gotta keep up, son!\"
";
foggy.moveInto( study );
global.tvon := 1;
break;
case 8:
"\b
\"As you all know, Ah've made, Ah say, Ah've made a bunch of dough - that's
SAWbucks, boy - off my inventions. Now Ah've gotta figure out who gets it.\"
Uncle Foggy stares out of the screen for a moment before continuing. \"Well
Ah won't do it, y'hear! Never was any good at this family stuff, and Ah'm not
going to start playing favorites now. Instead, Ah'm leavin' it, Ah say, Ah'm
leavin' it up to you all!\" You and Winnie and the Barnevelders exchange
quizzical glances, but no one speaks.
";
break;
case 9:
"\bUncle Foggy rolls on. \"What Ah propose, Ah say what Ah PROPOSE is a
challenge. And the ones who best know me and my ways, well, they're gonna
come out ahead.\"
\bUncle Orpington leaps angrily to his feet and shouts, \"What new foolishness
is this!\" Aunt Lamona spears him with a withering glance, and he reluctantly
reseats himself.
\b\"Now Orpy, by now Ah expect you're gettin' pretty riled up,\" says Uncle
Foggy with frightening prescience. \"Well them's the breaks! The breaks, Ah
say! Maybe if you'd ever taken favor on my work, things'd be different now.\"
";
break;
case 10:
"\b\"Contest goes like, Ah say, contest goes like this! Ah've scattered ten of my
inventions around, Ah say, all 'round my estate. Dorkings here will give you all
a list. The one o' you who finds the most number of things on the list gets it, Ah
say gets it ALL! The house, the money, and most importantly... Dorkings? Ain't
you ready yet, suh?\"
\b\"Ah, mm. Yes.\" Dorkings retrieves a black shammy sack from the desk
and loosens the cord binding it shut. Reaching inside, he pulls out a matte black
pyramidal object with a small switch at its apex. You jerk instinctively as
Dorkings fumbles with the strange object. Everything slows as you watch it
tumble to the ground with inexplicable dread. It lands on the shag rug with a
faint but sickening 'click.'
\bSuddenly the world seems larger. You look to Winnie for help only to find...
a chicken! Staring back at you is a perfectly normal white crested hen! You look
around. Oh, no. Where once stood Mr. Dorkings and your relations, now you see
only chickens. A long moment of stunned silence follows, as the room's occupants
glance around nervously at each other.
\bThe silence is broken by Uncle Foggy's booming voice. \"You got it yet
Dorkings? Good. Now, what you got here is my latest invention. The ultimate,
Ah say, the ULTIMATE practical joke! Great at parties! It'll make a million,
if my name isn't Fogarth Barnevelder! And the one of you all to bring back the
most items on my list, gets it! And that's, Ah say, that's IT! Dorkings, you can
stop this consarned thing any time now. My, Ah say, my job here is done.\"
\bAs the implications of the situation sink in, there is a sudden tidal swell of
panic. Someone - Aunt Lamona? Cousin Red? - leaps from their perch and sets
up a dreadful squawking. Soon, the room is full of squawking, screaching birds
running in panicked circles, feathers flying everywhere.
";
gag.moveInto( studyfloor );
foggy.moveInto( nil );
global.ischicken := true;
sister.moveInto(studyfloor);
orp.moveInto(studyfloor);
aunt.moveInto(studyfloor);
red.moveInto(studyfloor);
executor.moveInto(studyfloor);
addword(sister, &noun, 'chicken');
addword(sister, &noun, 'hen');
addword(aunt, &noun, 'chicken');
addword(aunt, &noun, 'hen');
addword(executor, &noun, 'chicken');
addword(executor, &noun, 'rooster');
addword(orp, &noun, 'chicken');
addword(orp, &noun, 'rooster');
addword(red, &noun, 'chicken');
addword(red, &noun, 'rooster');
addword(barnevelders, &noun, 'chickens');
addword(barnevelders, &noun, 'roosters');
addword(barnevelders, &noun, 'hens');
break;
case 11:
"\bThe cacophany is broken by a sudden click as loud as the hammer of a revolver.
Uncle Foggy's tape rolls to a stop and automatically starts rewinding. With the
tape's feed gone, the television reverts to receiving broadcast signal. All eyes
focus on the television as a recognizeable human figure appears, a woman in an
apron standing behind a counter covered with neatly placed cooking utensils.
\b\"Thank you, Charles,\" says Julia Childs. \"Now that our burgundy sauce is
chilling and the hen's organs have been removed, we can proceed to stewing the
guts and gizzards.\" Suddenly your attention is drawn to a furious pounding at
the study door. Oh no - it must be the cook wanting to watch her program!
\b\"SQUAWK!\" The panic renews with increased fury as your crazed relatives
hurl themselves in shrieking clouds of feathers at every surface in the room.
Well, it looks like its up to you and Winnie to figure out how to reverse Uncle
Foggy's joke.
";
julia.moveInto( study );
global.tvon := 2;
notify(global, #recipelist, 0);
break;
case 666:
"\bYou die and go to hell.
\b* * *\b
Too bad! ";
quit();
break;
default:
break;
}
}
noverb = {
return( global.verbmsg[rand( length(global.verbmsg) )]);
}
verbmsg = [
'You can\'t do that, you dumb cluck! You\'re a chicken! '
]
thanks = "\b\bThank you for playing \(Foggywood Hijinx\), a TextFeather release.
On-line registration for TextFeather products will be available at
http://www.textfeather.com on or before June 30, 1998. Thanks for your patience! "
;
/*
-outside:thing;
*/
outside: room
sdesc = "\(Front Lawn\)"
ldesc = {
"Uncle Foggy's front lawn teeters just on the border of ill-kempt, though no one
specific flaw draws attention. The three vehicles parked on the lawn fail to aid its
appearance. Uncle Foggy's home, Foggywood Manor, lies to the north, while the gate
through which you entered rests back to the south. Though you can't see it over the
hedges, you know that beyond the gate and across the road lies the ramshackle cabin
that Uncle Foggy called his lab. ";
if (!global.ischicken)
"\bThe Barnevelders are here, standing by the front door with you and Winnie. ";
else
"\bWinnie is here with you, eagerly waiting for your next move. ";
}
north = {
if (global.ischicken) {
"There's no getting back through the window, even if you wanted to. You can still
hear Mrs. Faverolles chasing your squawking relatives and screaming French
invectives. ";
return(nil);
}
}
south = {
if (global.ischicken) {
if (global.triedgate)
"Not with that fox hanging around out there! You're going to have to find another
way to cross that road. ";
else
"You head for the swinging gate, left conveniently ajar, and squeeze through to the
other side. It looks like an easy trip across the road to Uncle Foggie's lab. But
just as you're about to set foot on the road, a streak of copper catches your eye.
It's a fox! You turn tail and run back through the gate, just in time to bump into
Winnie coming out. The two of you rebound off each other, confusing your sense
of direction. With a growing sense of urgency you rush at the gate again, and
manage to squeeze through just as a sharp claw swipes at your tail feathers.
The gate bangs shut behind you, startling the fox away for the moment. Then it
slowly creaks open again. ";
global.triedgate := true;
}
else {
"But you just got here! Wouldn't you like to at least hear the reading of the will first? ";
}
return( nil );
}
;
outsidewindow: fixeditem
verDoOpen(a) = {
if (!global.ischicken)
"Though you and Winnie used to crawl through that window often, the spirit of the day
has got you too melancholy to think about it. ";
else
"You'll never get the window open again from this side. ";
}
location = outside
adjective = 'study'
noun = 'window'
sdesc = "window"
ldesc = "It's a plain, white-framed, four-panel window that looks in on Uncle Foggy's study. "
verDoLookthru(a) = {
if (!global.ischicken) "The interior of Uncle Foggy's study is dimly lit,
and reveals little to your bright adjusted eyes. ";
else "You can't see much through the shut window, but you can still hear the
horrible massacre within. ";
}
;
house: fixeditem
sdesc = "mansion"
ldesc = "Uncle Foggy's lovely Tudor mansion sprawls to the north. Atop the front
arch spins a creaky old weather vane. A glance at the window leading in to Uncle
Foggy's study fills you with nostalgic reverence. "
noun = 'house' 'manor' 'mansion' 'home' 'foggywood'
location = outside
;
vane: fixeditem
sdesc = "weather vane"
ldesc = "A creaky old iron weather vane in the shape of a rooster points vaguely northward. "
adjective = 'creaky' 'old' 'weathervane' 'weather'
noun = 'vane' 'weathervane'
location = outside
;
frontdoor: fixeditem
sdesc = "front door"
ldesc = "Uncle Foggy's door is painted a simple eggshell white, adorned with a wrought-iron
knocker in the shape of a crowing cock. "
adjective = 'front'
noun = 'door'
verDoOpen(a) = {}
doOpen(a) = { "You raise the chicken knocker and rap lightly on the door. ";
global.rapped := true; }
verDoKnock(a) = {self.verDoOpen(a);}
doKnock(a) = {self.doOpen(a);}
location = outside
;
knocker: fixeditem
sdesc = "knocker"
ldesc = "It's a wrought-iron knocker in the shape of a crowing cock. "
adjective = 'wrought' 'iron'
noun = 'knocker'
verDoPull(a) = { frontdoor.verDoOpen(a); }
doPull(a) = { frontdoor.doOpen(a); }
verDoKnock(a) = { frontdoor.verDoOpen(a); }
doKnock(a) = { frontdoor.doOpen(a); }
location = frontdoor
;
coupe: vehicle
isListed = nil
sdesc = "coupe"
ldesc = "Your car is a beaten-up, anonymous-looking two door coupe. It reminds you of
one of Uncle Foggy's favorite jokes: Why has a chicken coop got only two doors?
Because if it had four it'd be a chicken sedan! "
adjective = 'mine' 'our' 'my'
noun = 'car' 'coupe' 'vehicle'
location = outside
verDoBoard( a ) = {}
doBoard( a ) = {
if (!global.ischicken)
"You just got out of it. There's nothing inside that you need. ";
else
"Unfortunately the doors are locked. Well, not locked, exactly, since the locks don't
work anymore. Certainly chicken-proof, anyway. ";
}
verDoDrive(a) = {"It would help if you were inside it first. ";}
verDoSteal(a) = { "Stealing your own car would be silly. "; }
;
limo: vehicle
isListed = nil
sdesc = "Oldsmobuick"
ldesc = "Your Uncle Orpington's Oldsmobuick is a beetle black sedan of late vintage.
It looks big and mean, fit for running down small animals and old ladies on the highway. "
adjective = 'black' 'uncle' 'orpington\'s'
noun = 'sedan' 'car' 'vehicle' 'Oldsmobuick'
location = outside
verDoBoard( a ) = {}
doBoard( a ) = {
if (!global.ischicken)
"Your Uncle Orpington favors you with a foul glance. ";
else
"Uncle Orpington's steam roller is more suitable to running chickens down than
passengering them. ";
}
verDoDrive(a) = {"It would help if you were inside it first. ";}
verDoSteal(a) = { "You consider stealing Uncle Orpington's car. Then you consider
how bad the food is at the local prison. You just \(hate\) powdered eggs. "; }
;
truck: vehicle
isListed = nil
adjective = 'cousin' 'red\'s' 'monster'
noun = 'truck' 'monster' 'vehicle' 'stairs' 'ladder' 'steps'
sdesc = "monster truck"
ldesc = {
if (self.location=outside) {
if (Me.location=outside)
"Your cousin Red's monster truck is a masterpiece of modern automotive
engineering. Its brightly colored chassis hovers nearly five feet off the ground,
suspended by enormous black tires big enough to feed an entire tribe of African
pygmies through three rainy seasons. A galvanized metal stair extends down from
the driver's side door, without which tiny Red could never have tamed the monster.
Apparently Red left the roof at home, as the cab is open to the air. Red has
obnoxiously parked the truck facing forward right in front of the gate, which
forced you to drive around him when you entered. ";
else
"The gas pedal, ignition key, and gear stick all promise interesting avenues of
investigation.
\bWinnie is here with you, eagerly waiting for your next move. ";
if (key.turned) "\bThe monster truck rumbles ominously. ";
}
else
"It's a good thing Cousin Red's not here to see his truck. It's a wreck, filled with
fallen debris from its collision with Uncle Foggy's lab. ";
}
location = outside
stealmsg = "Your Cousin Red sees you aiming for his ride and simpers at you,
\"Hey, don't even think about it.\" "
stealmsg2 = "YEAH! YEAH! DRIVE! LET'S TAKE THIS MONSTER TO \(VEGAAAAS\)! "
doSynonym( 'Board' ) = 'Climb' 'Enter'
doBoard( a ) = {
if (!global.ischicken) self.stealmsg;
else if (self.location = lab)
"It's too full of debris to reenter. ";
else {
"Followed by Winnie, you hop up the metal steps and flutter over the door into the cab
of Red's truck. It is with incredible relief that you find Red's car keys hanging
from the ignition. You've never driven a truck like this - let alone while wearing
a chicken's body - but the ignition, gear stick and gas pedal look like a good place
to start. ";
Me.moveInto( self );
sister.moveInto( self );
}
}
verDoUnboard(a) = {
if(Me.location<>self) "You're not in the monster truck. ";
else
"Winnie grabs your tailfeathers with her beak, as if to say \"C'mon,
let's get this show on the road!\" ";
}
down = self.verDoUnboard( Me )
out = self.verDoUnboard( Me )
verDoSteal(a) = {
if (!global.ischicken) self.stealmsg;
else self.stealmsg2;
}
verDoDrive(a) = {
if (!Me.isIn(self)) {
if (!global.ischicken) self.stealmsg;
else self.stealmsg2;
}
else if (!key.turned)
"It's not going far without the ignition switched on. ";
else if (!stick.shifted)
"It's not going far in neutral. ";
else {
self.stealmsg2;
"\b(It might help if you were a bit more specific in your actions.) ";
}
}
;
key: fixeditem
turned = nil
doSynonym( 'Turn' ) = 'Switch' 'Turnon'
verDoTurn(a)={}
doTurn(a) = {
if (self.turned)
"Winnie pecks you lightly as if to say \"C'mon... let's blow this coop!\"";
else {
"You turn the keys with your beak, and the monster truck roars to life!";
self.turned := true;
}
}
adjective = 'ignition' 'rabbit\'s' 'rabbit'
noun = 'key' 'keys' 'ignition' 'foot'
sdesc = "keys"
ldesc = "Thankfully, Cousin Red has left his keys in the ignition. A lucky rabbit's foot
dangles from the keychain. You wonder if the rabbit was still alive when Red cut it off. "
location = truck
;
stick: fixeditem
shifted = nil
doSynonym( 'Push' ) = 'Move' 'Pull' 'Turn' 'Switch' 'Press'
verDoPush(a)={}
doPush(a) = {
if (!key.turned)
"It would help if you turned on the ignition first. ";
else if (self.shifted)
"Winnie pecks you lightly as if to say \"C'mon... let's blow this coop!\"";
else {
"You and Winnie together both jump on the gear shift, your combined weight just
barely enough to slide it into gear. ";
self.shifted := true;
}
}
adjective = 'stick' 'gear'
noun = 'shift' 'stick' 'gears' 'gear'
sdesc = "gear shift"
ldesc = "Cousin Red's gear shift has an eight-ball mounted on the knob. "
location = truck
;
pedal: fixeditem
doSynonym( 'Push' ) = 'Move' 'Jump' 'Stand' 'Standon' 'Press'
verDoPush(a)={}
doPush(a) = {
if (!key.turned)
"It would help if you turned on the ignition first. ";
else if (!stick.shifted)
"It would help if you put the truck in gear first. ";
else {
"Fearing that even your combined weight may not be enough, you and Winnie
jump together onto the gas pedal. The truck lurches into motion!
Rear wheels pealing, it bursts forward, crashing through the front gate
\(and across the road, baby!\)
At the far side, the truck hits a deep pothole that jolts you and Winnie
into the air, giving you a perfect view as the
truck slams into one sagging wall of Uncle Foggy's ramshackle lab. The impact
flattens you into the windshield, as debris from the crumbling
wall crashes down upon you.
\b
When the dust finally settles, you and Winnie clamber dizzily out of the truck.
Uncle Foggy's lab is a shambles. Shelves have collapsed, spilling their contents
everywhere. The entire structure looks as though it may fall down at any moment.
But there, posted on a relatively stable section of wall, is a diagram outlining
the process of Uncle Foggy's Super Funky Chickenizer (pat. pending).
Below it, on a sturdy bench, is a small white pyramid - clearly the mate to the
device that got you into this mess.
";
truck.moveInto(lab);
Me.moveInto(lab);
sister.moveInto(lab);
}
}
adjective = 'gas'
noun = 'pedal'
sdesc = "gas pedal"
ldesc = "Press it and go \(vroom\). "
location = truck
;
horn: fixeditem
location = truck
noun = 'horn'
sdesc = "horn"
ldesc = "The horn on cousin Red's truck is so loud that when it sounds,
God fearing Christians kneel in prayer and wait to be swept up into the sky. "
verDoPush(a) = {
"The horn blares out an ear-splitting version of 'La Cucaracha.' ";
}
doSynonym( 'Push' ) = 'Play' 'Press'
;
playVerb: deepverb
sdesc = "play"
verb = 'play'
doAction = 'Play'
;
/*
-lab:thing
;*/
lab: room
sdesc = "Uncle Foggy's Lab"
ldesc = "Uncle Foggy's lab is a complete wreck as the result of your recent
mishap with Cousin Red's truck. Debris is scattered everywhere. Posted on
one wall, like a vision from heaven, is a diagram outlining the process of
Uncle Foggy's Super Funky Chickenizer (pat. pending). Beneath it is a sturdy
bench on which rests a white pyramidal device. "
noexit = "You'll never climb out of this wreck in your chicken form. "
;
bench: chairitem
sdesc = "bench"
ldesc = "It's a sturdy lab bench that survived the recent disaster. Resting on it
is a white pyramidal device. "
adjective = 'sturdy' 'work'
noun = 'bench'
location = lab
outOfPrep = "off of"
statusPrep = "on"
doUnboard(a) = {
"You hop down off the bench, still in your chicken form. ";
Me.moveInto(lab);
}
down = self.doUnboard( Me )
;
magag: fixeditem
adjective = 'white' 'matte' 'pyramidal' 'ultimate' 'practical' 'super' 'funky'
noun = 'pyramid' 'joke' 'invention' 'antidote' 'device' 'humanizer'
ldesc = "This must be the reversion device for Uncle Foggy's
Super Funky Chickenizer (pat. pending). It's a white matte pyramid
with a small switch at its apex. "
sdesc = "Super Funky Humanizer (pat. pending)"
verDoTake(a) = {
"Whatever it's made of, it's too big and heavy for you to carry in your beak. ";
}
location = bench
;
toggle2: fixeditem
location = magag
noun = 'switch' 'toggle'
sdesc = "switch"
ldesc = "It works flip-flop! "
doSynonym( 'Flip' ) = 'Turn' 'Push' 'Pull' 'Kick' 'Scratch' 'Peck' 'Press'
verDoFlip(a) = {
if (Me.location=lab)
"You can't reach the device from the lab floor. ";
}
doFlip(a) = {
"The switch flips over with a hollow 'click'... and suddenly, the world seems smaller.
\b\b\b
[Hit any key to continue.]
";
Me.moveInto( diningroom );
sister.moveInto( diningroom );
inputkey();
clearscreen();
"Much later, you and Winnie sit down to a sumptuous dinner prepared by Mrs. Faverolles.
You're both able to laugh over the day's events from the comfortable safety of Uncle
Foggy's expansive dining room.
\b\t\"What a day!\" you exclaim to Winnie between mouthfuls.
\n\t\"I know,\" she says, sipping a glass of wine. \"I thought we would \(never\)
find a way to revert to our old selves.\"
\n\t\"Too bad about the Barnevelders missing their chance to participate in the
scavenger hunt.\"
\n\t\"Oh, yes,\" nods Winnie.
\n\t\"So. How are you finding the chicken?\" you ask, changing the subject.
\n\t\"Mm, it's a big stringy for my tastes.\" says Winnie, chewing a mouthful of food.
\n\t\"Really? Mine's quite tender.\"
\n\t\"Well, you know what they say,\" says Winnie.
\n\t\"What's that?\" you inquire.
\b\t\"\(It's all relative!\)\"
\b\t* * *\b
Congratulations! You have won \(Foggywood Hijinx\)!
\b\bThank you for playing \(Foggywood Hijinx\), a TextFeather
release. On-line registration for TextFeather products will be available at
http://www.textfeather.com on or before June 30, 1998.
Thanks for your patience!
";
quit();
}
;
diningroom: room
sdesc = "dining room"
ldesc = "Uncle Foggy's dining room is beautifully furnished. "
;
debris: fixeditem
sdesc = "debris"
ldesc = "The remains of what was once Uncle Foggy's lab. Unidentifiable
ruins are scattered everywhere. "
location = lab
noun = 'debris' 'mess' 'junk' 'stuff'
;
diagram: fixeditem
ldesc = "It seems to outline the process of Uncle Foggy's Super Funky Chickenizer
(pat. pending). "
location = lab
noun = 'diagram'
sdesc = "diagram"
;
cars: fixeditem
location = outside
noun = 'cars' 'vehicles'
sdesc = "cars"
ldesc = "Your worn out coupe looks pretty shoddy compared to the gleaming lustre of
the Barnevelder's massive sedan, to say nothing of Red's gargantuan, brilliantly
painted truck. "
verDoSteal(a) = { self.specify; }
verDoDrive(a) = { self.specify; }
verDoBoard(a) = { self.specify; }
specify = "You should specify which one you're referring to: your coupe, Uncle
Orpington's sedan, or Cousin Red's truck. "
isListed = nil
isplural = true
;
gate: fixeditem
sdesc = "gate"
ldesc = "It's a simple picket fence gate that spans a gap between tall hedges on either side.
The gate opens wide enough to permit vehicles to pass through. Currently it's slightly ajar. "
adjective = 'white' 'picket'
noun = 'gate' 'fence'
verdoOpen(a)={}
doOpen(a) = {
if(!global.ischicken)
"You just arrived. No need to open the gate now. ";
else
"The gate is too heavy for you to push open, though you could squeeze through the gap. ";
}
location = outside
;
hedges: fixeditem
sdesc = "hedges"
ldesc = "Eight foot high hedges border the property on all sides. Uncle Foggy was a bit
on the reclusive side. "
noun = 'hedge' 'hedges'
location = outside
;
fakelab: intangible
errmsg = self.ldesc
sdesc = "fox"
ldesc = "You can't see Uncle Foggy's lab from the yard,
but you know it's just across the road beyond the gate. "
adjective = 'uncle' 'foggy\'s'
noun = 'lab'
;
fox: intangible
errmsg = "You can't see the fox, but you know it's still out there. "
sdesc = "fox"
ldesc = "It's little more than an occasional coppery streak beyond the gate. "
adjective = 'copper' 'coppery'
noun = 'fox' 'streak'
;
/*
-foyer:thing;
*/
foyer: room
sdesc = "\(Foyer\)"
ldesc = {
"Uncle Foggy's foyer is tastefully decorated, even if the blue hen wallpaper does
seem a bit queer. Passages from the foyer lead off in many directions, but your only
business here today is in the study to the east. The walls are adorned with glossy photos
taken around Uncle Foggy's favorite travel destination. Nailed to a chest-high post is a
stuffed bird, eternally caught in its morning salutation to the sun. ";
if (!global.ischicken) "\bThe Barnevelders are here,
waiting to be admitted into the study with you and Winnie. ";
}
south = {
"While standing in the same room as the Barnevelders \(is\) enough to send you
screaming out the front door, right now you'd rather bide your time until you've heard
the reading of the will. ";
return(nil);
}
east = {
"Though you feel as if you should have free run of the place, right now you'll have to
wait until Mr. Dorkings allows you to enter. ";
return(nil);
}
north = {
"It saddens you to think that, after today, you may never visit Uncle Foggy's home again.
But for now you'll just have to wait for the reading of the will. ";
return(nil);
}
west = self.north
nw = self.north
up = self.north
ne = self.north
;
photos: fixeditem
sdesc = "photographs"
ldesc = "Lush photos of the Sun Pyramid taken around Chi-chen Itza. Uncle Foggy claimed
to have held great admiration for the builders of the pyramid. "
noun = 'photo' 'photos' 'photographs' 'photograph' 'picture' 'pictures'
location = foyer
;
wallpaper: fixeditem
noun = 'wallpaper' 'paper' 'hens'
adjective = 'wall'
sdesc = "wallpaper"
ldesc = "A cheery chicken-and-egg motif!"
location = foyer
;
studydoor: fixeditem
location = foyer
sdesc = "study"
ldesc = "Uncle Foggy's study lies to the east, though you can't see much from here. "
noun = 'study'
verDoBoard(a) = {
if (global.turnsofar=4)
"";
else "You'll have to wait until Dorkings invites you inside. ";
}
;
rooster: fixeditem
adjective = 'stuffed'
noun = 'bantam' 'post' 'perch' 'bird'
sdesc = "stuffed bantam"
ldesc = "The famous Norwegian Blue Bantam. No wonder they call it blue - it really does
look a bit down in the beak. Perhaps it's pinin' for the fjords? No, clearly it has
shuffled off this mortal coil. After all, the only reason it's even sitting on that perch is
that it's been nailed there. "
location = foyer
;
/*
-study: thing;
*/
study: room
sdesc = "\(Study\)"
ldesc = {
"Light from the outside streams in through the closed window, illuminating
Uncle Foggy's comfortably cluttered study. It's full of interesting odds and
ends, not the least of which is the trophy mounted on the wall above the desk.
Many were the times that you and Winnie would climb the bookshelves in search
of written treasure, and then spread out by the fireplace with your latest finds. For
more dexterous pleasures, there was the carton of assorted works in progress Uncle
Foggy usually kept beneath his desk. If nothing else appealed, sneaking
maraschino cherries from the bar was always good for a few giggles. ";
if (!global.ischicken) "\bThe Barnevelders are here, seated on the couch across from
you and Winnie, while Mr. Dorkings stands beside the desk. ";
else "\bThe room is filled with chickens, running in crazy circles and bounding off
the furniture and each other. Resting off to one side of the room is Uncle Foggy's
ultimate practical joke. ";
}
noun = 'study'
west = {
if (!global.ischicken)
"It would be disrespectful to go wondering through the mansion during the reading
of Uncle Foggy's will. ";
else self.pharoah;
}
pharoah = "The Pharoahs built their pyramids on the labor of thousands of slaves, each tied into
harnesses and pulling inhuman weight. This game hates to break it to you, but frankly,
you're no Pharoah, and the Barnevelders ain't Jewish. That door is \(massive\).
Perhaps you'd have more luck with the window. "
escape = {
"You flounce through the window, Winnie close behind. You've just reached the outside
sill when behind you, a thunderous din begins at the
door. The door cracks open to reveal the terrible figure of Mrs. Faverolles!
She stands beneath the lintel brandishing the mucous-white corpse of a dead fowl
in one hand and a great cleaver in the other. All is still as she and your relatives
regard each other with silent amazement. The tableau is broken as Julia Childs
show cuts to a commercial and an announcer's voice screams \"FUNNY CAR AND
MONSTER TRUCK RALLY SUNDAY SUNDAY \(SUNDAAAAY\)!!!\" Mrs. Faverolles
slams the door behind her and wades into the room swinging her bloody cleaver to
the sound of manic laughter on the television. The feathers fly as your relatives
carom around the room like chickens with their heads cut off. You and Winnie watch
in horror until the Super-Bendy Balloon-Animal Balloon (pat. pending) beneath the
window finally bursts, sending the window speeding
shut and throwing the two of you from your perch on the sill. You flutter to the
ground, no worse for wear. \b";
}
south = {
if (global.b7) {
self.escape;
unnotify(global, #recipelist);
fox.moveInto( outside );
sister.moveInto( outside );
return( outside );
}
else if (global.ischicken)
window.twins;
else
"Crawling through the window just doesn't appeal
like it once did when you and Winnie were kids. ";
}
;
studydoor2: fixeditem
ldesc = "The door to Uncle Foggy's study is a great heavy slab of carven oak. "
noun = 'door'
adjective = 'study' 'oak'
location = studyfloor
sdesc = "study door"
verDoOpen(a) = { study.pharoah; }
;
studyfloor: chairitem
location = study
sdesc = "floor"
noun = 'floor' 'rug' 'carpet'
ldesc = "The shag carpeting makes you hungry for wriggling invertebrates. "
verDoUnboard(a) = {
"You hop into the air, but alas, gravity's cruel pull drags you down once more.";
}
doUnboard(a) = {self.verDoUnboard(a);}
verDoBoard(a) = { if (Me.location=self) "You're already on the floor. "; }
doBoard(a) = {
"You hop down to the floor. ";
Me.moveInto( self );
}
south = { return(study.south); }
west = { return(study.west); }
up = {
"You flap your wings edgily, glancing from desk to sill to shelves to bar,
looking for something to hop up onto. ";
}
reachable = [ self self.contents orp aunt red executor sister foggy julia
desk windowsill couch loveseat deskchair bar shelves]
outOfPrep = "off of"
statusPrep = "on"
mount = "down"
noexit = {
"The obvious exit is the study door, to the west, but there's no chance of
getting that open now. The southern window looks promising, though. ";
}
;
desk: chairitem
sdesc = "desk"
ldesc = "Uncle Foggy's desk is a great monolith of mahogany, with drawers of all sizes
and shapes on virtually every face. Even though Uncle Foggy did most of his work in
his lab, the desk's surface is still scarred from his constant tinkering.
As you know, Uncle Foggy usually kept a carton of assorted parts
beneath the desk for idle moments.
Sitting on the center of the desk is a television set. At one corner, you see
Uncle Foggy's Super-Bendy Balloon-Animal Balloon Dispenser (pat. pending).
\bYour eye is inevitably drawn to the massive
Buffalo-On-A-Spring (pat. pending) hanging heavily far up on on the wall overhead
which, as you know, is activated by a hidden button on the desk. "
noun = 'desk'
location = study
reachable = [ self orp aunt red executor sister foggy julia self.contents studyfloor deskchair]
verDoLookunder(actor) = {}
doLookunder(actor) = {
"You don't see anything of interest besides Uncle Foggy's box of junk. ";
}
ischair = nil
outOfPrep = "off of"
statusPrep = "on"
down = self.doUnboard( Me )
mount = { if (Me.location=studyfloor or Me.location=deskchair) "up"; else "down"; }
;
drawers: fixeditem
location = desk
noun = 'drawer' 'drawers'
sdesc = "drawers"
ldesc = "Drawers of all sizes and shape fill Uncle Foggy's desk. "
verDoLookin(a)={self.verDoOpen(a);}
verDoOpen(a)={
if (!global.ischicken)
"You feel that now is not the time to go rifling through Uncle Foggy's desk. ";
else
"Your new body hasn't got the power to open the heavy wooden drawers. ";
}
;
tv: fixeditem
noun = 'tv' 'vcr' 'television'
sdesc = "television"
ldesc = {
"A standard twenty-seven inch screen housed in molded black plastic with an
integrated video player. ";
switch(global.tvon) {
case 0:
"It's switched off at the moment. ";
break;
case 1:
"The screen shows a closeup of Uncle Foggy, looking big as life and only half as dead. ";
break;
case 2:
"The screen shows Julia Childs performing barbaric ritual desecrations to the
corpses of murdered chickens. ";
break;
}
}
verDoTurnoff(a) = {
if (!global.ischicken) {
if (global.tvon = 0) "It's not on. ";
else "That would be no way to respect Uncle Foggy's memory. ";
}
else "As much as you would love to end Ms. Childs' depredations, the
television seems to be chicken-proof. ";
}
verDoTurnon(a) = {
if (global.tvon = 0) "Dorkings seems to have things under control. ";
else "It's already on. ";
}
doSynonym( 'Push' ) = 'Move'
verDoPush(a) = {
"The television towers over you like the monolith from 2001.
My god... it's full of stars! ";
}
location = desk
;
dispenser: fixeditem
sdesc = "Super-Bendy Balloon-Animal Balloon Dispenser (pat. pending)"
ldesc = {
"Uncle Foggy often liked to make elaborate balloon animals for favored visitors,
and the Super-Bendy Balloon-Animal Balloon Dispenser (pat. pending) is another of
his inventions. It's in the shape of a small elephant statuette with raised trunk.
Super-Bendy Balloon-Animal Balloons (pat. pending) are dispensed from the
elephant's open mouth. Yank out one and another takes its place. ";
if (balloon.location<>self)
"Sadly, it has dispensed its last Super-Bendy Balloon-Animal Balloon (pat. pending). ";
}
doSynonym( 'Push' ) = 'Move'
verDoPush(a) = {
"You put your nose (such as it is) to the grindstone (such as it is) and try to shove the
dispenser across the desk, but it's just too heavy for you. ";
}
adjective = 'balloon' 'elephant' 'super-bendy' 'super' 'bendy' 'balloon-animal' 'animal'
noun = 'dispenser' 'elephant' 'statuette'
location = desk
verDoTake(a) = {
if (!global.ischicken) "You're not in the mood to play with balloons just now, though you
suspect that Uncle Foggy would've approved of the notion. ";
else "The dispenser is too heavy for you to move in your current state. ";
}
;
balloon: item
sdesc = "Super-Bendy Balloon-Animal Balloon (pat. pending)"
ldesc = {
"\^<<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) = {
//"\b\("; say(global.btot); "\)\b";
switch(global.btot) {
case 0:
//No elements in place
self.z1; ". "; self.z0; self.z4; self.z6; ". "; self.z3; ". "; self.z8; ". ";
break;
case 1:
//Only helper in place
self.z1; self.z2; self.z3; self.z9; self.z0; self.z10; self.z8; self.z11;
break;
case 2:
//Bellows in place (+ and other condition), but not helper
self.z1; ". "; self.z3; self.z12; self.z0; self.z5; self.z6; ". ";
self.z8; ". ";
break;
case 3:
//Helper + bellows, but no balloon or straw
self.z1; self.z2; self.z0; self.z5; self.z6; " "; self.z13;
self.z14; ". "; self.z8; self.z11; self.z15;
break;
case 4:
//Helper + bellows connected to straw, no balloon
self.z1; self.z2; self.z0; self.z5; self.z6; self.z13; self.z14;
self.z16;
if (helper.location = Me) {
self.z23;
straw.moveInto( studyfloor );
}
else self.z17;
self.z8; self.z11; self.z15;
break;
case 5:
//Helper + bellows + straw + balloon
self.z1; self.z2; self.z0; self.z5; self.z6; self.z13; self.z14;
self.z16; self.z18; self.z19; self.z22; self.z8; self.z11; self.z15;
balloon.moveInto( studyfloor );
global.b4 := nil;
break;
case 6:
//Helper + bellows + straw + balloon in knot
self.z1; self.z2; self.z0; self.z5; self.z6; self.z13; self.z14;
self.z16; self.z18; self.z19; self.z20; self.z21; self.z8; self.z11; self.z15;
global.b6 := true;
global.b7 := true;
sister.moveInto( windowsill );
break;
case 7:
//Helper + bellows + straw + full balloon in knot
"Winnie sees you reaching for the button and raises a frantic squawk, as
if to say \"C'mon, you dumb cluck! We don't have much time before the
window closes again!\" In addition, the furious pounding at the door reminds
you of your fate if Mrs. Faverolles catches you in your current state!";
break;
case 8:
//Helper + bellows + balloon
self.z1; self.z2; self.z0; self.z5; self.z6; self.z13; self.z14;
self.z18; self.z19; self.z22; self.z8; self.z11; self.z15;
balloon.moveInto( studyfloor );
global.b8 := nil;
break;
default:
"No numbers matched. ";
break;
}
}
z0 = { say(global.chickens[rand(length(global.chickens))]); }
z1 = "The Buffalo-On-A-Spring (pat. pending) zooms off the wall with a resounding
\(SPROI-OI-OING\)"
z2 = ", the Hedge Helpers (pat. pending) bouncing crazily behind. "
z3 = "The trophy jerks to a sudden stop about three feet off the ground, in front of the desk"
z4 = ", standing in the center of the room, "
z5 = ", standing near the bellows, "
z6 = "leaps with bulging eyes from the path of the charging trophy"
z7 = "looks up to see the huge trophy head bearing down and leaps out of its path"
z8 = "A moment later, the head snaps back to the wall"
z9 = ", while the Hedge Helpers (pat. pending) snap forward and down, reaching nearly
to the floor. "
z10 = ", standing on the spot, receives a powerful goosing from the Hedge Helpers
(pat. pending) and leaps face first into a nearby piece of furniture. "
z11 = ", the Hedge Helpers (pat. pending) whipping insanely behind. "
z12 = ", and just above the bellows lying in the middle of the room. "
z13 = " just in time to avoid the whipping Hedge Helpers (pat. pending), which
latch onto the bellows and give it a good solid squeeze. "
z14 = "The bellows \(BOOFS\) as the air is forced out of it"
z15 = " The bellows slowly returns to its original position as air rushes back into it."
z16 = " and through <<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
;
/*
-actors:thing;
*/
executor: Actor
isListed = nil
adjective = 'Mr.'
noun = 'dorkings' 'executor'
sdesc = "Mr. Dorkings"
ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; }
hdesc = "Dorkings was Uncle Foggy's solicitor. A dour man in black who rarely smiles,
you've never quite trusted him. "
cdesc = "Dorkings was a dour looking man in black. Now he's a dour looking black chicken.
And those beady eyes don't make him look any more trustworthy. "
havow = "Mr. Dorkings looks at you with disapproving eyes. You know he's never liked
you and Winnie. "
location = foyer
verDoFollow( a ) = {
if (!global.ischicken and Me.location=outside)
"";
else pass doFollow;
}
actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; }
;
foggy: fixeditem
isListed = nil
adjective = 'uncle'
noun = 'fogarth' 'foggy' 'Barnevelder'
sdesc = "Uncle Foggy"
ldesc = "The closeup image of Uncle Foggy's face on the television floats just about
where it would be if he were still sitting at his desk, creating an eerie warping of reality. "
//cdesc = self.hdesc
location = nil
disavow = "Your grief must be getting to you. Get a grip.
Uncle Foggy is just an image on the television. "
;
red: Actor
isListed = nil
adjective = 'cousin'
noun = 'Reginald' 'Red' 'Reggie' 'Barnevelder'
sdesc = "Red"
ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; }
hdesc = "Your cousin Reginald 'Red' Barnevelder is a scrawny red-headed jerk. Ever since
you were children, he's always lorded it over you and Winnie. "
cdesc = "Cousin Red was a scrawny, red-headed human. Now he's a scrawny, thin-necked
rooster with a floppy red comb. "
havow = "\"HAH hah! We're going to get everything, and you're going to get nothing!
So don't try sucking up to me, 'cause it won't work!\""
location = outside
actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; }
;
orp: Actor
isListed = nil
adjective = 'uncle' 'Mr.'
noun = 'Orpington' 'Barnevelder'
sdesc = "Uncle Orpington"
ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; }
hdesc = "Your Uncle Orpington is a big, blustery man prone to sudden outbursts and
disapproving tirades. The only time you can recall ever seeing him happy was while
reminiscing about some of Uncle Foggy's failed experiments. "
cdesc = "Uncle Orpington makes for a big, bullish rooster, the cock of the walk. "
havow = "Uncle Orpington snorts in apparent disgust. \"You gold-digging
little brats. You'll get nothing.\" "
location = outside
actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; }
;
aunt: Actor
isListed = nil
adjective = 'aunt' 'Mrs.'
noun = 'Lamona' 'Barnevelder'
sdesc = "Aunt Lamona"
ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; }
hdesc = "Your Aunt Lamona wears a high collar and a pinched expression over a plain
woolen dress. She's always held your side of the family at a distance with her
snobbishly aristocratic values. "
cdesc = "Aunt Lamona makes for a stringy looking hen. You're willing to bet she's all
gristle. "
havow = "Aunt Lamona sniffs at you and looks away haughtily. She's never had any
use for your side of the family, and Uncle Foggy's death hasn't changed that. "
location = outside
actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; }
;
barnevelders: Actor, floatingItem
isplural = true
noun = 'barnevelders'
sdesc = "the Barnevelders"
ldesc = { if (!global.ischicken) self.hdesc; else self.cdesc; }
hdesc = "The Rhode Island Barnevelders are a pompous, arrogant looking group. "
cdesc = "The Rhode Island Barnevelders make for a panicky looking group of chickens. "
locationOK = true
location = {return(orp.location);}
havow = "\^<<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. "
//cdesc = self.hdesc
location = nil
disavow = "Get real. Julia Childs is just an image on the television. "
;
cook: Actor
isListed = nil
adjective = 'Mrs.'
noun = 'Faverolles' 'cook'
sdesc = "Mrs. Faverolles"
ldesc = "Mrs. Faverolles is a short, squat, troll-like woman stuffed into a tightly fitted
white chef's uniform. Mrs. Faverolles is notorious for her mercurial temper, which
often leads to screaming paroxysms of incomprehensible French. "
cdesc = self.hdesc
location = study
actorAction( v, d, p, i ) = { if (!global.ischicken) self.hignore; else self.cignore; exit; }
;
saucepan: fixeditem
location = cook
adjective = 'sauce'
noun = 'sauce' 'pan' 'saucepan'
sdesc = "sauce pan"
ldesc = "It's full of some rich, burgundy colored sauce. "
;
spoon: fixeditem
location = cook
noun = 'spoon'
sdesc = "spoon"
ldesc = "A wooden spoon, apparently used for stirring sauce. "
;
/*
-objects:thing;
*/
replace scoreStatus: function( ) {
//setscore( cvtstr(global.score) + ' out of 14' );
setscore ('');
}
replace terminate: function
{
"Thank you for playing the demo version of \(Foggywood Hijinx\), a
TextFeather release. On-line registration for TextFeather products
will be available at
http://www.textfeather.com on or before
June 30, 1998. Thanks for your patience!";
}
class intangible: fixeditem
errmsg = "You can't do that with <<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 ); "\". ";
}
;
/*
-verbs:thing;
*/
xyzzyverb: sysverb
verb = 'xyzzy'
sdesc = "xyzzy"
action(actor) = {
if (global.ischicken)
"\bWith a mighty 'psquaAWK', you squeeze out an egg! Sadly it lands on the hard
cold ground, where it meets an untimely demise. ";
else
"A hollow voice says, \"Hey, didn't I see you on the MUD last night?\"";
abort;
}
;
aboutVerb: sysverb
verb = 'about'
sdesc = "about"
action(a) = {
"TextFeather is pleased to present \(Foggywood Hijinx\) a game hen, by Ivan Cockrum.
\b
About the author:
\b
Ivan \"Henny\" Cockrum grew up on a chicken ranch in northern Montana. As a young
boy, Ivan spent so much time around poultry that for a long time he thought he \(was\)
a chicken. That is, until the Great Thanksgiving Day Beheading of '57, which provided a
dramatic lesson in applied Darwinism to innocent young Ivan. Now, Ivan is a chicken
rancher himself and a
fanatical proponent of game hens, which is why he proudly presents this game of
\(Foggywood Hijinx\).
\b
Please direct comments or questions to
[email protected].
\b
\(Foggywood Hijinx\) was beta tested and catered by
Chad Hernandez, Christopher Huang, Christopher Klimas, and Dan Shiovitz.
\b
About TextFeather:
\b
TextFeather, Inc. is a partnership of chicken ranchers formed for the
purpose of providing quality works of interactive game hen to
a worldwide community of players, hobbyists, and
chicken fetishists. Help support our efforts to keep interactive
game hens alive!
";
abort;
}
doAction = 'About'
;
/*hintVerb: deepverb
verb = 'hint' 'help' 'hints'
sdesc = "hint"
action(a) = {
"Hints are available with the full registered version of \(Foggywood Hijinx\).
Type REGISTER for additional information. ";
}
;
*/
regsterVerb: deepverb
verb = 'register'
sdesc = "register"
action(a) = {
"On-line registration for TextFeather products will be available
at
http://www.textfeather.com on or before June 30, 1998. Thanks for your patience! ";
}
;
smellVerb: deepverb
verb = 'smell' 'sniff'
sdesc = "smell"
action(actor) =
{
if (global.ischicken)
"Your incredible chicken sense of smell detects nothing unusual. ";
else
"You smell nothing out of the ordinary.";
}
doAction = 'Smell'
;
listenVerb: deepverb
verb = 'listen'
sdesc = "listen"
action(actor) =
{
if (global.ischicken)
"Your super-keen chicken hearing detects nothing unusual. ";
else
"You hear nothing out of the ordinary.";
}
doAction = 'Listen'
;
knockVerb: deepverb
verb = 'knock'
sdesc = "knock"
doAction = 'Knock'
;
squawkVerb: deepverb
verb = 'squawk' 'peep' 'cheep' 'chirp' 'crow'
sdesc = "squawk"
action(actor) = {
"You rear back, flap your wings, and let loose with a loud \(PSQUAWK\)! ";
}
;
flapVerb: deepverb
verb = 'flap' 'fly'
sdesc = "flap"
action(actor) = {
"You flap your wings furiously. The feathers fly, but sadly, you don't. ";
}
;
goBehindVerb: deepverb
verb = 'go behind'
sdesc = "go behind"
doAction = 'Gobehind'
;
goThruVerb: deepverb
verb = 'go through' 'go thru'
sdesc = "go through"
doAction = 'Gothru'
;
goUnderVerb: deepverb
verb = 'go under' 'go beneath'
sdesc = "go under"
doAction = 'Gounder'
;
kickVerb: deepverb
verb = 'kick' 'claw' 'scratch'
sdesc = "kick"
doAction = 'Kick'
;
peckVerb: deepverb
verb = 'peck'
sdesc = "peck"
doAction = 'Peck'
;
driveVerb: deepverb
verb = 'drive'
sdesc = "drive"
doAction = 'Drive'
;
stealVerb: deepverb
verb = 'steal'
sdesc = "steal"
doAction = 'Steal'
;
squeezeVerb: deepverb
verb = 'squeeze'
sdesc = "squeeze"
doAction = 'Squeeze'
;
inflateVerb: deepverb
verb = 'inflate' 'blow up'
sdesc = "inflate"
doAction = 'Inflate'
;
deflateVerb: deepverb
verb = 'deflate'
sdesc = "deflate"
doAction = 'Deflate'
;
pressVerb: deepverb
verb = 'press'
sdesc = "press"
doAction = 'Press'
;
extendVerb: deepverb
verb = 'extend'
sdesc = "extend"
doAction = 'Extend'
;
modify sayVerb
ioAction( toPrep ) = 'SayTo'
;
setupVerb: deepverb
verb='setup'
sdesc = "setup"
action(a) = {
global.turnsofar:=11;
julia.moveInto(study);
Me.moveInto(studyfloor);
sister.moveInto(studyfloor);
orp.moveInto(studyfloor);
aunt.moveInto(studyfloor);
red.moveInto(studyfloor);
executor.moveInto(studyfloor);
global.ischicken:=true;
global.tvon:=2;
addword(sister, &noun, 'chicken');
addword(sister, &noun, 'hen');
addword(aunt, &noun, 'chicken');
addword(aunt, &noun, 'hen');
addword(executor, &noun, 'chicken');
addword(executor, &noun, 'rooster');
addword(orp, &noun, 'chicken');
addword(orp, &noun, 'rooster');
addword(red, &noun, 'chicken');
addword(red, &noun, 'rooster');
addword(barnevelders, &noun, 'chickens');
addword(barnevelders, &noun, 'roosters');
addword(barnevelders, &noun, 'hens');
straw.moveInto( studyfloor );
balloon.moveInto( studyfloor );
global.b2 := true;
helper.moveInto( studyfloor );
box.isopen := true;
"Yeah, baby! ";
}
;
endgameVerb: deepverb
verb='endgame'
sdesc = "endgame"
action(a) = {
global.turnsofar:=11;
julia.moveInto(study);
Me.moveInto(outside);
sister.moveInto(outside);
orp.moveInto(studyfloor);
aunt.moveInto(studyfloor);
red.moveInto(studyfloor);
executor.moveInto(studyfloor);
global.ischicken:=true;
addword(sister, &noun, 'chicken');
addword(sister, &noun, 'hen');
global.b7 := true;
"Yeah, baby!";
}
;
chickenVerb: sysverb
verb = 'chicken'
sdesc = "chicken"
action(a) = {
"Bart: Fat kids, skinny kids, kids who climb on rocks...
\nBart: Smart kids, dumb kids...
\nMilhouse: ...even kids with chicken pox...
\nBart: ...love hot dogs, \(armor\) hot dogs!
\nBart: They're the \(dogs\)... kids love to \(muuunch!\)
\nLisa: Doesn't this family know any songs that AREN'T television commercals?
\n(Pause.)
\nSimpsons family (minus Lisa): I feel like chicken tonight, like chicken tonght, like
chicken tonight!
";
abort;
}
;
hypnotizeVerb: sysverb
verb = 'hypnotize'
sdesc = "hypnotize"
action(a) = {
"Bart: Remember that hypnotist we saw to help us resolve our family issues?
\nHomer: How can I forget! Five years later, and I \(still\) think I'm a chicken.
\nHomer: I'm a chicken, Marge!
\nMarge: I know.
";
abort;
}
;
/*
-foggyhints: thing;
*/
helpVerb: sysverb
verb = 'help' 'hint' 'hints'
action(actor) = {
self.helpme( actor );
abort;
}
listhints = {
local i, tot, list;
list := allhints.myhints;
tot := length( list );
clearscreen();
for (i := 1 ; i <= tot ; ++i) {
"\("; say( i ); ")\) "; list[i].sdesc; "\n";
}
"\b";
"------------------------------\n";
"\b";
}
helpme( actor ) = {
local list, tot, cnt, i;
list := allhints.myhints;
tot := length( list );
self.listhints;
while ( 1 ) {
local resp, j;
if(not j) {
"\nEnter a number from 1 to "; say(tot); ", or (E)xit: >";
}
else {
"\nEnter a number from 1 to "; say(tot); ", or (E)xit: >";
}
j := true;
resp := lower(input());
if (resp = 'e' or resp = 'exit') {
clearscreen();
Me.location.lookAround(true);
abort;
}
resp := cvtnum( resp );
if (resp < 1 or resp > tot)
continue;
clearscreen();
"\("; list[resp].sdesc; "\)";
while( 1 ) {
local num, cnt, subresp;
num := length(list[resp].myhints);
if (cnt = -1) { cnt := nil; break; }
if (cnt = nil) cnt := 1;
"\b"; say(cnt); "/"; say(num); ": "; say( list[resp].myhints[cnt] ); "\b";
while( 1 ) {
if(not j) {
if (cnt < num)
"\nType (N)ext, or (E)xit: >";
else
"\nNo more hints! Type (E)xit: >";
}
else {
if (cnt < num)
"\nType (N)ext, or (E)xit: >";
else
"\nNo more hints! Type (E)xit: >";
}
j := true;
subresp := lower(input());
if (cnt < num) {
if (subresp = 'n' or subresp = 'next') {
++cnt;
break;
}
}
if (subresp = 'e' or subresp = 'exit') {
self.listhints;
cnt := -1;
break;
}
}
}
}
}
;
class hintitem: thing
;
class hintlist: thing
;
allhints: hintlist
sdesc = "Hints"
myhints = [
hint1 hint2 hint3 hint4 hint5 hint6 hint7 hint8 hint9 hint10 hint11
hint12 hint13 hint14
]
;
hint1: hintitem
sdesc="How do I reverse Uncle Foggy's practical joke?"
hintsseen = 0
myhints = [
'Have you tried using the Super Funky Chickenizer (pat. pending)?'
'Too bad it doesn\'t do anything.'
'Maybe you can find something in Uncle Foggy\'s lab, across the road.'
]
;
hint2: hintitem
sdesc="What do I do with the Super Funky Chickenizer (pat. pending)?"
hintsseen = 0
myhints = [
'Have you tried flipping the switch?'
'Doesn\'t do anything, does it?'
'Looks like you\'ll have to find some other way to reverse the process.'
]
;
hint3: hintitem
sdesc="What do I do with the Hedge Helpers (pat. pending)?"
hintsseen = 0
myhints = [
'Maybe cutting Uncle Foggy\'s hedges would help you deal with your grief.'
'No?'
'Then you might try attaching them to something.'
'Something about as broad as a man\'s shoulders.'
'Something like the buffalo\'s horns.'
]
;
hint4: hintitem
sdesc="What do I do with the Super-Bendy Balloon-Animal Balloon (pat. pending)?"
hintsseen = 0
myhints = [
'Make balloon animals, of course!'
'Or maybe you can attach it to something useful.'
'Like the bellows.'
'Or the straw.'
'Then use it to raise the window.'
'By putting it in the knot.'
'And inflating it.'
]
;
hint5: hintitem
sdesc="What do I do with the bellows?"
hintsseen = 0
myhints = [
'You could stoke up a nice hot fire.'
'Or maybe use it to inflate something.'
'Like the balloon.'
'Though attaching the balloon directly to the bellows doesn\'t do much good.'
'A go-between might help.'
'Like the straw.'
]
;
hint6: hintitem
sdesc="What do I do with the knot in the window?"
hintsseen = 0
myhints = [
'If you had a lever, maybe you could use it to raise the window.'
'You don\'t have a lever, but maybe you could put something else in the knot.'
'Like an uninflated balloon.'
'Attached to a straw.'
]
;
hint7: hintitem
sdesc="Where's that secret button?"
hintsseen = 0
myhints = [
'You\'ll know it when you see it.'
'Just get on the desk to press it.'
]
;
hint8: hintitem
sdesc="What do I do with the Buffalo-On-A-Spring (pat. pending)?"
hintsseen = 0
myhints = [
'Hmm, it stops at a point above the middle of the room.'
'Perhaps you could extend its reach.'
'By attaching something to it.'
'Or its horns.'
'Something like the Hedge Helpers.'
]
;
hint9: hintitem
sdesc="How do I get the window open?"
hintsseen = 0
myhints = [
'That\'s the big trick, isn\'t it?'
'You\'ll need to use a combination of objects found in the room.'
'You\'ll need the bellows.'
'And the Super-Bendy Balloon-Animal Balloon.'
'And the Rainbow Wacky Straw.'
'And the Hedge Helpers.'
'And the Buffalo-On-A-Spring.'
'And of course the knot in the window.'
]
;
hint10: hintitem
sdesc="How do I get across the road?"
hintsseen = 0
myhints = [
'That fox is fast.'
'But he can\'t stop a \(raging monster truck\).'
]
;
hint11: hintitem
sdesc="How do I start up the monster truck?"
hintsseen = 0
myhints = [
'Just like you would start up any car.'
'Turn the key.'
'Put it in gear.'
'Push the pedal and watch out!'
]
;
hint12: hintitem
sdesc="How can I shut up Julia Childs?"
hintsseen = 0
myhints = [
'Try turning off the television.'
'No?'
'Maybe you could call the tv station and ask them to change the program.'
'Oh yeah, no phone.'
'And you\'re a chicken, anyway.'
'Looks like you\'ll have to suffer through her program. Get over it.'
]
;
hint13: hintitem
sdesc="How do I get Santa's skeleton out of the chimney?"
hintsseen = 0
myhints = [
'Try using the Hedge Helpers (pat. pending).'
'Hedge Helpers (pat. pending) didn\'t help?'
'I\'m not surprised.'
'There is no skeleton in the chimney!'
]
;
hint14: hintitem
sdesc="How do I raise Uncle Foggy from the dead?"
hintsseen = 0
myhints = [
'Have you found Uncle Foggy\'s Zombie-O-Rama (pat. pending)?'
'You\'ll find it hidden beneath the hidden trap door.'
'You know, the one beneath the carpet.'
'Oh, waitaminute.'
'There is no trap door.'
'Sorry, wrong game!'
]
;
/*
hint?: hintitem
sdesc = ""
hintsseen = 0
myhints = [
]
;
*/
outside: room
-foyer:thing;
tv: fixeditem
balloon: item
bellows: item
helper: item
executor: Actor
sister: Actor
modify thing
modify Actor
-verbs:thing;