Constant Story "^STIFFY MAKANE: Inform Edition";
Constant Headline "^
^Original AGT Master's Edition Game by Mark Ryan
^Copyright (c) 1997 Mark's Old-Fashioned Extra Chewy Chocolate
^Chip Vacuum Cleaners International
^^MST3K Edition:
^Written by Dastardly Coward and Drunken Bastard
^Coded by Drunken Bastard and Dastardly Coward
^^Based largely upon code hacked from MST3K1 \
(~Detective~) By C.E. Forman and Gareth Rees
^^Inform Edition:
^Adapted from MST3K Edition by Drunken Bastard
^^^";
Object LibraryMessages
with
before
[i j;
Prompt: print "^> ";
rtrue;
Score:
print "^Your score is ",score," (out of 100 possible).^";
j=0;
objectloop ( i ofclass AGTRoom)
{
if (i has visited) j++;
}
print "You have visited ",j," locations (out of 4 in the game)";
rtrue;
];
[ThrowSub;
if (second == nothing)
{
print "You throw ",(the) noun,".^",(The) noun," soars \
through the air toward the that and lands with a^\
~thud~ next to it.^";
move noun to location;
rtrue;
}
if (noun notin player)
{
"You don't seem to have ",(the) noun,".";
}
if ((second == pam) && (noun ~= gun))
{
print (The) noun," soars through the air toward the pamela. \
It's a direct hit!^The pamela screeches and gives you a \
puzzled look, clearly confused by^your actions. She \
retreats a few inches, watching you more carefully^than \
before, but still doesn't seem hostile.^";
move noun to location;
rtrue;
}
if (second == pam)
{
print "The pamela soars through the air toward the pamela. \
It's a direct hit!^The pamela screeches and gives you a \
puzzled look, as if she^couldn't understand why you \
would want to hurt her. She writhes in^agony and fades \
away in a cloud of white smoke, but never seems even a \
bit^angry; only confused, upset, and perhaps betrayed.^";
remove pam;
move noun to location;
rtrue;
}
else
{
print "You throw ",(the) noun,".^",(The) noun," soars \
through the air toward ",(the) second," and lands with a^\
~thud~ next to it.^";
move noun to location;
rtrue;
}
];
[ChatSub;
"Talking to ",(the) noun," is kind of silly, since ",(the) noun,
"can't talk back.";
];
[FuckSub;
"Sorry, you can't do that....";
];
[FondleSub;
"Sorry, you can't do that....";
];
[MasturbateSub;
"Sorry, you can't do that....";
! Never used, but defined in AGT code.
];
[BlowjobSub;
<<Fuck Mouth>>;
];
[SixtynineSub;
if ((player in bedroom) && (pussy in bedroom) && (hooters in bedroom))
{
print "You turn yourself upside down and begin licking her \
pussy. She begins to suck ^dick. This is great! Hey, \
wait a second! Did she stop sucking! ~Well, if she \
^won't, then I won't!~ you think. ^Six hours Later.... ^";
print " ~You start sucking, then I'll start,~ you say. ^ \
~Fat chance of that,~ says Pamela.^Hmmph!^";
Achieved(SIXTYNINE);
if (player has general)
{
print "Sorry, you can't do that....^";
}
give player general;
give player visited;
} else
{
"Sorry, you can't do that....^";
}
rtrue;
];
[ShootSub;
"Sorry, you can't do that....^";
];
[WearDragSub;
rfalse;
];
[XyzzySub;
print "^I don't understand 'xyzzy' as a verb.^";
];
[HotdoginabunSub;
<<Fuck noun>>;
];
[EveryTurn i;
if (player == nothing) rtrue;
if ((player hasnt scored) && (player in bedroom))
{
objectloop ( i in player)
{
if (i has worn) rtrue;
}
print "You feel highly embarrassed. You could have sworn you \
just heard^Pam giggle looking at your genitals.^";
give player scored;
rtrue;
}
if ((Frankie in bedroom) && (player in bedroom) && (Frankie hasnt scored))
{
print "Pam says, ~I don't need those undies, but it makes \
things more^enjoyable for the next guy!~^";
! Never reached, but in the original AGT code, so....
give Frankie scored;
rtrue;
}
if (Frankie.time_left < 4)
{
style underline;
print "The frankie appears to be getting angrier.^";
style roman;
}
];
[Deathmessage;
if (deadflag == 3) print "Congratulations. You have won the \
game.";
if (deadflag == 4) print "Congratulations. You have won the \
game.";
];
! Hacked from Inform Designer's Manual. Emulates AGT Master's title box.
[ TitlePage i;
@erase_window -1;
print "^
^^^^^^^^^^^^";
i = 0->33; if (i==0) i=80; i=(i-50)/2;
style roman; print "^^^";
! style roman;
print "^";
font on;
box " The Incredible Erotic Adventures"
" of Stiffy Makane!"
" version 2.0"
"Designed, written, programmed, and otherwise MADE"
" by Mark Ryan."
""
" (C) 1997"
" Mark's Old-Fashioned Extra Chewy Chocolate"
" Chip Vacuum Cleaners International"
" Chip Vacuum Cleaners International";
print " [Please press SPACE.]^";
do { @read_char 1 0 0 i; } until (i==32 or 10 or 13);
@erase_window -1;
];
[ Instructions i;
print "^^This game is really really good. If you disagree, screw
you. The instructions
^are obvious to anyone with an IQ over that of a three-toed sloth, so it's no
^surprise to me at all that you pressed Y!^^";
print "^ (Please excuse the harsh manners of my 8th grade self.)
^^ There are a possible 100 points to be attained, see if you can
figure
^out everything. Anyone who achieves 100 points can wear the title of ~Grand
^High Pervert~ and will learn the mysterious STIFFY SECRET.^^";
print "^ The original version contained a visit from Pamela's husband, but
^I wasn't able to get it to work right in this version. Expect to see him in
^the future, along with more perversions.
^ Shouts go out to the appropriate people: Patrick Swesey, for giving
^me the inspiration;^";
print "Chris Cappelletti, who REALLY WANTED the game;^";
print "anybody
^else who I went to 8th grade with and motivated me to write a game, whether
^through encouragement or ostracization; people with crappy computers - this
^piece of crap will run on a freaking ABACUS;^";
print"anyone who actualy plays the
^game to its conclusion; anyone who plays the game to its conclusion and
^DOESN'T
^write me a death threat; anyone who's never said something that rhymed by
^accident; and to anyone who has ever used the word ~retrograde~ (my
favorite.)
^^^Thanks for playing.
^^^^[Please spress SPACE]^^^";
do { @read_char 1 0 0 i; } until (i==32 or 10 or 13);
@erase_window $ffff;
];
Class AGTRoom
has light
with n_to [; print "You can't go n from here!^"; return self; ],
s_to [; print "You can't go s from here!^"; return self; ],
e_to [; print "You can't go e from here!^"; return self; ],
w_to [; print "You can't go w from here!^"; return self; ],
u_to [; print "You can't go u from here!^"; return self; ],
d_to [; print "You can't go d from here!^"; return self; ],
ne_to [; print "You can't go ne from here!^"; return self; ],
nw_to [; print "You can't go nw from here!^"; return self; ],
se_to [; print "You can't go se from here!^"; return self; ],
sw_to [; print "You can't go sw from here!^"; return self; ],
in_to [; print "You can't enter anything here.^"; return self; ],
out_to [; print "You're not inside anything that you can exit.^"; return self; ],
;
Class AGTObject
with after [;
Take: print_ret "You are now carrying ", (the) self, ".";
Drop: print_ret "You drop ", (the) self, ".";
],
before [;
Kiss: print_ret "Eat ", (the) self, "? You must be \
kidding!";
Attack: "It really would make more sense to specify a \
living creature. Hostility^really requires a target of \
some sort.";
],
;
AGTRoom Pamelas_House "Public Pussy Pamela's house"
with
describe [; print "You are outside Public Pussy \
Pamela's house. North leads into the ^house, East leads behind her \
house.^";
],
n_to Inside_House,
e_to Behind_House,
daemon [;
EveryTurn();
],
has light;
AGTRoom Behind_House "Bathroom Window"
with
describe [; "You are behind Pamela's house."; ],
w_to Pamelas_House,
has light;
AGTObject->windowpane "window"
with
describe [; print " A window is here. Hooters!^";
rtrue;],
name "window" "open window" "pane" "glass",
description [; print "^You glance in at Pam's bathroom window. She is wearing
nothing but
^a towel. She drops it, revealing her two(is it two?, your vision's
^blurring)
^hooters, jiggling as she steps into the shower. Soon the water
^moistens her
^already delicious skin. Dear Lord! She's slowly rubbing the soap
^all over her body. Around her tits, between her thighs, and
^--Whoops! She dropped it! Pick it up, come on.... YOWZA!(Don't you
^just hate text adventures? Now would be a good time to turn up the
^fan on your computer!)^";
Achieved(VOYEURISM);
rtrue;
],
before [;
Search:
<<Examine windowpane>>;
],
after [;
Take:
rfalse;
],
! has static;
! You'd think, wouldn't you? But no.
;
AGTRoom Inside_House "Inside house"
with
describe [; print "You are in Pamela's house. \
Bedroom....North....GO!^";
rtrue;
],
n_to Bedroom,
s_to Pamelas_House,
has light;
AGTRoom Bedroom "Bedroom"
with
describe [; print "You are in Pamela's bedroom! Hallelujah!^";
],
s_to Inside_House,
has light
;
AGTObject->pam "hot woman"
with
describe [; " Public Pussy Pamela is here!"; ],
description [;
print
"^Fuckherfuckherfuckherfuckherfuckherfuckherfuckher\
fuckherfuckherfu^ckher!^";
],
name "woman" "babe" "chick" "bitch" "slut" "whore" "pamela" "pam" "girl"
"lady" "hot",
before [i;
Take: "As you reach for her, the pamela seems happy to be
touched, but as soon as she realizes you want to take her,
she slips from your grasp.";
! Kiss: <<Kiss mouth>>; ! I gave Mark too much credit.
Chat: print "You spend a few minutes in pleasant conversation \
with the pamela.^However, you don't learn anything \
that you didn't already know.^";
rtrue;
Fuck:
if (pussy in bedroom)
{
<<Fuck pussy>>;
}
print "Get her clothes off first! (Trust me, it's better \
that way!)^";
rtrue;
Attack: if (second == nothing)
{
print "You grab the pamela with your bare hands and \
attempt to strangle her.^She writhes in your \
fingers and slip free, scratching you in the \
process.^She crawls away from you, gasping for \
breath. The pamela seems^puzzled and confused by \
your actions, and seems upset, but not hostile.^";
rtrue;
}
<<Throw noun pam>>;
Shoot:
if (second ~= gun)
{
"Sorry, you can't do that...";
}
if (player hasnt visited)
{
print "You aren't finished with her yet!^";
rtrue;
}
print "You decide that you are too jealous to let any \
other guy have^her, so you whip out your Uzi and \
dispatch her. Angels come down to take her^away. You \
could have sworn you heard one of them say, \
glancing^at her hooters, ~Lucky bitch!~^";
if (score < 100)
{
print"Well that's it, I guess. You've done it all. \
Make sure to go back and^complete all the side \
quests^";
print "you didn't finish this time and....oh \
who^am I kidding?^^The maximum score was \
100...how many points did you get?^^^Thanks for \
playing!";
print " --- HIT ANY KEY ---^";
@read_char 1 i;
print " --- HIT ANY KEY ---^";
@read_char 1 i;
deadflag = 3;
rtrue;
}
print " Congratulations! You achieved all 100 points! You can now proudly^
wear the title of ~Grand High Pervert~!^^ \
Now that you have proven your worth, you are eligible to learn the^Stiffy Secret, sought after by many (well not that many), learned by only a^precious few.^\
The Stiffy Secret is this.......^^\
The capital of North Dakota is Bismarck.^^";
print " --- HIT ANY KEY ---^";
@read_char 1 i;
print " --- HIT ANY KEY ---^";
@read_char 1 i;
print "Thanks for playing!^";
deadflag=4;
rtrue;
],
has static,
;
AGTObject->skirt "loose skirt"
with
describe [; " Her skirt is short, but not short enough!"; ],
description "^Her skirt is short, but not short enough!^",
name "skirt" "dress" "loose",
before [;
Take: if (skirt in player) "^You already have the loose skirt!";
move panties to bedroom;
print "You grab her skirt and pull it off.^";
if ((player notin bedroom) && (skirt notin player))
{
}
rfalse;
Drop: remove panties;
rfalse;
Wear: WearDragSub();
rfalse;
],
has clothing,
;
AGTObject->blouse "white blouse"
with describe [; print " Her blouse is screaming, ~Get me away \
from these two sharp points!~^";
rtrue;
],
description "^Her blouse is screaming, ~Get me away from these \
two sharp points!~^",
name "blouse" "shirt" "top" "white",
before [;
Take: if (blouse in player) "^You already have the white blouse!";
move bra to bedroom;
print "You start to unbutton her blouse, say ~The hell \
with this!~ and^tear it off her.^";
if (player notin bedroom)
{
if (blouse has worn)
{
}
}
rfalse;
Drop: remove bra;
rfalse;
Wear: WearDragSub();
rfalse;
],
has clothing,
;
AGTObject -> panties "black panties"
with
name "panties" "undies" "underwear" "lace" "black",
describe [; " She is wearing black lace panties. Hopefully, not for
long!"; ],
description [;
print "^She is wearing black lace panties. Hopefully, not for \
long!^";
],
before [;
Take:
if (panties in player) "^You already have the black \
panties!";
print "With no dexterity or finesse whatsoever,^";
print "you slide your hands^inside her panties and pull \
'em off!^";
if ((self notin bedroom) && (self notin player))
{
rfalse;
}
Wear: WearDragSub();
rfalse;
],
after [;
Take: move pussy to bedroom;
rfalse;
Drop: remove pussy;
rfalse;
],
has clothing,
;
AGTObject -> bra "lace bra"
with
name "bra" "lace",
describe [; " Her bra is on her. Can't you type any faster?"; ],
description [;print "^Her bra is on her. Can't you type any \
faster?^";
],
before [;
Take:
if (self in player) "^You already have the lace bra!";
print "You use your patented ~Stiffy Makane One Finger
Bra^Unstrap(perfected on blow-up dolls on so many
Friday^nights)~ and off it comes!^";
rfalse;
Wear: WearDragSub();
rfalse;
],
after [;
Take: move hooters to bedroom;
rfalse;
Drop: remove hooters;
rfalse;
],
has clothing,
;
AGTObject->mouth "pam's mouth"
with
describe [; " Her mouth looks like a good place to put something!"; ],
description "^Her mouth looks like a good place to put \
something!^",
before [ i ;
Kiss: print "You kiss her sweet lips. They taste like \
strawberries. (You ought to know^that PPP here doesn't \
require foreplay!)^";
Achieved(KISS);
if (self has general)
{
print "The mouth slides down your throat, and your \
stomach quickly is full.^";
}
give self general;
rtrue;
Fuck:
objectloop ( i in player)
{
if (i has worn)
{
"At this point, you're not TOO desperate to get \
your clothes^off first. What's that? You are \
that desperate? Well^do it anyway.^";
}
}
print "You beg and beg Pam to administer a blowjob. \
After a very short time,^she agrees. You feel the \
front end of your huge penis touch her front^teeth! \
After what seems like a very short time(which it \
is), you have^your moment of Shangri-La.^";
give player visited;
Achieved(BLOWJOB);
print "(You have to understand that I wrote this game in \
8th grade, during^which period I was an avid \
listener of the Grease Man (if the name^doesn't ring \
a bell, congratulate yourself). And he used the \
word^Shangri-la to describe orgasm. I'm sorry.)^";
if (self has scored)
{
print "Sorry, you can't do that....^";
}
give self scored;
rtrue;
],
name "mouth" "lips" "lip" "pam^s",
has static,
;
AGTObject -> hooters "big hooters"
with
describe [; print " Check out those hooters. Uuuuuhhhhhhhh!^";
rtrue;
],
description [; print "^I didn't write this game for you to
LOOK!^";
rtrue;
],
before [ i;
Fuck:
objectloop ( i in player)
{
if (i has worn)
{
"At this point, you're not TOO desperate to get \
your clothes^off first. What's that? You are \
that desperate? Well^do it anyway.^";
}
}
print "You put your humongous dick between her soft \
titties. This is^pretty fun! Pwoik,pwoik,pwoik! Oh \
dear lord it's stuck! Pam says, ~Oh^brother, do I \
have to take them down AGAIN!? She tugs her nipples \
quickly,^creating a hissing sound. Her hooters are \
shrinking! After you free your^weapon from its \
confinement, she asks you to please blow them back \
up,^which you gladly do.^";
Achieved(TITTYFUCK);
give player visited;
if (self has scored)
{
print "Sorry, you can't do that....^";
}
give self scored;
rtrue;
Fondle:
print "HONK,HONK!^";
Achieved(COPAFEEL);
give player visited;
if (self has general)
{
print "Sorry, you can't do that....^";
}
give self general;
rtrue;
Kiss:
Achieved(SUCKTIT);
print "You slide your tongue around both of her nipples. \
She moans^faintly. You close your mouth around her \
left hooter and suck passionately^and then go for \
the right until she's screaming. You ask, ~Was I \
that good?~ She responds, ~No, I was just thinking \
about the film `Cabin Boy.'^";
give player visited;
if (self has visited)
{
print "The hooters slides down your throat, and your \
stomach quickly is full.^";
}
give self visited;
rtrue;
],
name "big" "hooters" "tits" "knockers" "breasts" "hooter" "tit" "knocker",
has static,
;
AGTObject -> pussy "wet pussy"
with
describe [; " That area between her legs looks inviting."; ],
description [; print "^I didn't write this game so you could LOOK,
turkey!^";
rtrue;
],
name "pussy" "cunt" "vagina" "cave",
before [ i ;
Kiss: print "You crawl down to her pussy in your usual \
studly style, and begin^licking. It tastes so good, \
you can't stop!^(Who would have guessed there would \
be a butterscotch candy up there?)^";
give player visited;
Achieved(LICK);
if (self has general)
{
print "The pussy slides down your throat, and your \
stomach quickly is full.^";
}
give self general;
rtrue;
Fondle: print "You clumsily grope around her genital area. Oh
no! Your hand is^stuck! YANK! ~EEEEEK!~ Ahh, much
! better. I was scared for a second!^";
give player visited;
Achieved(FINGER);
if (self has visited)
{
print "Sorry, you can't do that...^";
}
give self visited;
rtrue;
Fuck:
objectloop ( i in player)
{
if (i has worn)
{
"At this point, you're not TOO desperate to get \
your clothes^off first. What's that? You are \
that desperate? Well^do it anyway.^";
}
}
Achieved(FUCK);
give player visited;
print "After much aggravation, you manage to get your \
phenomenal stiffy^inside the gates of heaven!^";
print "You move in and out, faster and faster!^\
Aaaaaaaaaaaahhhhhhhhhhhhahhhhhhhhhh! For some \
reason, Pam doesn't^respond. ~What's \
wrong,baby?~You ask her.~Nothing's wrong,^sugar,~^";
print "she replies,~I just wish you'd get started!~^";
if (self has scored) {
print "Sorry, you can't do that....^";
}
give self scored;
rtrue;
Take: print "Sorry, but it is impossible to get the \
pussy.^";
],
has static,
;
AGTObject clothes "man's clothes"
with
describe [ i ; print " Your clothes are on the floor so you must \
be....NAKED!^";
objectloop ( i in player)
{
if (i has worn) {
}
}
rtrue;],
description [; print "^Your clothes are outdated and ugly. \
(Someone had to tell you!)^";
],
name "clothes",
after [;
Drop: move stiffy to player;
Take: remove stiffy; ! Yeah, I know!
Disrobe: print "You pull your clothes off. You can almost
hear, off in the distance, ~Let's get ready to
rumble!~^";
rfalse;
],
has worn clothing;
AGTObject gun "big gun"
with
describe [; " Your gun is on the ground."; ],
description [;print "^BIG GUN KICK THE HELL OUTTA YOU!^";
],
name "gun" "uzi" "weapon" "blaster" "big",
;
AGTObject stiffy "big dick"
with
describe [; print " Your stiffy is big and greasy.^";
rtrue;],
description [; print"^Check out the size of that stiffy! \
That's got to be two....three^";
print "inches!^";
rtrue;
],
name "dick" "penis" "willy" "lovepole" "boner" "stiffy" "off",
;
AGTObject Frankie "ugly man"
with
describe [; " Uh oh, it's her husband. You are in trouble now!"; ],
description [;
print "^This is Frankie, Pamela's husband(lucky guy, eh?).^";
],
name "man" "ugly" "stiff" "husband" "freak" "loser" "guy",
before [ i;
Shoot:
if (second ~= gun) rfalse;
print "Drawing your OTHER weapon, you pump Frankie full of \
lead.^";
print "He^falls to the floor.^";
StopTimer(Frankie);
remove Frankie;
print " [press any key]^";
@read_char 1 i;
@erase_window -1;
rtrue;
Chat:
print "You spend a few minutes in pleasant conversation \
with the frankie.^However, you don't learn anything \
that you didn't already know.^";
],
time_left 5,
time_out [;
style underline;
print "^The frankie seems to calm down for a moment,^but \
suddenly attacks.^Its mouth opens to reveal^teeth \
grotesquely out of proportion to the rest^of its \
body, a fact you notice as those same^teeth tear \
your flesh into tiny pieces.^";
style roman;
deadflag = 1;
rtrue;
],
;
[ Initialise;
TitlePage();
Instructions();
Location = Pamelas_House;
lookmode = 2; ! Replicates AGT's "verbose" room display.
notify_mode = 0; ! No score notification
move clothes to player;
move gun to player;
remove bra;
remove panties;
remove hooters;
remove pussy;
StartDaemon(Pamelas_house);
];
CMD 11: eat hooters any any ===> 52 (a2) [13]
0:?InRoom <308:big hooters>
2:PrintMessage (Msg9)
You slide your tongue around both of her nipples. She moans
faintly. You close your mouth around her left hooter and suck passionately
and then go for the right until she's screaming. You ask, "Was I that good?"
She responds, "No, I was just thinking about the film `Cabin Boy.'
CMD 12: fuck hooters any any ===> 5f (bc) [13]
0:?InRoom <308:big hooters>
2:PrintMessage (Msg16)
You put your humongous dick between her soft titties. This is
pretty fun! Pwoik,pwoik,pwoik! Oh dear lord it's stuck! Pam says, "Oh
brother, do I have to take them down AGAIN!? She tugs her nipples quickly,
creating a hissing sound. Her hooters are shrinking! After you free your
weapon from its confinement, she asks you to please blow them back up,
which you gladly do.
CMD 29: any any any any ===> 119 (230) [10]
0:?FlagOFF [Flg4]
2:?AtLocation {5:Bedroom}
4:?InRoom <501:ugly man>
6:RedirectTo
7:TurnFlagOn [Flg4]
9:!QuitThisCMD
REDIR: look man any any ===> 123 (244) [0]
CMD 31: any any any any ===> 123 (244) [6]
0:?FlagON [Flg3]
2:SubtractFromVariable [Var2] 1
5:!QuitThisCMD
CMD 32: fire man with gun ===> 129 (250) [9]
0:?InRoom <501:ugly man>
2:PrintMessage (Msg17)
Drawing your OTHER weapon, you pump Frankie full of lead. He