Constant Story "Stiffy Makane: The Undiscovered Country"; Constant Headline "^An Interactive Abomination^\ Copyright 2001 by One of The Bruces \ (bruce@@64fsf.net)^"; ! ! A sequel to _The Incredible Erotic Adventures of Stiffy Makane_ ! ! Feel free to copy this, modify it, whatever, but don't sell it and ! don't pretend you wrote it from scratch. ! ! This is the Warts And All source release, in which you get to see ! the evolution of a Glulx Inform game, some paths I ultimately ! didn't take, and a whole lot of sloppy and hastily-written code. ! Constant OBJECT_SCORE 0; Release 1; Global MAX_SCORE=5; Constant AMUSING_PROVIDED; Constant DEATH_MENTION_UNDO; Constant TASKS_PROVIDED; Constant NUMBER_TASKS 5; Constant TASK_TERRI 0; Constant TASK_HOLODECK 1; Constant TASK_SPACEMOOSE 2; Constant TASK_KAAK 3; Constant TASK_BORG 4; Array task_scores -> 1 1 1 1 1; Array tasks_done -> 0 0 0 0 0; Constant MAX_CARRIED 6; !---------------------Window setups----------------------- Global gg_stiffywin = 0; Global gg_dialoguewin = 0; Global gg_graphicwin = 0; Global gg_objectwin = 0; Global gg_titlewin = 0; !Global gg_titletextwin= 0; Constant GG_STIFFYWIN_ROCK 210; Constant GG_DIALOGUEWIN_ROCK 211; Constant GG_GRAPHICWIN_ROCK 212; Constant GG_OBJECTWIN_ROCK 213; Constant GG_TITLEWIN_ROCK 214; !Constant GG_TITLETEXTWIN_ROCK 215; Constant GG_FORECHANNEL_ROCK 510; !Constant GG_BACKCHANNEL_ROCK 511; ! Arousal Thresholds and Movie constants Constant HALFMAST 2; Constant GREASY 7; Constant THROBBING 10; Constant WHOOPS 100; Constant DETUMESCE 99; Constant MOAN 1; Constant TITLE_FRAMES 120; !Constant INITIAL_PAUSE 99; Global dialogue_mode = 0; Global timer_on = 0; Global sound_on = 0; Global sndnotify_on = 0; Global gg_forechannel = 0; Global gg_backchannel = 0; ! ChooseObjects codes !Constant EXCLUDING 0; Constant INCLUDING 1; Constant SCORING 2; ! Return codes Constant FORCE_INCLUSION 1; Constant FORCE_EXCLUSION 2; Constant AGREE 0; ! My windows Global big_pic = 0; Global big_obj = 0; Global stiffy_pic = 0; Global object_pic = 0; Global object_obj = 0; Global title_pic = 0; ! Globals, mostly for glkishness Global no_interrupt = 0; Global now_showing = 0; Global fore_snd = 0; Global back_mus = 0; Global snd_magic = 0; Global scene = 0; Global titlescroll = 0; Global ticks = 0; Global divisor = 2; Global interlocutor = 0; Include "Parser.h"; Replace PrintTaskName; Replace PrintRank; Replace Amusing; Replace DeathMessage; Replace InScope; Replace ChooseObjects; Replace InitGlkWindow; ! For OKB's Menu Conversation stuff !Include "OKBGlulx.h"; !Include "OKBStyle.h"; !Glk calls Include "infglk.h"; !Does's nice glk wrapper layer Include "unglklib.h"; !And her panning routines Include "pan.h"; !Autogenerated with blorb resource file Include "./smtuc.bli"; Include "phtalkoo.h"; Include "Verblib.h"; !HandleGlkEvent() and IdentifyGlkObject() Include "./smtuc-glk.inf"; Include "Grammar.h"; !New verbs, etc. Include "./smtuc-routines.inf"; !Classes and utility objects Include "./smtuc-infrastructure.inf"; !NPCs Include "./smtuc-characters.inf"; Include "./smtuc-characters2.inf"; ! Actual Game Stuff [ Disclaimer; ! if (1 == 1) return; ! Take this out before release if (gg_mainwin) ClearWindow(gg_mainwin); print (boldface) "Stiffy Makane: The Undiscovered Country", "^^^"; print "Some history:^^"; print "This game continues the Stiffy Saga, and as such it will be both foul and incomprehensible to anyone who has not played "; print (italics) "The Incredible Erotic Adventures of Stiffy Makane",", or at least its ", (italics) "Mystery Science Theatre 3000", " treatment.^^"; print "If you have not played either of them, I strongly recommend you do so now, so you understand the character and motivations of the protagonist a bit better:^^"; font off; print "Stiffy Classic: http://www.ifarchive.org/if-archive/games/agt/stiffy2.zip^"; print "Stiffy MST3K: http://www.ifarchive.org/if-archive/games/zcode/stiffmst.z5^^"; font on; print "If you have already played one or both of these, then this game will be foul but comprehensible.^^"; if (gg_mainwin) { PressKey(); ClearWindow(gg_mainwin); } print "This game contains sexual themes, nudity, violence, and extremely explicit depiction of sexual acts in textual, graphical, and auditory forms.^^ In short, it is a work of pornography.^^ First, I must ask you if you are of legal age to view and hear such materials in the location in which you are playing this game, and further that viewing and/or listening to such materials is legal in your location.^^Do both these conditions hold true? "; if (YesOrNo() == 0) quit; print "^^In addition to that, this game is offensive and puerile. It is specifically denigratory to women, homosexuals,"; print (italics) "Star Trek"; print " fans, moose, and quite a number of denizens of rec.[arts|games].int-fiction.^^"; print "In short, if you have sensibilities at all, whether finer or not, this game will almost certainly offend them and you.^^Do you think you're going to be offended? "; if (YesOrNo()) quit; print "^^Look, this is your last chance. If you play the game, and it offends you, I don't want you whining about it.^^"; print (italics) "I am aware that this game contains adult content and offensive material. I hereby vow and aver that I am of legal age to possess, view, and listen to this material and that such possession, viewing, and listening is legal in the locality where I am playing the game. I hereby hold the author blameless for any trauma or damages that may result.^^"; print "Do you agree? "; if (YesOrNo() == 0) quit; print "^^This is a work of parody. If you think Stiffy Makane is some kind of role model, you need at the least prolonged therapy, and more probably prolonged incarceration.^^All trademarks are property of their respective owners. No infringement of trademark or copyright is intended.^^"; return; ]; [ Initialise x; scene = -1; if (gg_titlewin) CloseWindow(gg_titlewin); ! if (gg_titletextwin) ! CloseWindow(gg_titletextwin); if (gg_dialoguewin) CloseWindow(gg_dialoguewin); if (gg_stiffywin) CloseWindow(gg_stiffywin); if (gg_graphicwin) CloseWindow(gg_graphicwin); if (gg_objectwin) CloseWindow(gg_objectwin); gg_titlewin = 0; ! gg_titletextwin = 0; gg_dialoguewin = 0; gg_stiffywin = 0; gg_graphicwin = 0; gg_objectwin = 0; Disclaimer(); print "Press ~s~ to skip the title and scrolling credits (some users have experienced hangs during the credits; if this happens you you, try skipping the title and credits), any other key to continue.^^"; x = KeyCharPrimitive(); ClearWindow(gg_mainwin); if (x ~= 's') { scene = 0; timer_on = SupportsGlkTimer(); sound_on = SupportsSounds(); if (timer_on) { StartGlkTimer(100); divisor = 5; } if (sound_on) sndnotify_on = SupportsSoundNotify(); SetupWindows(); DrawTitlePic(pic_title); SwitchWindow(gg_mainwin); print "^"; PressKey(); ClearWindow(gg_mainwin); titlescroll = 1; PlaySound(gg_forechannel,snd_theme,0,1,1); print "^"; PressKey(); ClearWindow(gg_mainwin); } else { PlaySound(gg_forechannel,snd_theme,0,1,1); } scene = 1; titlescroll = 0; ! if (gg_titletextwin) ! CloseWindow(gg_titletextwin); if (gg_titlewin) CloseWindow(gg_titlewin); if (timer_on) { StartGlkTimer(250); divisor = 2; } SetupWindows(); DrawMyGraphics(); ChangePlayer(stiffyobj); dialogue_mode=0; DrawStiffyPic(pic_uniform); DrawBigPic(bridge); lookmode = 2; move uniform to player; give uniform worn; objectloop (x ofclass Character) { x.initQuips(); } move terri to terri_room; move mara to shattertown; move realdoll to pornoverse; move espen to thicket; move beevie to cave; StartDaemon(Master_daemon); playerTo(Bridge,1); print (italics) "Captain's Log: Swollen^^^ Stardate: 69 point 36C^^^ These Are the Incredible Erotic Voyages Of Captain Stiffy Makane. His two-or-three-inch mission: to boldly go where no man has gone before, to seek out new life, to penetrate it in all manner of exciting ways.^^"; print "Ah, enough of this journal crap.^^"; print "Your first command: the Starship Turgidity, NCC-69105-DD. A Penetrator-class vessel, well suited to deep-space exploration and exploitation. And you, Captain Stiffy Makane--stop to think about that a bit, eh?^^ Captain Stiffy Makane, in charge of it all.^^ Thank god that old fart Kirk back at the Academy recognized a kindred spirit, or you'd never have graduated, let alone been given your own vessel.^^ Starship Captain Stiffy Makane.^^ Heh. Gives you a woody just thinking about it.^^"; print (boldtext) "Oh, yeah.^^^"; penis.setStatus(7); PressKey(); ClearWindow(gg_mainwin); print "Of course, it's not all glory. It's not like it's a big ship. There's a crew of only two, for instance. You, and Lieutenant Terri Barcelona; she's the Chief Engineer, Science Officer, and everything else. Like you, she is fresh out of the Academy. She comes from Io, and more to the point, she's kind of cute.^^ And then there's the ship's computer. You don't know much about it except that you can ask it for help by saying "; print (boldtext) "COMPUTER, HELP"; print ".^^"; PressKey(); "^^^^"; ]; ! The Infamous Stiffy ! Please note what a gorgeous object-oriented style I'm using. ! ! turgidity is a private property, which, had I real data types, would ! be represented by a signed char. So I enforce the value constraints ! in the setStatus() method. ! ! Because turgidity is private (oh, don't we wish it were, for ! Captain Makane!), you must therefore go through the ! appropriate access methods (heh) to manipulate (heh) it. ! ! These methods: ! setStatus(x): sets turgidity to x (-128 <= x <= 127). ! An argument outside these values will be silently clipped (ow!) to ! -128 or 127. ! changeStatus(x): adds x to turgidity ! getStatus(): returns turgidity ! inflate(): adds one to turgidity ! deflate(): subtracts one from turgidity ! ! Something else to consider: in almost all cases, when there is more ! than one penis object in scope, it's the *other* one we want to ! refer to first. This means that ChooseObjects() for the other ! genitals should return an integer greater than zero. Notice that ! we can use "my" as a name to indicate this one. I hope that'll work. ! ! There's another method: ejaculate(); ! Now, you could make a good case that this should only happen as a ! result of calling changeStatus, but frankly, this is a ! plot-driven, rather than simulation-driven game, and therefore we ! should allow other objects to call it as well. StiffyPenis penis "penis" with name "my", article "your", ejaculate [; animate_count = pic_penis_greasy; DrawStiffyPic(pic_penis_greasy); no_interrupt = 1; ! Movie should run to completion now_showing = WHOOPS; StiffyMovie(WHOOPS); self.picture = pic_penis_limp; if ((object_obj) && (object_obj == self)) DrawObjectPic(self); self.setStatus(-50); ], description [x; print "Your stiffy is "; x = self.getStatus(); if (x < HALFMAST) { print "limp."; if (x < 0) { print " It's going to be "; switch(x) { -32768 to -129: print "an impossibly long"; -128 to -50: print "a very long"; -49 to -30: print "a long"; -29 to -10: print "some"; -10 to 0: print "a short"; } " time before it's ready again."; } else { ""; } } if (x < GREASY) "at half-mast."; if (x < THROBBING) "big and greasy."; "painfully throbbing, ready to burst."; ], before [; Drop:"In some small respects, you have evolved above your forbears."; Pull,Touch,Rub: if (self notin player) rtrue; self.changeStatus(2); if (self hasnt general) { give self general; PlaySound(gg_forechannel,snd_hotstiff,0,1,1); "Sure, the point of this game is to achieve sexual satisfaction in company. But hey, sometimes a man just has to take matters into his own hands."; } if (random(10) == 1) { ! Play sound clip first time, and randomly 10% of the ! time thereafter give self general; PlaySound(gg_forechannel,snd_ruineyes,0,1,1); } "Well, this is familiar. And pleasant."; ], setStatus [x; if (x < -128) x = -128; if (x > 127) x = 127; self.turgidity = x; ], changeStatus [x; x = x + self.getStatus(); self.setStatus(x); ], getStatus [; return self.turgidity; ], inflate [; self.changeStatus(1); ], deflate [; self.changeStatus(-1); ], daemon [x; x = self.getStatus(); if (x > WHOOPS) ! Oops! I did it again! self.ejaculate(); if (x > 0) { ! Slowly flaccidate over time if erect self.changeStatus(-1); } if (x < 0) { ! Slowly recover if post-orgasmic self.changeStatus(1); } if (PlayerIsNaked()) { move self to player; x = self.getStatus(); if (x >= THROBBING) { animate_count = pic_penis_greasy; self.picture = pic_penis_throb; now_showing = THROBBING; if ((object_obj) && (object_obj == self)) DrawObjectPic(self); return; } if (no_interrupt) return; now_showing = NULL; if (x < HALFMAST) { DrawStiffyPic(pic_penis_limp); self.picture = pic_penis_limp; } else if (x < GREASY) { DrawStiffyPic(pic_penis_half); self.picture = pic_penis_half; } else { self.picture = pic_penis_greasy; DrawStiffyPic(pic_penis_greasy); } if ((object_obj) && (object_obj == self)) DrawObjectPic(self); } else { move self to Limbo; if (no_interrupt) return; now_showing = NULL; DrawStiffyPic(pic_uniform); } ], private turgidity 0, ! Range -128 to 127; negative is "turns until ! ready to function again", positive is arousal level ; MyObject stiffyobj ! So we can give it a picture and all with picture pic_stiffy, description "Stiffy Makane, God's unique gift to all sentient beings.", ; MyObject uniform "uniform" with name "uniform" "red" "starfleet" "star" "fleet" "logo" "silver" "pants" "shirt" "clothes" "clothing" "some" "fucking", description [; print "A red Star Fleet uniform, with a cool silver Star Fleet logo over your heart, like the 23d-century equivalent of a tin star. And you get to be the Sheriff."; if (self hasnt general) { give self general; "^^Hmmm. Isn't the captain's uniform usually gold, not red?"; } ""; ], picture pic_uniform, article "your", has clothing, ; MyObject uniform2 "uniform" ! Uniform in simulation with name "uniform" "red" "starfleet" "star" "fleet" "logo" "silver" "pants" "shirt" "clothes" "clothing", description [; print "A red Star Fleet uniform, with a cool silver Star Fleet logo over your heart, like the 23d-century equivalent of a tin star, Sheriff."; if (self hasnt general) { give self general; "^^Hmmm. Isn't the captain's uniform usually gold, not red?"; } ""; ], picture pic_uniform, article "your", has clothing, ; ! ----------------------------------------------------- ! The good ship "Turgidity" Starship_Room Bridge "Starship Turgidity, Bridge" with name "bridge", description "This is the bridge of your starship. A viewscreen is the primary feature. There is also your big plush comfy captain's chair here. A door aft opens onto the hall, which runs aft to the quarters.", picture pic_bridge, s_to [; if (object_pic == pic_moosehead or pic_smandb or pic_excretus) ClearWindow(gg_objectwin); return hall; ], ; MyObject -> Chair "Captain's Chair" with name "chair" "captains" "plush" "comfy" "armrests", description "A plush and comfy captain's chair, with armrests to hang on to when hit by alien photon torpedos.", picture pic_chair, has enterable container scenery open ~openable, ; MyObject -> Viewscreen "Viewscreen" with name "viewscreen" "screen" "window", description "The viewscreen shows you what's outside the ship. Nifty, eh?", picture pic_stars, has scenery, ; Starship_Room hall "Starship Turgidity, Hall" with name "hall", description "This is the long hall leading from the bridge, at the front of the ship, to the living quarters aft.", n_to [; if ((scene == 4) && (morningmoose in bridge)) DrawObjectPic(morningmoose); if ((scene == 6) && (excretus in bridge)) { DrawObjectPic(excretus); print "^As you enter, you notice with some trepidation that a Borg is visible on the viewscreen.^"; } return Bridge; ], s_to junction, picture pic_hall, ; Starship_Room junction "Starship Turgidity, Junction" with name "junction" "stairs" "stair" "staircase" "spiral", description "This is the hub of the ship. From here, the hall leading to the bridge extends to the fore. A spiral staircase extends up to the holodeck and down to the engine room. Sick Bay is aft, your quarters are starboard, and Lieutenant Barcelona's are to port.", s_to sickbay, n_to hall, d_to engine_room, u_to holodeck, e_to quarters, w_to [x; if (terri_room has general) { if (scene > 4) { "The door will not open for you."; } if (scene > 2) { "The unmistakable sounds of hot Lieutenant-Bionic Badger sex come from behind the door, which refuses to budge."; } "The door to Lieutenant Barcelona's room refuses to open for you."; } if ((parent(terri) == terri_room)) { print "^As you enter, Lieutenant Barcelona coos, ~How nice to see you, Captain"; x = PlayerIsNaked(); if (x) { print "...all of you"; } print ".~"; if (x) { x = penis.getStatus(); if (x < GREASY) print " She suppresses a snicker."; if (x >= THROBBING) print " Her eyes seem hypnotically drawn to your throbbing stiffy."; } print "^"; DrawObjectPic(terri); back_mus = mus_terri; PlaySound(gg_backchannel,back_mus,1); } return terri_room; ], picture pic_junction, ; MyObject -> halldoor "door" with name "door" "terri^s" "metal" "shiny" "barcelona" "barcelona^s" "Lieutenant" "Lieutenant^s" "terri", description [; print "The door to Lieutenant Barcelona's room is shiny metal. "; if ((morningmoose has general) && (scene > 3)) "Scrawled on it in red lipstick are a heart with ~B+T~ in it and a short manifesto: ~Gone to Risa! Tee Hee! Love, Billy and Terri!~"; if (scene > 2) "From behind it comes the characteristic sound of a Lieutenant boffing a bionic badger."; ""; ], has scenery, ; Starship_Room sickbay "Starship Turgidity, Sick Bay" with name "sick" "bay", description "Sick Bay, on this ship, is little more than a room containing a biobed. The only exit is fore.", n_to junction, picture pic_sickbay, ; MyObject -> biobed "biobed" with name "biobed" "autodoc" "button" "red" "big" "bed" "machine", description "A standard issue biobed, which contains all of the medical knowledge and skill on the ship. Its entire interface is a big red button reading ~Press Me~", picture pic_biobed, before [; Push: if (parent(player) ~= self) "~Please lie on the bed first,~ intones the biobed."; if ( (scene == 6) && (excretus has general)) { if (master_daemon.counter > 19) { deadflag = 3; "Your last conscious thought is that maybe you shouldn't have dawdled quite so long. You place yourself in the loving scalpels of a Borg-controlled biobed, which dissects you thoroughly before rebuilding you as a Borg warrior. At least you look good in black leather."; } else { print "The biobed slithers a tendril into your ear. With a ~snap~ you are elsewhere. Or maybe the same here. It's very strange. You're still Stiffy, but you're also the ship. You can feel the Borg absorbing you; indeed, the ship is being pulled into a cavity in the Borg structure, which is slowly squeezing in around it. From one perspective the Borg ship looks like a huge black cube. From another one--which must be your mind attempting to put some kind of structure on these completely unfamiliar sensations--it looks like a gigantic (and, it must be said, sexy) ass."; print "^^At least the Turgidity always looks like an erect cock.^^"; if ((phaser hasnt general) && (torpedo hasnt general)) { DrawStiffyPic(pic_penis_limp); penis.setStatus(0); } else { DrawStiffyPic(pic_penis_greasy); penis.setStatus(GREASY+2); } if (rohypnol hasnt general) { deadflag = 3; "Immediately you can feel the Borg surround your mind. You try to resist, but the mental pressure is simply too strong. The pain is excruciating, rather like being fucked up the ass with a red-hot aircraft carrier, but also horribly erotic, rather like being fucked up the ass with a red-hot aircraft carrier. Still, you look good in black leather."; } scene = 7; master_daemon.counter = 0; remove uniform; remove fiver; remove rohypnol; tattoo.description = "Your tattoo identifies you by name and registration number: Turgidity, NCC 69105-DD."; tattoo.picture = pic_turgidity; stiffyobj.description = "You are approximately eighty feet long, and dull gray in color."; stiffyobj.picture = pic_turgidity; back_mus = mus_borg; PlaySound(gg_backchannel,mus_borg,1); move borg to shipself; PlayerTo(shipself); rtrue; } } print "Steel arms extend from the biobed, poking and prodding you. "; ! Code to determine whether the player needs fixing goes ! here. ! ! Guess he never does "~You're fine. Get up.~"; ], has enterable supporter scenery, ; Starship_Room engine_room "Starship Turgidity, Engineering" with name "engine" "engineering", description "This is the engine room. You have no idea what any of the stuff here does. Presumably your Lieutenant does. Below you, the twin warp nacelles hang from the rear of the ship, two pendulous spheres.", picture pic_engineering, u_to junction, d_to "The warp nacelles are sealed, because they are very dangerous to the ignorant.", ; MyObject -> nacelles with name "nacelle" "nacelles" "warp" "sphere" "spheres" "twin" "two", description "You can't actually see the nacelles, on account of there being no windows here and all.", before [; Open: "No."; ], has scenery openable, ; Starship_Room holodeck "Starship Turgidity, Holodeck" with name "holodeck", description "The holodeck has a single button that you press to start the simulation. Stairs lead down to the junction.", picture pic_holodeck, d_to junction, ; MyObject -> Simulation "simulation" with name "simulation" "button", description "The simulation is generated for you based on the computer's analysis of your personality and interests. You always seem to get puzzles involving how to get someone to have sex with you. Apparently the psychologists did a pretty good job.", before [x; Push: if (self has general) "Click."; while(child(player)) { x = child(player); move x to dummy; } if (crawford hasnt general) { move mimesis to thicket; move erasmatron to prairie; } else { move erasmatron to limbo; move mimesis to player; } if (realdoll has general) { move orgasmatron to player; move erasmatron to limbo; move mimesis to limbo; } move lantern to dead_end; move uniform2 to player; give uniform2 worn; ! back_mus = mus_france; back_mus = mus_holo; PlaySound(gg_backchannel,back_mus,1); PlayerTo(pornoverse); DrawObjectPic(realdoll); rtrue; ], has scenery, ; Starship_Room quarters "Starship Turgidity, Captain's Quarters" with name "quarters" "my" "stiffys" "stiffy^s" "captain" "captain^s", description "These are your quarters. The exit is port.", picture pic_quarters, w_to junction, ; MyObject -> Nightstand "nightstand" with name "nightstand" "drawer" "stand" "table", description [; print "A nondescript nightstand with a single drawer, which is"; if (self hasnt open) " closed."; " open."; ], picture pic_nightstand, has container openable ~open static, ; MyObject -> -> rohypnol "bottle of Rohypnol" with name "bottle" "rohypnol" "of" "pill" 'pills//p' 'roofies//p' "roofy" "roofie", description "It's a bottle containing several pills of Rohypnol.", initial "Well, well, what have we here? Ah, yes, that bottle of Rohypnol.", picture pic_rohypnol, counter 0, before [; Eat: if ((scene == 6) && (excretus has general)) { give self general; move self to limbo; self.counter = master_daemon.counter; "If you're about to let the Borg into your brain...well, why not?^^",(italics) "Gulp",".^^Almost immediately you can feel the hypnotic effects beginning."; } else { print "It's usually customary to feed it to someone "; print (italics) "else"; "."; } Open,Close: "One thing the 23rd century has gotten right is its pill-bottle technology. The bottle is always open when it needs to be and closed when it needs to be. The bottle itself is edible, or you can eat its contents directly from it, and if you eat just the pills inside, the bottle conveniently vanishes. It's just like magic, or a sufficiently advanced technology, or (as the more cynical might say) a sufficiently lazy Implementor."; ], has edible openable, ; MyObject -> bed "bed" with name "bed" "my" "starfleet" "bunk" "pillow", description "A standard-issue Starfleet bed, with a pillow and everything.", has enterable supporter scenery, ; Starship_Room terri_room "Starship Turdigity, Lieutenant's Quarters" with name "terri^s" "quarters" "lieutenant^s" "barcelona^s", description "This is Lieutenant Barcelona's room. It's decorated slightly better than yours, but not much.", picture pic_terriroom, e_to [; StopSound(gg_backchannel); back_mus = NULL; ClearWindow(gg_objectwin); return junction; ], ; MyObject -> lips "lips" with name "lips" "paper" "red", description "It is not clear why there are big red paper lips hanging on the wall.", has pluralname scenery, ; ! --------------- Holodeck Simulation -------------- Stiffy_Room pornoverse "Rolling Hills" with name "hills" "rolling" "undulating" "horizon", description "Gently rolling hills undulate towards the western horizon. To the south, Shattertown rises menacingly. A forest extends to the east, and an incongruous staircase descends. A dark and foreboding cave is to the north.", d_to [x; back_mus = NULL; ClearWindow(gg_objectwin); StopSound(gg_backchannel); while(child(player)) { x = child(player); move x to limbo; } while (child(dummy)) { x = child(dummy); move x to player; } return holodeck; ], s_to [; DrawObjectPic(mara); return shattertown; ], w_to [; ClearWindow(gg_objectwin); if (parent(crawford) == prairie) DrawObjectPic(crawford); return prairie; ], e_to [; ClearWindow(gg_objectwin); if (parent(espen) == thicket) DrawObjectPic(espen); return thicket; ], n_to [; FloodFillWindow(gg_objectwin,$000000); if (lantern in player) DrawObjectPic(beevie); return cave; ], picture pic_hills, ; MyObject -> staircase "staircase" with name "staircase" "stairs" "steps" "stair", description "The staircase sports an inconspicuous sign stating ~This way to the Egress.~", picture pic_egress, has scenery, ; MyObject -> scen_cave "cave" with name "cave" "dark" "foreboding", description "The cave is too dark to see into.", before [; Smell: "A mephitic stench wafts from the cave's mouth."; ], picture pic_cave, has scenery, ; MyObject -> scen_shattertown "Shattertown", with name "shattertown" "city" "dystopia", description "Shattertown is a nightmarish, twisted dystopia.", picture pic_shattertown, has scenery, ; MyObject -> scen_forest "forest", with name "woods" "forest" "grove" "deep" "cool" "green" "theoretical" "thicket" "theory" "of", description "The forest is deep, cool, and green, yet, somehow, strangely theoretical.", picture pic_forest, has scenery, ; Stiffy_Room Shattertown "Shattertown", with name "Shattertown" "city" "hulk" "twisted" "glass", description "Shattertown is a twisted hulk of a city. At some point in the past, the city itself fractured and turned molten. Most people were killed instantly, frozen in mid-act. Their encased corpses stare out through walls of glass.", picture pic_shattertown, n_to [; DrawObjectPic(realdoll); return pornoverse; ], ; MyObject -> corpses "corpses", with name "corpses" "encased" "corpse" "stiff" "body" "bodies" "people", description "Ick. But very cyberpunk.", picture pic_corpses, has scenery pluralname, ; Stiffy_Room prairie "Prairie", with name "prairie" "meadow" "horizon" "trail", description "A wide prairie rolls toward the western horizon. A trail leads south.", w_to "~You have reached the limits of this simulation,~ intones a hollow voice.", n_to "~Area not implemented,~ complains a hollow voice.", s_to [; ClearWindow(gg_objectwin); return dead_end; ], e_to [; DrawObjectPic(realdoll); return pornoverse; ], picture pic_prairie, ; MyObject -> erasmatron "Orgasmatron" with name "Orgasmatron", with initial "An Orgasmatron sits sparkling in the sun, all points and protuberances.", picture pic_erasmatron, description [; if (self has general) "The Erasmatron is spiky and confusing, far beyond your meager comprehension."; "The Orgasmatron looks exciting, even if using it is too difficult for you."; ], parse_name [; if (self has general) if (nextWord() == 'erasmatron') return 1; else return 0; if ((nextWord() == 'orgasmatron') || (nextWord() == 'orgasmotron')) return 1; return 0; ], short_name [; if (self has general) { print "Erasmatron"; rtrue; } ], before [; Take: if (self has general) rfalse; give self general; self.&name-->0='Erasmatron'; move crawford to location; DrawObjectPic(crawford); print "Out of nowhere, Chris Crawford appears. ~DAMN IT!~ he shrieks. ~It's an Erasmatron, not an Orgasmatron! Get it straight!~^^"; rfalse; ], ; Stiffy_Room dead_end "Dead End" with name "dead" "end" "trail" "canyon" "cliff", description "The trail from the north peters out here; a box canyon surrounds you on all other sides.", n_to [; if (parent(crawford) == prairie) DrawObjectPic(crawford); return prairie; ], picture pic_canyon, cant_go "The canyon walls are too steep to climb.", ; MyObject -> lantern "brass lantern" with name "lantern" "lamp" "brass", description "The old brass lantern glows cheerfully.", picture pic_lantern, has light, ; Stiffy_Room thicket "Thicket Of Theory", with name "thicket" "theory" "of" "labyrinth" "garden" "forking" "tree" "trees" "forest" "tangle" "wood" "tulgey" "oaths" "conundra" "witt^s" "end", description "This tangled thicket is a veritable labyrinth, a twisted garden of forking paths. Its very intertextuality claws at your soul, its heartless conundra leaving you at your Witt's End.", counter 0, w_to [; self.counter++; if (self.counter == 3) { self.counter = 0; print "At last! You escape from the nightmarish thicket!^"; DrawObjectPic(realdoll); return pornoverse; } espen.boredom = 0; "You wander for a time among the branches, but ultimately return to the thicket."; ], u_to "You scale a nearby sycamora tree, and can see that the prairie lies back to the west. There must be a way out over there somewhere, if only you're persistent.", cant_go [; self.counter = 0; espen.boredom = 0; "You wander for a time among the branches, but ultimately return to the thicket."; ], picture pic_thicket, ; MyObject -> mimesis "mimesis", with name "mimesis" "variegated" "false" "fake" "crappy" "torn" "weathered" "beaten" "unrealistic", initial "There is a variegated mimesis here, although it looks rather torn.", description [; print "In fact, this is about the most unrealistic mimesis you've ever seen. The rubbery texture and the ~Made In Taiwan~ stamp on it sort of give it away."; if (self has general) " And yet, it seems to glow with the self-assurance that someone, somewhere, believes in it."; ""; ], picture pic_mimesis, before [; Eat, Kiss, Fuck, Attack: "You must be thinking of some other game."; ], after [; Take: mara.QuipsOff(5,7,9,12,13,14); ], ; Stiffy_Room cave "Dank Cave", with name "cave" "dank" "stinky" "smelly", description "This is a dank and smelly cave. Its exit is south.", picture pic_lair, s_to [; DrawObjectPic(realdoll); return pornoverse; ], has ~light, ; MyObject orgasmatron "Orgasmatron", with name "orgasmatron" "orgasmotron" "blue" "dildo", with picture pic_orgasmatron, description [;"So ", (italics) "that's"," what an Orgasmatron looks like. Interesting.";], ; ! ------------------------------------ Stiffy_Room darkroom with cant_go "You don't really know where you are, or where the exits might be.", has ~light, ; MyObject fiver "five-dollar bill" with name "five" "dollar" "bill" "5" "Canadian", picture pic_five, description "Scrawled across the Canadian fiver is ~Thanks!--SM~. How sweet.", ; MyObject cigarette "cigarette" with name "cigarette" "cig" "smoke", before [; Smell,Taste: "Ick."; ], picture pic_cigarette, has scenery, ; Stiffy_Room arena "Arena" with name "arena" "pit" "loudspeakers", description "The arena is a surprisingly small steep-sided pit, with stands all around, filled with bellowing Klingons waving weapons and betting.", picture pic_arena, d_to "You have not mastered falling through the floor.", cant_go "The walls are too steep and high to scale.", ; MyObject -> crowd "crowd" with name "klingons" "stands" "grandstands" "weapon" "crowd" "weapons" "klingon" "betting", description "The crowd is howling for your blood.", has scenery, ; Object gagreflex "gag reflex" with name "gag" "reflex" "my", article "your", ; MyObject tattoo "tattoo" with name "tattoo" "Harley" "Davidson" "tat", description [; "Fuck. How'd ",(italics) "that", " get here?"; ], picture pic_tattoo, before [; Disrobe,Remove,Drop: "Not without a cheese grater. And there isn't one of those in the game."; ], has scenery worn, ; Stiffy_Room shipself "Space (As Starship Turgidity)" with name "space" "room", description "You hang in the vastness of space, the Borg Cube floating near you, beginning to surround you. Except that it's also like you're standing in a nondescript room, and Excretus is here with you, pulling you into his cavernous yet sexy ass.", picture pic_borg, ;