! STIFFMST.INF -- Inform 6 source code by Dastardly Coward ! -- and Drunken Bastard Release 69; !Serial "980101"; ! Project abandoned after an attack of good taste. Serial "690609"; ! I never had any taste Constant MAX_SCORE 100; ! 10 "deeds," 10 points each, 100 points total. Constant Story "^STIFFY MAKANE: Mystery Science Theater 3000"; Constant Headline "^^An Interactive MiSTing ^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^^^"; 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; Global Xyzzytimes = 0; Include "Parser"; Object LibraryMessages with before [i j; Prompt: print "^> "; rtrue; Score: if (deadflag == 4) { style bold; print "^STINGER: HONK, HONK!^^"; style roman; } 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.^"; Quip(0,1,TOM,"~The that?~",1,0); Quip(0,0,MIKE,"AGT Parser. Cute, eh?",2,0); 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.^"; Quip(0,1,CROW,"An interesting look into the mind of Mark \ Ryan...",1,0); Quip(0,0,MIKE,"Or the AGT parser.",2,0); 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; Quip(0,1,CROW,"What. The. Fuck.",1,0); Quip(0,0,TOM,"I think it's the player who's been betrayed \ here.",2,0); 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.^"; Quip(0,1,MIKE,"Like Mark's prose.",2,0); move noun to location; if (noun == stiffy) Quip(0,1,MIKE,"Oooo. That's *gotta* \ hurt!",2,0); 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; <>; ]; [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.... ^"; Quip(3,1,CROW,"Twenty-twenty-four hours ago,",1,0); Quip(3,0,ALL,"I wanna be sedated!",2,0); print " ~You start sucking, then I'll start,~ you say. ^ \ ~Fat chance of that,~ says Pamela.^Hmmph!^"; Achieved(SIXTYNINE); Quip(0,1,MIKE,"It was the summer of...",1,0); Quip(0,0,ALL,"SIXTY-NINE!",2,0); if (player has general) { print "Sorry, you can't do that....^"; Quip(0,1,CROW,"I can too! 138!",2,0); Quip(1,1,CROW,"Whee! 207!",2,0); Quip(3,1,CROW,"Oh, never mind. I'm bored.",2,0); } give player general; give player visited; } else { "Sorry, you can't do that....^"; } rtrue; ]; [ShootSub; "Sorry, you can't do that....^"; ]; [WearDragSub; Quip(0,1,CROW,"Hey! That makes you look at little like J. Edgar \ Hoover!",2,0); Quip(1,1,MIKE,"[wolf whistle]",2,0); Quip(2,1,TOM,"Hello, sailor!",2,0); Quip(3,1,MIKECROW,"Hiya, little lady.",2,0); Quip(5,1,MIKE,"Does your psychiatrist know about this fetish?", 2,0); rfalse; ]; [XyzzySub; print "^I don't understand 'xyzzy' as a verb.^"; Quip(0,1,HOLLOWVOICE,"Fool.",2,0); Quip(1,1,HOLLOWVOICE,"Bite me.",2,0); Quip(2,1,HOLLOWVOICE,"Blow me.",2,0); Quip(3,1,HOLLOWVOICE,"Piss off.",2,0); Quip(4,1,HOLLOWVOICE,"Stop it.",2,0); Quip(5,1,HOLLOWVOICE,"STOP IT!",2,0); Quip(6,1,HOLLOWVOICE,"LEAVE ME ALONE!",2,0); Quip(7,1,HOLLOWVOICE,"LOOK, YOU TURD-SUCKING IMBECILE, GO SODOMIZE \ A GOAT!",2,0); Quip(8,1,HOLLOWVOICE,"WHAT DID I EVER DO TO YOU?",2,0); Quip(9,1,HOLLOWVOICE,"I'LL KILL YOU, I SWEAR TO GOD!",2,0); Quip(10,1,HOLLOWVOICE,"I MEAN IT! I'LL KILL YOUR UGLY ASS!",2,0); Quip(11,1,HOLLOWVOICE,"THAT'S IT, YOU SONOFABITCH!",2,0); Xyzzytimes++; if (Xyzzytimes == 12) deadflag = 1; ]; [HotdoginabunSub; Quip(0,1,TOM,"~Hotdoginabun?!~",1,0); Quip(0,0,MIKE,"As stupid synonyms for ~fuck~ go...",1,0); Quip(0,0,CROW,"What a sad and pathetic life you lead, Mark.",2,0); Quip(1,1,MIKE,"It was slightly amusing the first time.",2,0); Quip(2,1,TOM,"That's enough.",2,0); Quip(3,1,CROW,"Quit it!",2,0); Quip(4,1,ALL,"THAT WILL BE ALL, THANK YOU!",2,0); <>; ]; [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.^"; Quip(0,1,CROW,"Isn't ~genitals~ a mighty big word for you, \ Mark?",2,0); 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!~^"; Quip(0,1,MIKE,"Especially if he's playing a different \ adventure.",2,0); ! Never reached, but in the original AGT code, so.... give Frankie scored; rtrue; } if ((player in Endgame) && (Frankie.time_left < 4)) { style underline; print "The frankie appears to be getting angrier.^"; style roman; Quip(0,1,TOM,"Why is it all funny-looking like that?",1,0); Quip(0,0,MIKE,"Text that wasn't in the original game.",1,0); Quip(0,0,CROW,"You're so smart!",1,0); Quip(0,0,MIKE,"No, I just read the source. And...",1,0); Quip(0,0,CROW,"What?",1,0); Quip(0,0,MIKE,"If the player doesn't shoot him quick \ it'll get ugly.",1,0); } ]; [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"; } ]; ! The Quip system is stolen from MST3K1.INF, with the style parameter ! added by Drunken Bastard ! ! Not satisfied with my own bashing of "Detective"? Now you can have Mike ! and the bots shout out your very OWN comments! Here's how it works: ! ! A printing routine is used since a number of features are tricky to ! implement. First, for readability, the text should be printed with a ! hanging indent, as in a screenplay, and the Z-machine text-printing ! routines don't do this automatically. Second, to avoid cluttering up ! the room descriptions, some of the comments should appear the first time ! a description is printed, and others the second time. ! ! Consider the following function call: ! ! Quip(n,ns,bot,text,ne,sty); ! ! where `n' says how many times to let this go by before printing, ! `ns' is the number of new-lines before the quip, ! `bot' says which robot (or character) should produce the quip, ! `text' is the packed address of the quip itself, and ! `ne' is the number of new-lines after the quip. ! 'sty': 0=bold; 1=roman; 2=underline; 3=reverse ! ! Then a call like: ! ! Quip(0,2,MIKE,"I'm not wearing any pants!",2,0); ! ! gets printed the first time the function is called, producing something ! like this (on a very narrow screen): ! ! MIKE: I'm not wearing ! any pants! ! ! The second time the function is called, the message isn't printed ! (because it's been seen already). On the other hand, a call like ! ! Quip(1,2,MIKE,"I'm not wearing any pants!",2,0); ! ! gets ignored the first time the function is called, gets printed the ! second time the function is called, and ignored thereafter. ! ! Quip(1,2,MIKE,"I'm not wearing any pants!",2,1); ! ! does the same thing, but in roman rather than bold. ! ! Some quips only ever get printed once during a game (for example, those ! in the introduction, epilogue, and any that appear when the player dies). ! It would be pointless to record how many times these have been seen, so ! they use a first argument to `Quip' of -1. The same holds true for the ! quips in the essay "On the Not-Quite-Making of MST3K2". ! ! Gareth Rees is to be credited for this excellent system, which easily ! whips my own cheesy technique of setting attributes in each room to ! control the appearance of quips. ! ! Proportional fonts kind of confuse the system, but that's life. Constant MIKE 1; Constant TOM 2; Constant CROW 3; Constant ALL 4; Constant CROWTOM 5; Constant MIKECROW 6; Constant GYPSY 7; Constant FRANK 8; Constant DRF 9; Constant FRANKSVOICE 10; Constant DRFSVOICE 11; Constant HOLLOWVOICE 12; Constant CONTINUE 13; ! The names of the characters follow. The dummy name CONTINUE just prints ! six spaces, which is the width of the hanging indent. It is used to ! split one long speech that would otherwise overflow the print buffer. An ! alternative would be to make the print buffer longer, but since it's an ! array that must be statically allocated, that wastes space in the Z-code. Array BotName --> "MIKE: " "TOM: " "CROW: " "ALL: " "CROW & TOM: " "MIKE & CROW: " "GYPSY: " "FRANK: " "DR.F: " "FRANK'S VOICE: " "DR.F'S VOICE: " "HOLLOW VOICE: " " "; ! The number of characters by which the names overlap the 7-character ! hanging indent. These numbers are needed to get the length of the first ! printed line correct. Array BotLength -> 0 0 0 0 5 6 0 0 0 8 7 7 0; ! An array which contains the packed address of every quip seen so far, ! and another array containing the number of times each quip has been seen ! before: Constant NUMBER_QUIPS 500; ! Total number of quips in the game Global NoQuipsSeen = 0; ! How many quips seen so far Array QuipsText --> NUMBER_QUIPS; ! Array of quip text seen Array QuipsNumber -> NUMBER_QUIPS; ! Array of number times seen ! What the Quip function does is to see if it has been called before with ! the same text. If so, it increments the appropriate member of the ! `QuipsNumber' array. If not, it increases `NoQuipsSeen' by 1, and stores ! the address of the text in the `QuipsText' array, and puts 0 in the ! corresponding place in the `QuipsNumber' array. ! ! The robot names are printed with the proportional font turned off, so ! that the hanging indent will line up, and the function `HangingIndent' ! is called to do that actual printing. [ Quip n ! the number of times the quip should be ignored before printing ns ! the number of newlines at the start of the quip bot ! the bot (characters) who says the quip text ! the packed address of the text of the quip ne ! the number of newlines at the end of the quip sty ! how to display it i; ! the quip's index in the `QuipsText' and `QuipsNumber' arrays ! If `n' is -1, don't bother to store the quip because it can't ! possibly be seen twice. if (n == -1) jump QuipPrint; ! Have we seen this quip before? If so, increment the count of times ! seen, taking care not to overflow. for (i = 0 : i < NoQuipsSeen : i++) { if (text == QuipsText-->i) { if (QuipsNumber->i < 255) QuipsNumber->i = QuipsNumber->i + 1; jump QuipFound; } } ! If we haven't seen it before, add it to the array if (NoQuipsSeen >= NUMBER_QUIPS) "** Error: out of quip space **"; i = NoQuipsSeen; NoQuipsSeen ++; QuipsText-->i = text; QuipsNumber->i = 0; ! We only print the quip if the number of times it's been seen before ! matches the parameter `n'. .QuipFound; if (QuipsNumber->i ~= n) rfalse; ! Now print it .QuipPrint; for (i = 0 : i < ns : i++) new_line; if (sty == 0) style bold; ! Default case if (sty == 1) style roman; if (sty == 2) style underline; if (sty == 3) style reverse; font off; print (string) BotName-->(bot-1); font on; HangingIndent(text,BotLength->(bot-1)); style roman; for (i = 0 : i < ne : i++) new_line; ]; ! Printing text with a hanging indent: Quip text is printed to an array ! in memory rather than to the screen (using the `output_stream' opcode). ! Then for each line, a breakpoint is determined that prevents a word ! being split over the line. Then print the appropriate portion of the ! array (using the `print_table' opcode), print the indent, and go back for ! another line. The indent is printed with the proportional font turned ! off. Constant MAX_STRING_LENGTH 1000; ! maximum length of any quip in the game Array sb -> MAX_STRING_LENGTH; ! buffer to hold the printed string [ HangingIndent text ! packed address of text to print overlap ! extent to which first line sticks out over the 6-char indent len ! length of text in characters from ! first character not printed width ! width of screen in characters, less six character indent bp ! break point in string start ! where to start printing from n ! number of characters to print flag; ! 0 iff this is the first line being printed (so omit indent) ! String manipulation. The string starts out in encoded form, so it ! is first decoded to the string buffer: @output_stream 3 sb; print (string) text; @output_stream -3; ! Set up parameters (recall that the first two bytes of the array `sb' ! hold the length, thus the compiler warning. The code is correct). width = 0->33 - 7; len = sb-->0 + 2; from = 2; if (len > MAX_STRING_LENGTH) "** Error: string was too long **"; while (from < len) { if (flag == 0) { flag = 1; bp = from + width - overlap; } else { font off; new_line; spaces 6 + overlap; font on; bp = from + width; } ! See if it can print the rest of the text on one line. if (bp >= len) { bp = len; jump FoundBreakPoint; } ! Find the best breakpoint, if any. for ( : bp >= from : bp--) if (sb->bp == ' ') jump FoundBreakPoint; ! No breakpoint found, so split in the middle of the word. bp = from + width; ! Print the text from `from' to the breakpoint. .FoundBreakPoint; start = sb + from; n = bp - from; @print_table start n 1; ! Skip any whitespace. from = bp; while (sb->from == ' ') from ++; } ]; ! The following code was hacked from C.E. Forman's MST3K1.INF. [ MST_Logo w i; @erase_window $ffff; font off; w = (0->33 - 22) / 2; new_line; new_line; spaces w + 5; print "_________^"; spaces w + 3; print "/ @@92^"; spaces w + 1; print "/ Mystery @@92^"; spaces w; print "| Science |^"; spaces w; print "| Theater |^"; spaces w + 1; print "@@92 3000 /^"; spaces w + 3; print "@@92___________/^^"; spaces w + 6; print "Presents^^"; spaces w - 16; print "~The Incredible Erotic Adventures of \ Stiffy Makane~^"; spaces w + 8; print "by^"; spaces w + 5; print "Mark Ryan^^"; spaces (w / 2) - (w / 8); print "To read reams of pertinent propaganda, \ please press <1>.^"; spaces (w / 2) - (w / 8); print "To read the introduction, then play \ the game, press <2>.^"; spaces (w / 2) - (w / 8); print "If you possess finer sensibilities \ and are offended by graphic^"; spaces (w / 2) - (w / 8); print "portrayal of sexual activities, \ press <3> to quit.^"; font on; do { @read_char 1 i; } until (i == '1' or '2' or '3'); if (i=='3') quit; @erase_window $ffff; font on; if (i=='1') { AboutTheGame(); } MST_Intro(); TitlePage(); Instructions(); ]; [ AboutTheGame i; @erase_window -1; print "Well, this is the long awaited Mystery Science Theatre \ treatment of ~The Incredible Erotic Adventures of Stiffy \ Makane,~ one of the crappiest pieces of Interactive Fiction \ ever.^^"; print "It has been developed by Dastardly Coward and Drunken \ Bastard, who wish to hide behind the shield of their \ anonymity, in case they ever want real jobs or something.^^"; print "In case you're unfamiliar with the concept, Mystery \ Science 3000 is (was?) a Comedy Central show. I can't do \ any better summing up its premise in a few words than C.E. \ Forman did in his seminal, groundbreaking work, the MSTing \ of Matt Barringer's ~Detective,~ another true stinker in the \ annals of IF. It is therefore included here verbatim:^"; print "^For the uninitiated souls who have never seen MST3K, here's \ a quick lesson:^^MST3K features a man trapped up in a satellite \ called the Satellite of Love, forced by evil scientists to \ watch really bad movies so they can study his reactions. The \ characters include:^^"; style bold; print "Mike Nelson"; style roman; print "^Mike is an ordinary man, not from Green Bay, Wisconsin, who \ was working as a temp for mad scientists Dr Clayton Forrester \ and TV's Frank (whom I'll get to in a minute). When Joel \ Robinson (played by Joel Hodgson, the original host of MST3K, \ who left the show to work on other things -- most recently \ HBO's ~The TV Wheel~, easily one of the five weirdest damn \ things I've ever seen in my life) escaped from the Satellite, \ the mads needed a replacement and sent Mike up to take his \ place.^^"; style bold; print "Crow T. Robot"; style roman; print "^Crow is a yellow-gold robot with a head made out of a \ lacrosse helmet and a beak make of a bowling pin cut in half. \ He has yellow ping-pong balls for eyes and fancies himself a \ screenwriter. In the theater, Crow sits on Mike's right, at \ the far right edge of the screen.^^"; style bold; print "Tom Servo"; style roman; print "^Tom is a short plump robot with a head made from a red \ gumball machine and a little plastic barrel chest. His arms \ are on Slinkies (which hop down stairs, alone or in pairs, and \ make a slinkety sound (See what I mean about the free \ advertising?)), and he has a hoverskirt instead of legs. Mike \ has to carry Tom in and out of the theater, because the air \ grate in the floor interferes with his hoverskirt. Tom sits on \ Mike's left.^^"; style bold; print "Gypsy"; style roman; print "^Gypsy is like a big snake, with a big purple head made out \ of a child's car seat, and a single flashlight for an eye. She \ has a fondness for Richard Basehart (best known from ~Voyage to \ the Bottom of the Sea~). Gypsy doesn't watch the movies with \ Mike, Crow, and Tom, but instead runs the higher functions of \ the Satellite of Love.^^"; style bold; print "Cambot"; style roman; print "^Cambot films everything on the SOL and in Deep 13 (the lair \ of the mad scientists). He's hardly ever seen, but helps Mike \ and the other 'bots with short skits that make fun of some of \ the movies.^^"; style bold; print "Dr. Clayton Forrester"; style roman; print "^Dr. Forrester is one of the mad scientists in Deep 13. He \ wears a bright green labcoat and green glasses, and has wild \ hair and a mustache. Forrester's favorite pastime is watching \ Mike hurt from the terrible films he's forced to watch. His \ nemesis is his mother.^^"; style bold; print "TV's Frank"; style roman; print "^Frank is Forrester's not-too-bright assistant, picked up by the \ good doctor at a local Arby's after Dr. Laurence Erhardt \ (Forrester's original assistant) was reported missing at the start \ of the show's second season. Frank's trademark is a single curl of \ hair that hangs down in the center of his forehead. Dr. Forrester \ uses Frank as the subject of some of his experiments, and has \ killed him quite a few times.^^"; print "This MSTing also owes a great debt to C.E. Forman and \ Gareth Rees; Rees did the rewrite that made creating another \ MST game rather easy. Specifically, we use the Quip system \ in its entirety, and much of the BarringerRoom code.^^"; print "We did not try to emulate the AGT parser as thoroughly as \ did Forman and Rees; thus, some proportion of the actual \ suckiness of ~Stiffy Makane~ is lost due to Inform's much \ smarter parser. Nor have we spent nearly as much effort on \ the MST frame story, and it shows.^^"; print "A caution to those used to Inform games: ~ ,HI~ will \ not work and will, in fact, produce a misleading message. \ ~TALK TO ~ is the (AGT-ish) way to do it.^^"; print "And, finally, really this game just isn't as funny as \ ~Detective,~ mostly because ~Stiffy Makane,~ although \ reprehensible and execrable is, at least, a moderately \ competent game in that Mark Ryan, unlike Matt Barringer, \ understood the difference between room descriptions and \ object descriptions, there are no rooms that kill you \ upon entering for no reason, and the prose, although \ truly awful, avoids such lovely constructions as ~wooden \ wood.~ We strongly, strongly recommend playing ~Detective: \ An Interactive MiSTing~ at your earliest convenience.^^"; print "We probably should mention that ~Mystery Science Theatre \ 3000,~ its logos, and its characters are copyright Best \ Brains, 1995, and such are used here without permission \ for satirical purposes. So please don't sue us, oh \ Mighty Comedy Central.^^"; print "Enjoy the game.^^"; print "[press a key]^"; @read_char 1 i; @erase_window $ffff; ]; [ MST_Intro i; print "^[Satellite of Love]^^"; print "[Crow, Tom, and Gypsy are sitting behind Mike, fiddling \ with lots of pink latex and rubber novelties]^"; style roman; Quip(-1,1,MIKE,"[to Cambot] Hi, and welcome again to the Satellite of \ Love.",1,1); Quip(-1,0,TOM,"[mumbling] Faster! Faster!",1,1); Quip(-1,0,MIKE,"Today my robots, Gypsy, Crow, and Tom Servo are \ going to tell...",1,1); Quip(-1,0,CROW,"[mumbling] Not so fast! Not so fast!",1,1); Quip(-1,0,MIKE,"...us about their favorite, ah, ~marital \ aids.~",1,1); Quip(-1,0,TOM,"[Excited] Here's mine! It's a Suck-O-Matic \ 6900!",1,1); Quip(-1,0,MIKE,"That's nice, Tom. It looks like an old vacuum \ cleaner...",1,1); Quip(-1,0,CROW,"[louder] Yeah! Yeah! That's it, baby!",1,1); Quip(-1,0,TOM,"...with a rubber hose, a picture of Betty \ Page...",1,1); Quip(-1,0,MIKE,"...and is that a squeeze bottle there?",1,1); Quip(-1,0,TOM,"You betcha, Mike! It delivers 22 horsepower and \ runs on standard 110VAC!",1,1); Quip(-1,0,MIKE,"Um, that's lovely, Tom. Over here, Gypsy \ has...",1,1); Quip(-1,0,GYPSY,"RICHARD BASEHART! YAAAAAY! RICHARD BASEHART!",1,1); Quip(-1,0,MIKE,"A Richard Basehart inflatable doll...",1,1); Quip(-1,0,GYPSY,"YAAAY! ANATOMICALLY CORRECT! RICHARD BASEHART!",1,1); Quip(-1,0,MIKE,"...with three-speed vibro action...",1,1); Quip(-1,0,GYPSY,"HARD, HARDER, HARDEST! YAAAAAAY!",1,1); Quip(-1,0,MIKE,"...and...",1,1); Quip(-1,0,CROW,"OH! YES! YESSS! WHO'S YOUR DADDY? WHO'S YOUR \ DADDY?",1,1); Quip(-1,0,MIKE,"...over here we have Crow, with his...",1,1); Quip(-1,0,CROW,"[panting] Ultra-Vibe...Pleasure \ [gasp]....3000!",1,1); Quip(-1,0,MIKE,"Well, I dunno what it is, but it sure sounds sweet!",1,1); Quip(-1,0,CROW,"[still panting] Banned in fourteen countries!",1,1); Quip(-1,0,MIKE,"Is that a VCR attached to it?",1,1); Quip(-1,0,CROW,"Yup. It comes with an instructional video.",1,1); Quip(-1,0,MIKE,"Really?",1,1); Quip(-1,0,CROW,"Narrated by Nina Hartley and Peter North!",1,1); Quip(-1,0,MIKE,"Wow, Crow, that's really something.",2,1); print "[The mads' light begins to flash.]^"; Quip(-1,1,MIKE,"Settle down, it's the busker and Christabel!",2,1); print "[Deep 13]^"; print "^[Frank and Doctor Forrester are surrounded by videotapes \ strewn all over the floor. ~Behind the Green Door~ is playing on \ a monitor behind them.]^"; Quip(-1,1,DRF,"Well, ~Tracy Valencia,~ today's little feature is a \ gem by Mark Ryan.",1,1); Quip(-1,0,FRANK,"Evil snicker. Oh, wait, I was supposed to [evil \ snicker], wasn't I?",1,1); Quip(-1,0,DRF,"Oh, Frank. The Meese Report *has* rotted your \ brain, hasn't it?",1,1); Quip(-1,0,FRANK,"...uh...",1,1); Quip(-1,0,DRF,"This nasty little fable attempts to be erotica. \ And fails.",1,1); Quip(-1,0,DRF,"And fails some more.",1,1); Quip(-1,0,FRANK,"[evil snicker] HA! I got it right!",1,1); Quip(-1,0,DRF,"Frank! Shut up! Today's choice...",1,1); Quip(-1,0,DRF,"Today's choice makes ~Leather Goddesses Of Phobos \ II~ look like...",1,1); Quip(-1,0,FRANK,"...like ~Deep Throat?~",1,1); Quip(-1,0,DRF,"Shut up! Like ~Delta of Venus!~",1,1); Quip(-1,0,DRF,"I present to you: The Incredible Erotic Adventures \ of Stiffy Makane!",1,1); Quip(-1,0,FRANK,"Should I pre...",1,1); Quip(-1,0,DRF,"Press the button!",2,1); print "[Frank presses the button]^^"; print "[SOL]^"; style roman; Quip(-1,1,MIKE,"MOOOOVIE SIIIIIIGN!",2,1); print "[chaos ensues]^^^ [Press Any Key]^"; @read_char 1 i; @erase_window $ffff; rtrue; ]; [MSTIntermission; Quip(-1,1,MIKE,"Well, that wasn't so bad. We've survived worse, \ haven't...",1,0); Quip(-1,0,DRFSVOICE,"Ha, ha, ha! ~Ha, ha, ha,~ I say!",1,0); Quip(-1,0,CROW,"I have a very bad feeling about this.",1,0); Quip(-1,0,DRFSVOICE,"We have an extra-special surprise for you \ tonight. Frank!",1,0); Quip(-1,0,FRANKSVOICE,"When going through the AGT Code, guess what \ we found?",1,0); Quip(-1,0,TOM,"Jimmy Hoffa?",1,0); Quip(-1,0,DRFSVOICE,"Worse!",1,0); Quip(-1,0,CROW,"Compromising photos of Margaret Thatcher and \ Ronnie Reagan?",1,0); Quip(-1,0,DRFSVOICE,"Worse!",1,0); Quip(-1,0,MIKE,"Oh no! You must mean...",1,0); Quip(-1,0,FRANKSVOICE,"Yes, that's right! My namesake, trapped in \ unreachable code.",1,0); Quip(-1,0,DRFSVOICE,"So we resurrected him, for your IF \ pleasure.",1,0); Quip(-1,0,FRANKSVOICE,"Prepare to meet ~Frankie,~ Pam's Husband!",1,0); Quip(-1,0,DRFSVOICE,"And, just to make things a little \ *interesting*...",1,0); Quip(-1,0,TOM,"I have a very, very bad feeling about this.",1,0); Quip(-1,0,DRFSVOICE,"He's a Hostile AGT Creature!",1,0); Quip(-1,0,MIKE,"I have an unbelievably bad feeling about \ this.",1,0); Quip(-1,0,DRFSVOICE,"[Manaical laughter]",2,0); rtrue; ]; [MSTConclusion; Quip(-1,1,MIKE,"Whew. We made it.",1,1); Quip(-1,0,CROW,"I especially like Mark's method of dealing with \ people problems.",1,1); Quip(-1,0,TOM,"I wish someone had used it on Mark. \ Pre-natally.",1,1); Quip(-1,0,CROW,"Hey! Where was the anal action?",1,1); Quip(-1,0,TOM,"He's got a point. Pam was missing an entire \ orifice.",1,1); Quip(-1,0,MIKE,"Given the sensitivity evident in his prose...",1,1); Quip(-1,0,TOM,"Yeah, we should just count our blessings.",1,1); Quip(-1,0,MIKE,"So...if ~Space Aliens Ate My Cardigan~ is Infocom on acid...",1,1); Quip(-1,0,CONTINUE,"...and ~Detective~ is Infocom drunk and passed \ out on the couch...",1,1); Quip(-1,0,CROWTOM,"Hmmm....",1,1); Quip(-1,0,ALL,"[Long pause]",1,1); Quip(-1,0,CROW,"I got it! Mike, I got it!",1,1); Quip(-1,0,MIKE,"What is it, then?",1,1); Quip(-1,0,CROW,"[Triumphantly] This is Infocom loaded on Rohypnol, \ being gang-raped...",1,1); Quip(-1,0,CONTINUE,"...by the *whole* football team!",1,1); Quip(-1,0,MIKE,"[Pause]...OK, guys, gotta go...",1,1); Quip(-1,0,CROW,"But it IS!",2,1); print "[Mike and Tom leave the theatre, followed by Crow, still \ protesting, ~It IS!~]^^[1...2...3...4...5...6...G]^^[SOL]^"; Quip(-1,1,CROW,"I'll give it this: it wasn't ~Detective.~",1,1); Quip(-1,0,MIKE,"As erotica, it wasn't even Larry Flynt.",2,1); print "[Gypsy rushes up, extremely excited.]^"; Quip(-1,1,MIKE,"What is it, Gypsy?",1,1); Quip(-1,0,GYPSY,"RICHARD BASEHART ADVENTURE 69: THE SECOND \ CUMMING! YAAAAY!",1,1); Quip(-1,0,CROWTOM,"[collective shudder]",2,1); print "[The mads' light flashes]^^[Deep 13]^[Dr. Forrester swims \ to the top of a pile of French Ticklers. Frank is nowhere \ to be seen.]^"; Quip(-1,1,DRF,"Ah, my teeny rubber hoses, what treats I have in \ store!",1,1); Quip(-1,0,MIKE,"I don't see how you could possibly top \ ~Stiffy.~",1,1); Quip(-1,0,DRF,"No? How about Ron Jeremy and Richard Simmons?",1,1); Quip(-1,0,FRANKSVOICE,"Yeah! In ~Seven Minutes to a Firmer \ Groin!~",1,1); Quip(-1,0,DRF,"Oh, just push the button, Frank.",2,1); print "[Frank, wearing a Gimp Suit, flounders out of a mountain of \ edible undergarments. He slips in a pool of lube and falls \ over, hitting the button with his head.]^^[The screen goes \ dark.]^"; deadflag = 4; rtrue; ]; ! Hacked from Inform Designer's Manual. Emulates AGT Master's title box. [ TitlePage i; @erase_window -1; print "[G...6...5...4...3...2...1...]"; print "^[Mike and the bots enter the theater.] ^^^^^^^^^^^^"; i = 0->33; if (i==0) i=80; i=(i-50)/2; style roman; print "^^^"; Quip(-1,0,TOM,"Mark couldn't ~make it~ in real life, so he wrote \ this game.",1,0); Quip(-1,0,MIKE,"[as Butthead] Heh heh, heh heh. Maybe he'll \ _score._",1,0); Quip(-1,0,CROW,"[as Beavis] Heh heh, heh heh. Yeah, YEAH! \ SSSSSSSCORRRRE!",2,0); ! 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!^^"; Quip(-1,0,TOM,"Yeah, you're one to talk, Mark.",2,0); 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.^^"; Quip(-1,0,MIKE,"I quiver with antici...",1,0); Quip(-1,0,TOM,"...consti...",1,0); Quip(-1,0,CROW,"Say it! Say it!",1,0); Quip(-1,0,ALL,"[pause]...pation!",2,0); 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;^"; Quip(-1,1,CROW,"Ow! That must've hurt!",2); print "Chris Cappelletti, who REALLY WANTED the game;^"; Quip(-1,1,MIKE,"And what Chris Capelletti REALLY WANTS...",1,0); Quip(-1,0,TOM,"Chris Capelletti REALLY GETS!",2,0); 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;^"; Quip(-1,1,MIKE,"In fact, that's the system we really recommend...",1,0); Quip(-1,0,CROW,"But make sure it's an *analog* abacus, not a *digital* one!",2,0); 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.^"; Quip(0,1,TOM,"So far so good.",1,0); Quip(0,0,CROW,"Yeah. Unlike Matt Barringer, Mark \ managed to not screw up the first room.",2,0); Quip(1,1,MIKE,"It only gets worse, doesn't it?",2,0); ], 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!^"; Quip(0,1,TOM,"Hooters? Yeah, I could use a beer.",1,0); Quip(0,0,MIKE,"Or twenty.",2,0); 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); if (self in player) { Quip(0,1,CROW,"Wow! It's kind of like carrying around a TV tuned to Cinemax!",1,0); } Quip(0,1,TOM,"Aren't you glad you use Dial? Don't you wish everybody did?",1,0); Quip(0,0,CROW,"You're not fully clean until you're Zestfully clean!",1,0); Quip(0,0,MIKE,"Coast . . . The eye-opener!",1,0); Quip(0,0,TOM,"[Irish voice] Pardon me, lassie, but isn't that Irish Spring?",2,0); Quip(1,1,CROW,"X Window? On *this* platform?",1,0); Quip(1,0,MIKE,"Hey, guys, AGiliTy makes AGT games cross-platform too!",1,0); Quip(1,0,TOM,"Yeah! And this parody is actually written in Inform...",1,0); Quip(1,0,CROW,"This destruction of the fourth wall brought to you by a grant from...",1,0); Quip(1,0,ALL,"[In unison] Big Boy's Steel Erection, St. Louis, \ Missouri.",2,0); Quip(2,1,TOM,"~Catholic High School Girls In Trouble!~",1,0); Quip(2,0,MIKE,"Hold that thought, Tom.",1,0); Quip(2,0,TOM,"Huh?",1,0); Quip(2,0,MIKE,"I read the source. He rips off ~Kentucky Fried Movie~ again later.",1,2); Quip(3,1,MIKE,"Kinda makes you appreciate ~Psycho,~ doesn't it?",2,0); rtrue; ], before [; Search: <>; ], after [; Take: Quip(0,1,TOM,"Let this be a lesson to you, young lady. Don't leave your windows unlocked, or people will steal them.",2,0); rfalse; ], ! has static; ! You'd think, wouldn't you? But no. ; Object -> PseudoHooters "hooters" with description [; print "^What hooters? There is no hooters here to x.^"; Quip(0,1,TOM,"How much is that hooters in the window?",1,0); Quip(0,0,CROW,"The ones that I can't seem to X...",1,0); Quip(1,1,MIKE,"Really. Mark didn't put a ~hooters~ item \ here.",1,0); Quip(2,1,MIKE,"If you want hooters, you have to go inside.",2,0); rtrue; ], name "hooters", has scenery; AGTRoom Inside_House "Inside house" with describe [; print "You are in Pamela's house. \ Bedroom....North....GO!^"; Quip(0,1,MIKE,"A marvellous economy of description. Succinct, yet...",1,0); Quip(0,0,TOM,"Moronic?",1,0); Quip(0,0,CROW,"Idiotic?",1,0); Quip(0,0,MIKE,"Succinct.",2,0); rtrue; ], n_to Bedroom, s_to Pamelas_House, has light; AGTRoom Bedroom "Bedroom" with describe [; print "You are in Pamela's bedroom! Hallelujah!^"; Quip(0,1,TOM,"I can't get a Handel on this game!",1,0); Quip(0,0,MIKECROW,"[groan]",2,0); ], s_to Inside_House, has light ; AGTObject->pam "hot woman" with describe [; " Public Pussy Pamela is here!"; ], description [; print "^Fuckherfuckherfuckherfuckherfuckherfuckherfuckher\ fuckherfuckherfu^ckher!^"; Quip(0,1,CROW,"Hmmm. I wonder what we're supposed to do \ here?",2,0); Quip(1,1,MIKE,"Note how Mark has carefully sketched her psychology in a few words.",1,0); Quip(1,0,TOM,"Wish he'd used fewer.",2,0); ], 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: <>; ! 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.^"; Quip(0,1,MIKE,"Well, that's no surprise.",1,0); Quip(0,0,CROW,"I bet if Mark talked to a woman, he'd learn \ plenty of new stuff.",1,0); Quip(0,0,TOM,"Starting with how to cope with a sexual \ harassment suit.",2,0); rtrue; Fuck: if (pussy in bedroom) { <>; } print "Get her clothes off first! (Trust me, it's better \ that way!)^"; Quip(0,1,CROW,"Yeah, Mark, like you'd know.",1,0); Quip(0,0,TOM,"Trusting Mark with sexual advice...it's \ like...",1,0); Quip(0,0,MIKE,"Trusting Kate Moss with cooking tips?",2,0); 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.^"; Quip(0,1,CROW,"Er, what?",1,0); Quip(0,1,MIKE,"Oh, that's just the AGT parser \ talking.",2,0); rtrue; } <>; Shoot: if (second ~= gun) { "Sorry, you can't do that..."; } if (player hasnt visited) { print "You aren't finished with her yet!^"; Quip(0,1,TOM,"[As Mark's Mom] You can't have \ dessert 'till you finish your Pam!",1,0); Quip(0,0,CROW,"[As Mark] Aw, Geez, Mom! Pam tastes like rancid tuna!",1,0); Quip(0,0,MIKE,"[Clamps Crow's beak shut] Enough, you two!",2,0); Quip(1,1,TOM,"[As Mark's Mom] Finish your Pam! It's \ Butterscotch!",1,0); Quip(1,0,CROW,"[As Mark] But *MOM*...",1,0); Quip(1,0,TOM,"[As Mark's Mom] Do you want a \ spanking, young man?",1,0); Quip(1,0,MIKE,"We'd all like to give Mark a good \ spanking.",2,0); 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!~^"; Quip(0,1,CROW,"High marks for drama...",1,0); Quip(0,0,MIKE,"But low marks for theology...",1,0); Quip(0,0,TOM,"And *very* low marks for taste.",2,0); 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^"; Quip(0,1,TOM,"Quests?",1,0); Quip(0,0,CROW,"~You, Sir Stiffy, must go Honk Pam's \ Horrid Hooters!~",2,0); 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!"; Quip(0,1,CROW,"No, thank *you*, Mark. Thank \ *you*.",2,0); print " --- HIT ANY KEY ---^"; @read_char 1 i; print " --- HIT ANY KEY ---^"; Quip(0,1,TOM,"[deep sigh]",2,0); @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.^^"; Quip(0,1,TOM,"NO!",1,0); Quip(0,0,CROW,"I don't believe it!",1,0); Quip(0,0,MIKE,"He stole that from ~Kentucky Fried \ Movie!~",1,0); Quip(0,0,CROWTOM,"~Lincoln is the capital of \ Nebraska!~",1,0); Quip(0,0,MIKE,"Mark's just begging for an amorous visit \ from...",1,0); Quip(0,0,ALL,"BIG JIM SLADE!",2,0); print " --- HIT ANY KEY ---^"; @read_char 1 i; print " --- HIT ANY KEY ---^"; Quip(0,1,TOM,"Deja vu!",1,0); Quip(0,0,CROW,"Deja vu!",2,0); @read_char 1 i; print "Thanks for playing!^"; MSTIntermission(); PlayerTo(Endgame); move Frankie to Endgame; StartTimer(Frankie,5); 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)) { Quip(0,1,CROW,"Off the floor, I presume.",2,0); } 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!~^"; Quip(0,1,TOM,"For those of you keeping score at home...",1,0); Quip(0,0,CONTINUE,"That's two more than this game \ possesses.",1,0); Quip(0,0,CROW,"But only one more than Mark's head!",2,0); Quip(1,1,TOM,"Unlike the player, who is screaming...",1,0); Quip(1,0,MIKE,"~Get me away from this game!~",2,0); 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) { Quip(0,1,TOM,"By remote control?",2,0); if (blouse has worn) { Quip(0,1,CROW,"Er, off of *whom*, Mr. Hoover?",2,0); } } 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!^"; if (self has worn) { Quip(0,1,MIKE,"Hmmm. A little gender confusion here, \ Mark?",2,0); } if ((self notin player) && (self notin bedroom)) { Quip(0,1,TOM,"She being, I don't know, Mark's mother?",2,0); } ], before [; Take: if (panties in player) "^You already have the black \ panties!"; print "With no dexterity or finesse whatsoever,^"; Quip(0,1,MIKE,"Not unlike this game.",2,0); print "you slide your hands^inside her panties and pull \ 'em off!^"; if ((self notin bedroom) && (self notin player)) { Quip(0,1,MIKE,"Off *whom*?",2,0); 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?^"; if (self notin bedroom) { Quip(0,1,TOM,"~Her~ being the six-foot tall invisible \ bimbo Harvina...",2,0); } if (self has worn) { Quip(0,1,CROW,"~Her~ meaning ~you.~ Just to \ clarify.",2,0); } ], 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!^"; Quip(0,1,CROW,"Ah, blow-up dolls. Mark's area of expertise.",1,0); Quip(0,0,ALL,"[Sage nods]",2,0); 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); Quip(0,1,TOM,"Oh, that's a load of crap!",1,0); Quip(0,0,CROW,"Yeah. If configuring LCP and negotiating \ link options isn't",1,0); Quip(0,0,CONTINUE,"foreplay, I don't know what is!",1,0); Quip(0,0,MIKE,"Uh, Crow?",1,0); Quip(0,0,CROW,"Yes?",1,0); Quip(0,0,MIKE,"You don't know what is.",2,0); if (self has general) { print "The mouth slides down your throat, and your \ stomach quickly is full.^"; Quip(0,1,MIKE,"Ugh!",2,0); Quip(1,1,TOM,"My stomach will quickly be \ empty....",2,0); } 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); Quip(0,1,MIKE,"[Mock disgust] And all this time I thought \ it was an isolated",1,0); Quip(0,0,CONTINUE,"village somewhere in the mountains of \ Tibet.",1,0); Quip(0,0,CROW,"What, it's *not* a girl group from the \ 60's? ~The Shangri-Las?~",1,0); Quip(0,0,TOM,"I hear they're making another movie of \ James Hilton's novel ~Lost Horizon.~",1,0); Quip(0,0,MIKE,"Let's hope they don't turn it into a \ musical again.",1,0); Quip(0,0,ALL,"[Collective shudder]",2,0); 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.)^"; Quip(0,1,MIKE,"So are we, Mark. So are we.",2,0); if (self has scored) { print "Sorry, you can't do that....^"; Quip(0,1,CROW,"Sez who? Look at the preceding \ paragraph!",2,0); } give self scored; rtrue; ], name "mouth" "lips" "lip" "pam^s", has static, ; AGTObject -> hooters "big hooters" with describe [; print " Check out those hooters. Uuuuuhhhhhhhh!^"; Quip(0,1,TOM,"Uuuuuhhhhhhhh indeed!",1,0); Quip(0,0,MIKE,"Oh, yes, Uuuuuhhhhhhhh!",1,0); Quip(0,0,CROW,"Uuuuuhhhhhhhh! Uuuuuhhhhhhhh! Uuuuuhhhhhhhh!",2,0); rtrue; ], description [; print "^I didn't write this game for you to LOOK!^"; Quip(0,1,TOM,"Coulda fooled me.",1,0); Quip(0,0,MIKE,"Mark, why DID you write this game?",1,0); Quip(0,0,CROW,"Yeah! Mark? Why? WHY?",2,0); 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; Quip(0,1,MIKE,"Pwoik?",1,0); Quip(0,0,CROW,"Pwoik, pwoik, pwoik!",2,0); if (self has scored) { print "Sorry, you can't do that....^"; Quip(0,1,TOM,"Too late for that!",2,0); } give self scored; rtrue; Fondle: print "HONK,HONK!^"; Achieved(COPAFEEL); Quip(0,1,ALL,"[Stunned silence]",1,0); Quip(0,0,MIKE,"I have nothing further to add.",2,0); Quip(1,1,CROW,"You sure know how to treat a lady, \ Mark!",2,0); give player visited; if (self has general) { print "Sorry, you can't do that....^"; Quip(0,1,TOM,"I only wish I couldn't.",2,0); } 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.'^"; Quip(0,1,CROW,"Oddly, _Cabin Boy_ *is* a masterpiece next \ to this...",2,0); Quip(1,1,MIKE,"Where are your closing quotation marks, \ Pam?",2,0); give player visited; if (self has visited) { print "The hooters slides down your throat, and your \ stomach quickly is full.^"; Quip(0,1,TOM,"OK. For starters, ~hooters~ is \ plural.",2,0); Quip(1,1,CROW,"For seconds, ~Ugh.~",2,0); } 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!^"; Quip(0,1,MIKE,"Hey, look, a clever Bukowski reference!",1,0); Quip(0,0,TOM,"Uh, what?",1,0); Quip(0,0,MIKE,"Well, Bukowski liked to call the cock ~turkeyneck...~",1,0); Quip(0,0,CROW,"Mike, are you high? Are you fucking smoking crack?",2,0); 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; Quip(0,1,TOM,"Eww.",1,0); Quip(0,0,MIKE,"I don't know. Of everything Mark could have put there...",1,0); Quip(0,0,ALL,"[Collective shudder]",2,0); Achieved(LICK); if (self has general) { print "The pussy slides down your throat, and your \ stomach quickly is full.^"; Quip(0,1,CROW,"Whoa!",1,0); Quip(0,0,MIKE,"Now I'm going to have nightmares for sure.",1,0); } 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; Quip(0,1,TOM,"I'm *still* scared. EEEEEK!",2,0); Achieved(FINGER); if (self has visited) { print "Sorry, you can't do that...^"; Quip(0,1,CROW,"But I just DID!",1,0); Quip(1,1,CROW,"Heh! I did it again!",1,0); } 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!^"; Quip(0,1,CROW,"Gives new meaning to the name ~St. Peter,~ doesn't it?",2,0); 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,~^"; Quip(0,1,TOM,"[Seductive] Come inside . . . my sugar walls.",2,0); print "she replies,~I just wish you'd get started!~^"; Quip(0,1,TOM,"[as doctor] What we have here is a \ premature . . .",1,0); Quip(0,0,MIKE,"[as intern] Diagnosis? Prognosis? \ Halitosis?",1,0); Quip(0,0,TOM,"[continuing as doctor] Ejaculation.",2,0); if (self has scored) { print "Sorry, you can't do that....^"; Quip(0,1,CROW,"I wouldn't think so, but apparently I can.",2,0); Quip(2,1,TOM,"The Erotic Adventures of Hercules!",2,0); Quip(3,1,MIKE,"My name is Inigo Montoya. You killed Interactive Fiction.",0); Quip(3,1,CONTINUE,"Prepare to die.",1,0); Quip(4,1,CROW,"I am Tiger Woods!",2,0); Quip(5,1,MIKE,"Uh, isn't this getting old yet?",2,0); Quip(10,1,ALL,"GET A LIFE!",2,0); } give self scored; rtrue; Take: print "Sorry, but it is impossible to get the \ pussy.^"; Quip(0,1,MIKE,"Thank God for small favors.",2,0); ], 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) { Quip(0,1,CROW,"Well, except that you aren't...",2,0); } } rtrue;], description [; print "^Your clothes are outdated and ugly. \ (Someone had to tell you!)^"; Quip(0,1,CROW,"Yeah. Like Mark's fashion sense is any better than his facility with women.",1,0); ], 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!~^"; Quip(0,1,TOM,"Rumble *this*, Mark.",2,0); 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!^"; Quip(0,1,TOM,"Hmmm. That seems somehow...familiar.",1,0); Quip(0,0,CROW,"Yeah. It oughta be a song lyric or something",1,0); ], name "gun" "uzi" "weapon" "blaster" "big", ; AGTObject stiffy "big dick" with describe [; print " Your stiffy is big and greasy.^"; Quip(0,1,TOM,"Tres charmant!",2,0); rtrue;], description [; print"^Check out the size of that stiffy! \ That's got to be two....three^"; Quip(0,1,MIKE,"Four!",1,0); Quip(0,0,ALL,"I LOVE MARINE CORPS!",2,0); print "inches!^"; rtrue; ], name "dick" "penis" "willy" "lovepole" "boner" "stiffy" "off", after [; Drop: Quip(0,1,TOM,"No! This cannot be! Make it stop!",1,0); Quip(0,0,MIKE,"I'm afraid it's true. You can drop your own penis.",1,0); Quip(0,0,CROW,"Mark, Mark, Mark. What a sad, pathetic, and confused life you must lead!",2,0); ], ; 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?).^"; Quip(0,1,CROW,"Oh, how very, very lucky.",1,0); Quip(0,0,TOM,"I wish I could be like him.",2,0); ], 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.^"; Quip(0,1,MIKE,"Forcing him to resemble Mark's prose.",2,0); print "He^falls to the floor.^"; Quip(0,1,CROW,"Like Mark's prose.",2,0); StopTimer(Frankie); remove Frankie; print " [press any key]^"; @read_char 1 i; @erase_window -1; MSTConclusion(); 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.^"; if (self hasnt scored) { print "^"; style underline; print "~Actually,~ says Frankie, ~Although that would have \ been my response in the AGT version, Dr. Forrester gave \ me more brains. So I'll tell you the *other* line of \ dialogue that would have appeared in this game if Mark \ had been smart enough to code it correctly.^^"; print "~The first time you're in the bedroom and I'm \ there too...~^^"; style roman; style bold; print "Pam says, ~I don't need those undies, but it \ makes things more^enjoyable for the next guy!~^^"; style roman; style underline; print "~Thank you,~ Frankie finishes, ~for letting me \ share that intimate moment with you.~^"; style roman; Quip(0,1,ALL,"[collective shudder]",2,0); give self scored; rtrue; } ], 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; Quip(-1,1,CROW,"What. The. Fuck. Was. That. ?",1,0); Quip(-1,1,DRFSVOICE,"[Maniacal laughter]",1,0); Quip(-1,0,MIKE,"Time for ~UNDO,~ I think.",1,0); deadflag = 1; rtrue; ], ; Object Endgame "Endgame" with description "This is the endgame that Dr. Forrester and Frank \ have hacked together. Its only function is to \ showcase Frankie. There are no exits, and it is utterly \ nondescript.", name "Endgame", has light, ; Object->PseudoFrankie "Frankie" with description [; print "^What Frankie? There is no Frankie here to x.^"; Quip(0,1,CROW,"Brilliant, Mark. Don't let us call him by \ his name.",1,0); Quip(0,0,MIKE,"Not that we'd want to talk to him.",2,0); rtrue; ], before [; Chat: print "^What Frankie? There is no Frankie here to talk.^"; Quip(0,1,MIKE,"I think you mean ~TALK TO GUY.~",2,0); rtrue; Shoot: print "^What Frankie? There is no Frankie here to \ shoot.^"; Quip(0,1,TOM,"If only there were a Mark Ryan here to \ shoot.",2,0); rtrue; ], name "Frankie", has concealed; [ Initialise; 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); MST_Logo(); ]; 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