!  STIFFY.INF    --  Inform 6 source code by Drunken Bastard

Release 71;  ! "69 with two fingers up your ass." -- George Carlin

!Serial "980101";  !  Project abandoned after an attack of good taste.
Serial "069105"; ! I never had any taste

Constant MAX_SCORE 100;  !  10 "deeds," 10 points each, 100 points total.


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
   ^^^";

Constant DIALECT_US;

Constant TASKS_PROVIDED;
Constant NUMBER_TASKS 10;
Constant VOYEURISM 0;
Constant COPAFEEL 1;
Constant SUCKTIT 2;
Constant TITTYFUCK 3;
Constant KISS 4;
Constant BLOWJOB 5;
Constant LICK 6;
Constant FINGER 7;
Constant FUCK 8;
Constant SIXTYNINE 9;

Array task_scores -> 10 10 10 10 10 10 10 10 10 10;

Replace PrintTaskName;

Replace Score;

Include "Parser";

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;
       ];

Replace AfterPrompt;

Replace DeathMessage;

Include "Verblib";

Include "Grammar";

Verb "talk"
   * 'to' noun                         -> Chat;

Verb "chat"
   * 'with' noun                       -> Chat;

Extend only "kiss" replace
   * noun                              -> Kiss;

Extend only "blow" replace
   * noun                              -> Kiss;

Extend "eat" replace
   * noun                              -> Kiss;

Verb "suck" "lick" "eatout" "slurp" "chew" "bite" "munch" "tongue"
   * noun                              -> Kiss;

Extend only "fuck" replace
   * noun                              -> Fuck;

Extend only "screw" replace
   * noun                              -> Fuck;

Verb "bone" "do" "rape" "dick"
   * noun                              -> Fuck;

Verb "hotdoginabun"
   * noun                              -> Hotdoginabun;

Extend "touch" replace
   * noun                              -> Fondle;

Extend only "squeeze" replace
   * noun                              -> Fondle;

Extend only "rub" replace
   * noun                              -> Fondle;

Verb "finger" "fingerfuck" "honk" "jerk" "whack"
   * noun                              -> Fondle;

Verb "masturbate"
   *                                   -> Masturbate;

Verb "blowjob"
   *                                   -> Blowjob;

Verb "69"
   *                                   -> Sixtynine;

Verb "shoot" "fire"
   * noun 'with' noun                  -> Shoot
   * noun                              -> Shoot
   *                                   -> Shoot;

Extend only "throw" replace
   * noun                              -> Throw
   * noun 'at' noun                    -> Throw;

Extend "attack" replace
   * noun                              -> Attack
   * noun 'with' noun                  -> Attack;

Verb "xyzzy"
   *                                   -> Xyzzy;


[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.";
];

[PrintTaskName ach;
   switch (ach) {
    VOYEURISM: "Voyeurism";
    KISS: "Kissing";
    COPAFEEL: "Honking a Hooter";
    SUCKTIT: "Sucking a Tit";
    TITTYFUCK: "Tittyfucking";
    BLOWJOB: "Washing Tonsils";
    FINGER: "Ticklin' the Elmo";
    FUCK: "Fucking";
    LICK: "Munching Rug";
    SIXTYNINE: "Sixty-nine";
   }
];

!  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);
];

End;

------------------------------------------------------------------------

  The following is the "ported" code from the AGT version of "Stiffy," using
Robert Masenten's AGTOut utility (included with AGiliTy):

CMD 0: any any any any ===> 0 (fffffffe) [6]
  0:?FlagOFF  [Flg2]
  2:SetVariableTo  [Var1]    3
  5:!QuitThisCMD

CMD 1: any any any any ===> 6 (a) [8]
  0:?FlagON   [Flg2]
  2:?AtLocation    {5:Bedroom}
  4:SubtractFromVariable     [Var1]    1
  7:!QuitThisCMD

CMD 2: any any any any ===> e (1a) [10]
  0:?FlagOFF  [Flg1]
  2:?AtLocation    {5:Bedroom}
  4:?IsWearingNothing
  5:PrintMessage   (Msg8)

You feel highly embarrassed. You could have sworn you just heard
Pam giggle looking at your genitals.


  7:TurnFlagOn     [Flg1]
  9:!QuitThisCMD

CMD 3: remove clothes any any ===> 18 (2e) [5]
  0:PrintMessage   (Msg3)

You pull your clothes off. You can almost hear, off in the
distance, "Let's get ready to rumble!"


  2:GetIt     <301:big dick>
  4:!QuitThisCMD

CMD 4: get clothes any any ===> 1d (38) [3]
  0:Destroy   <301:big dick>
  2:!QuitThisCMD

CMD 5: fuck any any any ===> 20 (3e) [6]
  0:?AtLocation    {5:Bedroom}
  2:?IsWearingSomething
  3:PrintMessage   (Msg1)

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.


  5:!DoneWithTurn

CMD 6: fuck any any any ===> 26 (4a) [12]
  0:?AtLocation    {5:Bedroom}
  2:?NOT
  3:?IsCarrying    <306:lace bra>
  5:?OR
  6:?NOT
  7:?IsCarrying    <307:black panties>
  9:PrintMessage   (Msg2)

Get her clothes off first! (Trust me, it's better that way!)


 11:!DoneWithTurn

CMD 7: get skirt any any ===> 32 (62) [8]
  0:?InRoom   <304:loose skirt>
  2:PrintMessage   (Msg4)

You grab her skirt and pull it off.


  4:SendToRoom     <307:black panties> <5:Bedroom>
  7:!QuitThisCMD

CMD 8: get blouse any any ===> 3a (72) [8]
  0:?InRoom   <305:white blouse>
  2:PrintMessage   (Msg5)

You start to unbutton her blouse, say "The hell with this!" and
tear it off her.


  4:SendToRoom     <306:lace bra> <5:Bedroom>
  7:!QuitThisCMD

CMD 9: get panties any any ===> 42 (82) [8]
  0:?InRoom   <307:black panties>
  2:PrintMessage   (Msg7)

With no dexterity or finesse whatsoever, you slide your hands
inside her panties and pull 'em off!


  4:SendToRoom     <309:wet pussy>     <5:Bedroom>
  7:!QuitThisCMD

CMD 10: get bra any any ===> 4a (92) [8]
  0:?InRoom   <306:lace bra>
  2:PrintMessage   (Msg6)

You use your patented "Stiffy Makane One Finger Bra
Unstrap(perfected on blow-up dolls on so many Friday
nights)" and off it comes!


  4:SendToRoom     <308:big hooters>   <5:Bedroom>
  7:!QuitThisCMD

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.'


  4:TurnFlagOn     [Flg2]
  6:?FlagOFF  [Flg10]
  8:PlusScore 10
 10:TurnFlagOn     [Flg10]
 12:!DoneWithTurn

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.


  4:TurnFlagOn     [Flg2]
  6:?FlagOFF  [Flg13]
  8:PlusScore 10
 10:TurnFlagOn     [Flg13]
 12:!DoneWithTurn

CMD 13: feel hooters any any ===> 6c (d6) [13]
  0:?InRoom   <308:big hooters>
  2:PrintMessage   (Msg10)

HONK,HONK!


  4:TurnFlagOn     [Flg2]
  6:?FlagOFF  [Flg9]
  8:PlusScore 10
 10:TurnFlagOn     [Flg9]
 12:!DoneWithTurn

CMD 14: eat mouth any any ===> 79 (f0) [11]
  0:?InRoom   <310:pam's mouth>
  2:PrintMessage   (Msg11)

You kiss her sweet lips.  They taste like strawberries. (You ought to know

that PPP here doesn't require foreplay!)


  4:?FlagOFF  [Flg5]
  6:PlusScore 10
  8:TurnFlagOn     [Flg5]
 10:!DoneWithTurn

CMD 15: feel pussy any any ===> 84 (106) [13]
  0:?InRoom   <309:wet pussy>
  2:PrintMessage   (Msg12)

You clumsily grope around her genital area. Oh no! Your hand is

stuck! YANK! "EEEEEK!" Ahh, much better. I was scared for a second!


  4:TurnFlagOn     [Flg2]
  6:?FlagOFF  [Flg11]
  8:PlusScore 10
 10:TurnFlagOn     [Flg11]
 12:!DoneWithTurn

CMD 16: eat pussy any any ===> 91 (120) [13]
  0:?InRoom   <309:wet pussy>
  2:PrintMessage   (Msg13)

  4:TurnFlagOn     [Flg2]
  6:?FlagOFF  [Flg8]
  8:PlusScore 10
 10:TurnFlagOn     [Flg8]
 12:!DoneWithTurn

CMD 17: fuck pussy any any ===> 9e (13a) [13]
  0:?InRoom   <309:wet pussy>
  2:PrintMessage   (Msg14)

After much aggravation, you manage to get your phenomenal stiffy

inside the gates of heaven! 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,"she replies,"I just wish you'd get started!"


  4:TurnFlagOn     [Flg2]
  6:?FlagOFF  [Flg6]
  8:PlusScore 10
 10:TurnFlagOn     [Flg6]
 12:!DoneWithTurn

CMD 18: fuck woman any any ===> ab (154) [2]
  0:RedirectTo
  1:!QuitThisCMD
REDIR: fuck pussy any any ===> ad (158) [0]

CMD 20: fuck mouth any any ===> ad (158) [13]
  0:?InRoom   <310:pam's mouth>
  2:PrintMessage   (Msg15)

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.



(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.)


  4:TurnFlagOn     [Flg2]
  6:?FlagOFF  [Flg7]
  8:PlusScore 10
 10:TurnFlagOn     [Flg7]
 12:!DoneWithTurn

CMD 21: blowjob any any any ===> ba (172) [2]
  0:RedirectTo
  1:!QuitThisCMD
REDIR: fuck mouth any any ===> bc (176) [0]

CMD 23: fire woman with gun ===> bc (176) [24]
  0:?InRoom   <500:hot woman>
  2:?FlagON   [Flg2]
  4:?ScoreEquals   100
  6:PrintMessage   (Msg27)

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
b
away.  You could have sworn you heard one of them say, glancing

at her hooters, ~Lucky bitch!~


  8:Destroy   <500:hot woman>
 10:Destroy   <308:big hooters>
 12:Destroy   <309:wet pussy>
 14:Destroy   <310:pam's mouth>
 16:TurnFlagOff    [Flg2]
 18:PrintMessage   (Msg33)

       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.



Thanks for playing!



 20:WaitForReturn
 21:WaitForReturn
 22:WinGame
 23:!DoneWithTurn

CMD 24: fire woman with gun ===> d4 (1a6) [24]
  0:?InRoom   <500:hot woman>
  2:?FlagON   [Flg2]
  4:?ScoreLT  100
  6:PrintMessage   (Msg27)

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
b
away.  You could have sworn you heard one of them say, glancing

at her hooters, ~Lucky bitch!~


  8:Destroy   <500:hot woman>
 10:Destroy   <308:big hooters>
 12:Destroy   <309:wet pussy>
 14:Destroy   <310:pam's mouth>
 16:TurnFlagOff    [Flg2]
 18:PrintMessage   (Msg32)

Well that's it, I guess.  You've done it all.  Make sure to go back and

complete all the side quests 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!


 20:WaitForReturn
 21:WaitForReturn
 22:WinGame
 23:!DoneWithTurn

CMD 25: examine window any any ===> ec (1d6) [9]
  0:?InRoom   <302:open window>
  2:?FlagOFF  [Flg14]
  4:PlusScore 10
  6:TurnFlagOn     [Flg14]
  8:!QuitThisCMD

CMD 26: fire woman with gun ===> f5 (1e8) [7]
  0:?InRoom   <500:hot woman>
  2:?FlagOFF  [Flg2]
  4:PrintMessage   (Msg26)

You aren't finished with her yet!


  6:!DoneWithTurn

CMD 27: 69 any any any ===> fc (1f6) [12]
  0:?AtLocation    {5:Bedroom}
  2:?NOT
  3:?InRoom   <309:wet pussy>
  5:?OR
  6:?NOT
  7:?InRoom   <308:big hooters>
  9:PrintMessage   (Msg2)

Get her clothes off first! (Trust me, it's better that way!)


 11:!DoneWithTurn

CMD 28: 69 any any any ===> 108 (20e) [17]
  0:?AtLocation    {5:Bedroom}
  2:?InRoom   <308:big hooters>
  4:?InRoom   <309:wet pussy>
  6:PrintMessage   (Msg28)

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....

      ~You start sucking, then I'll start,~ you say.

      ~Fat chance of that,~ says Pamela.

Hmmph!


  8:TurnFlagOn     [Flg2]
 10:?FlagOFF  [Flg12]
 12:PlusScore 10
 14:TurnFlagOn     [Flg12]
 16:!DoneWithTurn

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

falls to the floor.


  4:Destroy   <501:ugly man>
  6:TurnFlagOn     [Flg0]
  8:!DoneWithTurn

CMD 33: any any any any ===> 132 (262) [10]
  0:?AtLocation    {5:Bedroom}
  2:?InRoom   <501:ugly man>
  4:?VariableEquals     [Var2]    0
  7:PrintMessage   (Msg20)

Pam says, ~I don't need those undies, but it makes things more

enjoyable for the next guy!~


  9:!QuitThisCMD


Verb Synonyms:

eat--suck, lick, eatout, slurp, chew, bite, munch, swallow, tongue, kiss, blow

dummy_verb1--feel, grope, fondle, finger, fingerfuck, squeeze, rub, honk,
jerk, whack
dummy_verb2--fuck, bone, do, hotdoginabun, rape, dick, screw
dummy_verb3--blowjob
dummy_verb4--69
dummy_verb5--masturbate