! ----------------------------------------------------------------------------- ! PARANOIA -- a solo paranoia game taken from the Jan/Feb issue (77) of ! "SpaceGamer/FantasyGamer" magazine. ! ! Article by Sam Shirley. ! ! Implemented in C on Vax 11/780 under UNIX by Tim Lister. ! ! Converted to Inform 6 by Glenn Hutchings. ! ! This is a public domain adventure and may not be sold for profit. ! ----------------------------------------------------------------------------- Switches dxv5; Constant Story "PARANOIA"; Constant Headline "^A Not-Very-Interactive Future ^ ^From an article by Sam Shirley ^Implemented in C on a Vax 11/780 by Tim Lister ^Converted to Inform by Glenn Hutchings (zondo@@64hunting2.demon.co.uk) ^Type 'help' for a list of valid commands. ^ ^"; Serial "990528"; Release 1; Replace DrawStatusLine; Include "Parser"; Object LibraryMessages "lm" with before [; Miscellany: switch (lm_n) { 3: " You have lost "; 10: "Type a command, Troubleshooter."; } Score: ; ]; Include "VerbLib"; Constant MOXIE = 13; Constant AGILITY = 15; Constant MAXKILL = 7; Constant MAXCLONE = 6; Global clone = 1; Global computer_request = 0; Global ultra_violet = 0; Global action_doll = 0; Global hit_points = 10; Global read_letter = 0; Global plato_clone = 3; Global blast_door = 0; Global killer_count = 0; Global moan_count = 0; Global moan_turn = -1; Global option; ! -------------------------------- Functions ---------------------------------- [ Initialise; print "^^Welcome to Paranoia!"; print "^^"; style bold; print "HOW TO PLAY"; style roman; print "^^Very occasionally during this adventure, you will be given a choice of things to do. Always choose the least dangerous option. Continue doing this until you win. At times you will use a skill or engage in combat and will be informed of the outcome. These sections will be self explanatory. There are a few other commands you can use -- type 'help' to find out about them."; print "^^"; style bold; print "HOW TO DIE"; style roman; print "^^As Philo-R-DMD, you will die several times during the adventure. A new clone will be activated to take the place of the one that died, in a different location. The new Philo-R will usually have to retrace some of the old Philo-R's path; hopefully he won't make the same mistakes as his predecessor."; print "^^"; style bold; print "HOW TO WIN"; style roman; print "^^Simply complete the mission before expending all six of your clones. Remember... stay alert, and keep your laser handy."; print "^^"; location = page_1; ]; ! Print game info. [ InfoSub; print "Thank you for your request, Troubleshooter. Accessing archives..."; print "^^PARANOIA is based on a solo adventure by Sam Shirley in the Jan/Feb 1977 issue of ~SpaceGamer/FantasyGamer~ magazine, which in turn is based on the Paranoia roleplaying game. It was implemented in C on a Vax 11/780 by Tim Lister, which is how I got hold of it. Just for kicks (and the programming practice) I ported it to Inform."; print "^^Note for all you IF fans: it's not very interactive. It's not a proper IF game. It beats up the Inform parser in a dark alley. But it will make you appreciate all the other IF games more."; new_line; ]; ! Print your character's stats (not that they'll make any difference 8-). [ StatsSub; print "^ The Character Philo-R-DMD-", clone, "^"; print "^Primary Attributes Secondary Attributes ^============================================================================== ^Strength ..................... 13 Carrying Capacity ................. 30 ^Endurance .................... 13 Damage Bonus ....................... 0 ^Agility ...................... 15 Macho Bonus ....................... -1 ^Manual Dexterity ............. 15 Melee Bonus ...................... +5% ^Moxie ........................ 13 Aimed Weapon Bonus .............. +10% ^Chutzpah ...................... 8 Comprehension Bonus .............. +4% ^Mechanical Aptitude .......... 14 Believability Bonus .............. +5% ^Power Index .................. 10 Repair Bonus ..................... +5% ^============================================================================== ^Credits: 160 Secret Society: Illuminati Secret Society Rank: 1 ^Service Group: Power Services Mutant Power: Precognition ^Weapon: laser pistol; to hit, 40%; type, L; Range, 50m; Reload, 6r; Malfnt, 00 ^Skills: Basics 1(20%), Aimed Weapon Combat 2(35%), Intimidation 3(34%), ^ Personal Development 1(20%), Communications 2(29%), Laser 3(40%) ^Equipment: Red Reflec Armour, Laser Pistol, Laser Barrel (red), ^ Notebook & Stylus, Knife, Com Unit 1, Jump suit, ^ Secret Illuminati Eye-In-The-Pyramid(tm) Decoder ring, ^ Utility Belt & Pouches^"; ]; [ MoanSub; if (moan_turn < turns - 1) moan_count = 0; moan_turn = turns; switch (++moan_count) { 1: "That is an unauthorized command, Troubleshooter."; 2: "That is another unauthorized command, Troubleshooter."; 3: "That is yet another unauthorized command. Are you up to this mission, Troubleshooter? You can tell me. The computer is your friend."; 4: "Yet another unauthorized command! I am beginning to suspect you are a mutant commie traitor intent on sabotaging the computer."; 5: print "You hear a loud metallic voice. ~Attention! computer sabotage in progress!~ Before you can even type ~undo~, 13 kilbots glide around the corner and blast you into component atoms."; NewClone(); new_line; PlayerTo(page_1); } ]; [ HelpSub; print "Thank you for selecting the help option, Troubleshooter. Here is a list of the commands you are authorized to use.^ ^ 1, 2, ... Select an appropriate option ^ continue (or c) Continue your mission ^ look (or l) Look around your location ^ stats (or s) Show your player stats ^ info (or i) Print some game info ^ help (or h) Show this help message ^ save Save your game ^ restore Restore a saved game ^ restart Restart the game ^ version Show the game version ^ script Start a game transcript ^ unscript End the transcript ^ debug Hack into game debugger ^ quit (or q) Leave the game ^^If you have any questions about any of the commands, please don't hesitate to ask. The computer is your friend.^"; ]; ! Fiendish computer trap. [ TrapSub; print "~Congratulations, Troubleshooter. You have successfully activated the Secret Self-Incrimination Debugging Command, and uncovered one more commie mutant traitor.~^^While you wonder who the computer is referring to, hidden lasers dice you into convenient bite size pieces, which a service bot then carries off to the food vats."; NewClone(); new_line; PlayerTo(page_1); ]; ! Standard magic words. [ XyzzySub; print "A hollow voice intones "; if (ultra_violet == 0) "~That is an A-1 ULTRAVIOLET ONLY command~."; print "~ULTRAVIOLET CLEARANCE VERIFIED~. A giant electrode descends from the ceiling and you are engulfed in a pale blue dematerialization beam.^^You appear in what looks like a maze of twisty little passages, all alike. On looking around, you notice a little dwarf in the room. He seems to be in the process of throwing an axe at somebody behind you.^^THUD!"; NewClone(); new_line; PlayerTo(page_1); ]; ! Roll a few dice and return the result. [ DiceRoll number faces i total; total = 0; for (i = 0: i < number: i++) { total = total + random(faces); } return total; ]; ! Oops -- clone just died. Start a new one. [ NewClone; print "^^Clone ", clone, " just died."; if (++clone > MAXCLONE) { print "^^Oh dear. You seem to be out of clones."; deadflag = 1; } else { print "^^Clone ", clone, " now activated."; ultra_violet = 0; action_doll = 0; hit_points = 10; killer_count = 0; moan_count = 0; } ]; ! Brutally hack the input line before the parser gets hold of it. [ BeforeParsing; ! Only one word allowed. parse->1 = 1; ! Try an option number first. option = TryNumber(1); if (option ~= -1000) { parse-->1 = 'opt'; return; } ! If not, recognize other special commands. switch (NextWord()) { ! Single-letter commands. #n$c: parse-->1 = 'cont'; #n$h: parse-->1 = 'help'; #n$i: parse-->1 = 'info'; #n$l: parse-->1 = 'look'; #n$q: parse-->1 = 'quit'; #n$s: parse-->1 = 'stat'; ! Long versions of same. 'continue': parse-->1 = 'cont'; 'help': parse-->1 = 'help'; 'look': parse-->1 = 'look'; 'quit': parse-->1 = 'quit'; 'stats': parse-->1 = 'stat'; 'info': parse-->1 = 'info'; 'debug': parse-->1 = 'trap'; 'xyzzy': parse-->1 = 'xyzzy'; 'plugh': parse-->1 = 'xyzzy'; ! Let a few standard commands through. 'save': break; 'restore': break; 'restart': break; 'version': break; 'script': break; 'unscript': break; ! Otherwise, just moan. default: parse-->1 = 'moan'; } ]; ! Select a location option. [ Pick prop loc zr; loc = location.prop; zr = ZRegion(loc); if (zr == 2) { loc = RunRoutines(location, prop); zr = ZRegion(loc); } if (zr == 1) { PlayerTo(loc); rtrue; } if (zr == 3) print_ret (string) loc; ]; [ OptionSub; switch (option) { 1: Pick(pick1); 2: Pick(pick2); 3: Pick(pick3); default: MoanSub(); } ]; [ ContinueSub; Pick(next); ]; ! Custom status line showing no. of clones left. [ DrawStatusLine width posa posb; @split_window 1; @set_window 1; @set_cursor 1 1; style reverse; width = 0->33; posa = width-26; posb = width-13; spaces width; @set_cursor 1 2; print (name) location; if (width > 76) { @set_cursor 1 posa; print "Clone: ", clone; @set_cursor 1 posb; print (string) MOVES__TX, turns; } if (width > 63 && width <= 76) { @set_cursor 1 posb; print clone, "/", turns; } @set_cursor 1 1; style roman; @set_window 0; ]; ! ---------------------------- Grammar extensions ----------------------------- Include "Grammar"; Verb "opt" * -> Option; Verb "cont" * -> Continue; Verb "stat" * -> Stats; Verb "moan" * -> Moan; Verb "info" * -> Info; Verb "trap" * -> Trap; Verb "help" * -> Help; Verb "xyzzy" * -> Xyzzy; ! ------------------------------- The Node Class ------------------------------ ! This class implements the basic adventure 'page', a Node. Each node is ! just a location with a few special properties. Property text; ! Text printed when the node is visited. Property run; ! Routine run after the text is printed. Property next; ! Next node in sequence (if no options specified). Property opt1; ! Option text (or a routine to return it). Property opt2; ! Only 3 options catered for at the moment, Property opt3; ! although it can be increased easily. Property pick1; ! Nodes reached by choosing the appropriate option, Property pick2; ! or a routine to return it. There should be the Property pick3; ! same number of 'pick' props as 'opt' ones. Class Node with describe [; switch (ZRegion(self.text)) { 2: self.text(); 3: print (string) self.text; } if (self provides run) self.run(); self.numopts = 0; self.showopt(1, opt1); self.showopt(2, opt2); self.showopt(3, opt3); if (self.numopts > 0) return; if (self provides next && deadflag == 0) "^^Type ~c~ to continue the mission."; "^^[ There is no escape from this node. ]"; ], showopt [ n prop str; if (~~(self provides prop)) rfalse; str = self.prop; if (ZRegion(str) == 2) str = self.prop(); if (str == 0) rfalse; if (self.numopts++ == 0) print "^^"; print " (", n, ") ", (string) str, "^"; ], numopts 0, text "[ No description written for this node. ]", pick1 [; MoanSub(); ], pick2 [; MoanSub(); ], pick3 [; MoanSub(); ], next [; MoanSub(); ], has light; ! --------------------------------- The Game ---------------------------------- Node page_1 "Briefing Cell" with text "You wake up face down on the red and pink checked E-Z-Kleen linoleum floor. You recognise the pattern, it's the type preferred in the internal security briefing cells. When you finally look around you, you see that you are alone in a large mission briefing room.", next page_57; Node page_2 "Self Incrimination Station" with text "~Greetings,~ says the kindly Internal Security self incrimination expert who meets you at the door, ~How are we doing today?~ He offers you a doughnut and coffee and asks what brings you here. This doesn't seem so bad, so you tell him that you have come to confess some possible security lapses. He smiles knowingly, deftly catching your coffee as you slump to the floor. ~Nothing to be alarmed about; it's just the truth serum,~ he says, dragging you back into a discussion room.^^The next five hours are a dim haze, but you can recall snatches of conversation about your secret society, your mutant power, and your somewhat paranoid distrust of The Computer. This should explain why you are hogtied and moving slowly down the conveyer belt towards the meat processing unit in Food Services.", run [; NewClone(); ], next [; if (computer_request == 1) return page_45; return page_32; ]; Node page_3 "Computer Terminal" with text "You walk to the nearest Computer terminal and request more information about Christmas. The Computer says, ~That is an A-1 ULTRAVIOLET ONLY IMMEDIATE TERMINATION classified topic. What is your clearance please, Troubleshooter?~", opt1 "You give your correct clearance.", pick1 page_4, opt2 "You lie and claim Ultraviolet clearance.", pick2 page_5; Node page_4 "Computer Terminal" with text "~That is classified information, Troubleshooter, thank you for your inquiry. Please report to an Internal Security self incrimination station as soon as possible.~", next page_9; Node page_5 "Computer Terminal" with text "The computer says, ~Troubleshooter, you are not wearing the correct colour uniform. You must put on an Ultraviolet uniform immediately. I have seen to your needs and ordered one already; it will be here shortly. Please wait with your back to the wall until it arrives.~ In less than a minute an infrared arrives carrying a white bundle. He asks you to sign for it, then hands it to you and stands back, well outside of a fragmentation grenade's blast radius.", opt1 "You open the package and put on the uniform.", pick1 page_6, opt2 "You finally come to your senses and run for it.", pick2 page_7; Node page_6 "Computer Terminal" with text "The uniform definitely makes you look snappy and pert. It really looks impressive, and even has the new lopsided lapel fashion that you admire so much. What's more, citizens of all ranks come to obsequious attention as you walk past. This isn't so bad being an Ultraviolet. You could probably come to like it, given time.^^The beeping computer terminal interrupts your musings.", run [; ultra_violet = 1; ], next page_8; Node page_7 "Computer Terminal" with text "The corridor lights dim and are replaced by red battle lamps as the Security Breach alarms howl all around you. You run headlong down the corridor and desperately windmill around a corner, only to collide with a squad of 12 Blue clearance Vulture squadron soldiers. ~Stop, Slime Face,~ shouts the commander, ~or there won't be enough of you left for a tissue sample.~ ~All right, soldiers, stuff the greasy traitor into the uniform,~ he orders, waving the business end of his blue laser scant inches from your nose. With his other hand he shakes open a white bundle to reveal a pristine new Ultraviolet citizen's uniform. One of the Vulture squadron Troubleshooters grabs you by the neck in the exotic and very painful Vulture Clamp(tm) death grip (you saw a special about it on the Teela O'Malley show), while the rest tear off your clothes and force you into the Ultraviolet uniform. The moment you are dressed they step clear and stand at attention.^^~Thank you for your cooperation, sir,~ says the steely eyed leader of the Vulture Squad. ~We will be going about our business now.~ With perfect timing the Vultures wheel smartly and goosestep down the corridor. Special Note: don't make the mistake of assuming that your skills have improved any because of the uniform; you're only a Red Troubleshooter traitorously posing as an Ultraviolet, and don't you forget it! Suddenly, a computer terminal comes to life beside you.", run [; ultra_violet = 1; ], next page_8; Node page_8 "Computer Terminal" with text "~Now, about your question, citizen. Christmas was an old world marketing ploy to induce lower clearance citizens to purchase vast quantities of goods, thus accumulation a large amount of credit under the control of a single class of citizen known as Retailers. The strategy used is to imply that all good citizens give gifts during Christmas, thus if one wishes to be a valuable member of society one must also give gifts during Christmas. More valuable gifts make one a more valuable member, and thus did the Retailers come to control a disproportionate amount of the currency. In this way Christmas eventually caused the collapse of the old world. Understandably, Christmas has been declared a treasonable practice in Alpha Complex. Thank you for your inquiry.~^^You continue on your way to GDH7-beta.", next [; if (ultra_violet == 0) return page_10; return page_10a; ]; Node page_9 "Outside Self Incrimination Station" with text "As you walk toward the tubecar that will take you to GDH7-beta, you pass one of the bright blue and orange Internal Security self incrimination stations. Inside, you can see an IS agent cheerfully greet an infrared citizen and then lead him at gunpoint into one of the rubber lined discussion rooms.", opt1 "You decide to stop here and chat, as ordered by The Computer.", pick1 [; computer_request = 1; return page_2; ], opt2 "You just continue blithely on past.", pick2 [; if (ultra_violet == 0) return page_10; return page_10a; ]; Node page_10 "Alpha Complex" with text "You stroll briskly down the corridor, up a ladder, across an unrailed catwalk, under a perilously swinging blast door in urgent need of repair, and into tubecar grand central. This is the bustling hub of Alpha Complex tubecar transportation. Before you spreads a spaghetti maze of magnalift tube tracks and linear accelerators. You bravely study the specially enhanced 3-D tube route map; you wouldn't be the first Troubleshooter to take a fast tube ride to nowhere.", opt1 "You decide to ask The Computer about Christmas using a nearby terminal.", pick1 page_3, opt2 "You think you have the route worked out, so you'll board a tube train.", pick2 page_10a; Node page_10a "Tubecar" with text "You nervously select a tubecar and step aboard.", next [; if (DiceRoll(2, 10) < MOXIE) { print "You just caught a purple line tubecar.^"; return page_13; } else { print "You just caught a brown line tubecar.^"; return page_48; } ]; Node page_11 "Briefing Cell" with text [; print "The printing on the folder says ~Experimental Self Briefing.~ You open it and begin to read the following:^^"; print "Step 1: Compel the briefing subject to attend the briefing.^"; print "^ Note: See Experimental Briefing Sub Form Indigo-WY-2, ^ 'Experimental Self Briefing Subject Acquisition Through ^ The Use Of Neurotoxin Room Foggers.'^^"; print "Step 2: Inform the briefing subject that the briefing has begun.^"; print "^ ATTENTION: THE BRIEFING HAS BEGUN.^^"; print "Step 3: Present the briefing material to the briefing subject.^"; print "^ GREETINGS TROUBLESHOOTER.^ ^ YOU HAVE BEEN SPECIALLY SELECTED TO SINGLEHANDEDLY WIPE OUT A ^ DEN OF TRAITOROUS CHRISTMAS ACTIVITY. YOUR MISSION IS TO GO TO ^ GOODS DISTRIBUTION HALL 7-BETA AND ASSESS ANY CHRISTMAS ACTIVITY ^ YOU FIND THERE. YOU ARE TO INFILTRATE THESE CHRISTMAS CELEBRANTS, ^ LOCATE THEIR RINGLEADER, AN UNKNOWN MASTER RETAILER, AND BRING ^ HIM BACK FOR EXECUTION AND TRIAL. THANK YOU. THE COMPUTER IS ^ YOUR FRIEND.^^"; print "Step 4: Sign the briefing subject's briefing release form to indicate that the briefing subject has completed the briefing.^"; print "^ ATTENTION: PLEASE SIGN YOUR BRIEFING RELEASE FORM.^^"; print "Step 5: Terminate the briefing.^"; print "^ ATTENTION: THE BRIEFING IS TERMINATED.^^"; print "You walk to the door and hold your signed briefing release form up to the plexiglass window. A guard scrutinises it for a moment and then slides back the megabolts holding the door shut. You are now free to continue the mission."; ], opt1 "You wish to ask The Computer for more information about Christmas.", pick1 page_3, opt2 "You have decided to go directly to Goods Distribution Hall 7-beta.", pick2 [; if (ultra_violet == 0) return page_10; return page_10a; ]; Node page_12 "Briefing Cell" with text "You walk up to the door and push the button labelled ~push to exit.~ Within seconds a surly looking guard shoves his face into the small plexiglass window. You can see his mouth forming words but you can't hear any of them. You just stare at him blankly for a few moments until he points down to a speaker on your side of the door. When you put your ear to it you can barely hear him say, ~Let's see your briefing release form, bud. You aren't getting out of here without it.~", opt1 "You sit down at the table and read the Orange packet.", pick1 page_11, opt2 "You stare around the room some more.", pick2 page_57; Node page_13 "Tubecar" with text "You step into the shiny plasteel tubecar, wondering why the shape has always reminded you of bullets. The car shoots forward the instant your feet touch the slippery gray floor, pinning you immobile against the back wall as the tubecar careens toward GDH7-beta. Your only solace is the knowledge that it could be worse, much worse.^^Before too long the car comes to a stop. You can see signs for GDH7-beta through the window. With a little practice you discover that you can crawl to the door and pull open the latch.", next page_14; Node page_14 "GDH 7-Beta" with text "You manage to pull yourself out of the tubecar and look around. Before you is one of the most confusing things you have ever seen, a hallway that is simultaneously both red and green clearance. If this is the result of Christmas then it's easy to see the evils inherent in its practice. You are in the heart of a large goods distribution centre. You can see all about you evidence of traitorous secret society Christmas celebration; rubber faced robots whiz back and forth selling toys to holiday shoppers, simul-plast wreaths hang from every light fixture, while ahead in the shadows is a citizen wearing a huge red synthetic flower.", next page_22; Node page_15 "GDH 7-Beta" with text "You are set upon by a runty robot with a queer looking face and two pointy rubber ears poking from beneath a tattered cap. ~Hey mister,~ it says, ~you done all your last minute Christmas shopping? I got some real neat junk here. You don't wanna miss the big day tommorrow, if you know what I mean.~ The robot opens its bag to show you a pile of shoddy Troubleshooter dolls. It reaches in and pulls out one of them. ~Look, these Action Troubleshooter(tm) dolls are the neatest thing. This one's got moveable arms and when you squeeze him, his little rifle squirts realistic looking napalm. It's only 50 credits. Oh yeah, Merry Christmas.~", opt1 "You decide to buy the doll.", pick1 page_16, opt2 "You shoot the robot.", pick2 page_17, opt3 "You ignore the robot and keep searching the hall.", pick3 page_22; Node page_16 "GDH 7-Beta" with text "The doll is a good buy for fifty credits; it will make a fine Christmas present for one of your friends. After the sale the robot rolls away. You can use the doll later in combat. It works just like a cone rifle firing napalm, except that occasionally it will explode and blow the user to smithereens. But don't let that stop you.", next [; action_doll = 1; return page_22; ]; Node page_17 "GDH 7-Beta" with text "You whip out your laser and shoot the robot, but not before it squeezes the toy at you. The squeeze toy has the same effect as a cone rifle firing napalm, and the elfbot's armour has no effect against your laser.", run [ i robot_hp; for (i = 0: i < 2: i++) { if (DiceRoll(1, 100) <= 25) { print "^^You have been hit!"; hit_points = hit_points - DiceRoll(1, 10); if (hit_points <= 0) { NewClone(); self.goto = page_45; return; } } else { print "^^It missed you, but not by much!"; } if (DiceRoll(1, 100) <= 40) { print "^^You zapped the little bastard!"; robot_hp = robot_hp - DiceRoll(2, 10); if (robot_hp <= 0) { print "^^You wasted it! Good shooting!"; print "^^You will need more evidence, so you search GDH7-beta further"; if (hit_points < 10) print " after the GDH medbot has patched you up"; print "."; hit_points = 10; return; } } else { print "^^Damn! You missed!"; } } print "^^It tried to fire again, but the toy exploded and demolished it."; print "^^You will need more evidence, so you search GDH7-beta further"; if (hit_points < 10) print " after the GDH medbot has patched you up"; print "."; ], goto page_22, next [; return self.goto; ]; Node page_18 "GDH 7-Beta" with text "You walk to the centre of the hall, ogling like an infrared fresh from the clone vats. Towering before you is the most unearthly thing you have ever seen, a green multi armed mutant horror hulking 15 feet above your head. Its skeletal body is draped with hundreds of metallic strips (probably to negate the effects of some insidious mutant power), and the entire hideous creature is wrapped in a thousand blinking hazard lights. It's times like this when you wish you'd had some training for this job. Luckily the creature doesn't take notice of you but stands unmoving, as though waiting for a summons from its dark lord, the Master Retailer.^^WHAM! Suddenly you are struck from behind.", next [; if (DiceRoll(2, 10) < AGILITY) return page_19; return page_20; ]; Node page_19 "GDH 7-Beta" with text "Quickly you regain your balance, whirl and fire your laser into the Ultraviolet citizen behind you. For a moment your heart leaps to your throat, then you realise that he is indeed dead and you will be the only one filing a report on this incident. Besides, he was participating in this traitorous Christmas shopping, as is evident from the rain of shoddy toys falling all around you. Another valorous deed done in the service of The Computer!", next [; killer_count++; if (killer_count > MAXKILL - clone) return page_21; if (read_letter == 1) return page_22; return page_19a; ]; Node page_19a "GDH 7-Beta" with text "You are standing over the body of a dead Ultraviolet citizen.", opt1 "You search the body, keeping an eye open for Internal Security.", pick1 page_34, opt2 "You run away like the cowardly dog you are.", pick2 page_22; Node page_20 "GDH 7-Beta" with text "Oh no! you can't keep your balance. You're falling, falling head first into the Christmas beast's gaping maw. It's a valiant struggle; you think you are gone when its poisonous needles dig into your flesh, but with a heroic effort you jerk a string of lights free and jam the live wires into the creature's spine. The Christmas beast topples to the ground and begins to burn, filling the area with a thick acrid smoke. It takes only a moment to compose yourself, and then you are ready to continue your search for the Master Retailer.", next page_22; Node page_21 "GDH 7-Beta" with text "You have been wasting the leading citizens of Alpha Complex at a prodigious rate. This has not gone unnoticed by the Internal Security squad at GDH 7-beta. Suddenly, a net of laser beams spear out of the gloomy corners of the hall, chopping you into teeny, weeny bite size pieces.", run [; NewClone(); ], next page_45; Node page_22 "GDH 7-Beta" with text "You are searching Goods Distribution Hall 7-beta.", next [; switch (DiceRoll(1, 4)) { 1, 2: return page_18; 3: return page_15; 4: return page_29; } ]; Node page_23 "Computer Terminal" with text "You go to the nearest computer terminal and declare yourself a mutant. ~A mutant, he's a mutant,~ yells a previously unnoticed infrared who had been looking over your shoulder. You easily gun him down, but not before a dozen more citizens take notice and aim their weapons at you.", opt1 "You tell them that it was really only a bad joke.", pick1 page_28, opt2 "You want to fight it out, one against twelve.", pick2 page_24; Node page_24 "Computer Terminal" with text "Golly, I never expected someone to pick this. I haven't even designed the 12 citizens who are going to make a sponge out of you. Tell you what, I'll give you a second chance.", opt1 "You change your mind and say it was only a bad joke.", pick1 page_28, opt2 "You REALLY want to shoot it out.", pick2 page_25; Node page_25 "Computer Terminal" with text "Boy, you really can't take a hint!^^They're closing in. Their trigger fingers are twitching, they're about to shoot. This is your last chance.", opt1 "You tell them it was all just a bad joke.", pick1 page_28, opt2 "You are going to shoot.", pick2 page_26; Node page_26 "Computer Terminal" with text "You can read the cold, sober hatred in their eyes (they really didn't think it was funny), as they tighten the circle around you. One of them shoves a blaster up your nose, but that doesn't hurt as much as the multi-gigawatt carbonium tipped food drill in the small of your back. You spend the remaining micro-seconds of your life wondering what you did wrong.", run [; NewClone(); ], next page_32; Node page_27 "Void" with text "Doesn't exist. Can't happen with computer version. Designed to catch dice cheats."; Node page_28 "Computer Terminal" with text "They don't think it's funny.", next page_26; Node page_29 "GDH 7-Beta" with text "~Psst, hey citizen, come here. Pssfft,~ you hear. When you peer around you can see someone's dim outline in the shadows. ~I got some information on the Master Retailer. It'll only cost you 30 psst credits.~", opt1 "You pay the 30 credits for the info.", pick1 page_30, opt2 "You would rather threaten him for the information.", pick2 page_31, opt3 "You ignore him and walk away.", pick3 page_22; Node page_30 "Outside Blast Door" with text "You step into the shadows and offer the man a thirty credit bill. ~Just drop it on the floor,~ he says. ~So you're looking for the Master Retailer, pssfft? I've seen him, he's a fat man in a fuzzy red and white jump suit. They say he's a high programmer with no respect for proper security. If you want to find him then pssfft step behind me and go through the door.~^^Behind the man is a reinforced plasteel blast door. The centre of it has been buckled toward you in a manner you only saw once before when you were field testing the rocket assist plasma slingshot (you found it easily portable but prone to misfire). Luckily it isn't buckled too far for you to make out the warning sign. WARNING!! Don't open this door or the same thing will happen to you. Opening this door is a capital offense. Do not do it. Not at all. This is not a joke.", opt1 "You use your Precognition mutant power on opening the door.", pick1 page_56, opt2 "You just go through the door anyway.", pick2 page_33, opt3 "You decide it's too dangerous and walk away.", pick3 page_22; Node page_31 "GDH 7-Beta" with text "Like any good troubleshooter you make the least expensive decision and threaten him for information. With lightning like reflexes you whip out your laser and stick it up his nose. ~Talk, you traitorous Christmas celebrator, or who nose what will happen to you, yuk yuk,~ you pun menacingly, and then you notice something is very wrong. He doesn't have a nose. As a matter of fact he's made of one eighth inch cardboard and your laser is sticking through the other side of his head. ~Are you going to pay?~ says his mouth speaker, ~or are you going to pssfft go away stupid?~", opt1 "You pay the 30 credits.", pick1 page_30, opt2 "You pssfft go away stupid.", pick2 page_22; Node page_32 "Mission Briefing" with text "Finally it's your big chance to prove that you're as good a troubleshooter as your previous clone. You walk briskly to mission briefing and pick up your previous clone's personal effects and notepad. After reviewing the notes you know what has to be done. You catch the purple line to Goods Distribution Hall 7-beta and begin to search for the blast door.", next page_22; Node page_33 "In The Barrel" with text "You release the megabolts on the blast door, then strain against it with your awesome strength. Slowly the door creaks open. You bravely leap through the opening and smack your head into the barrel of a 300 mm 'ultra shock' class plasma cannon. It's dark in the barrel now, but just before your head got stuck you can remember seeing a group of technicians anxiously watch you leap into the room.", run [; blast_door = 1; ], next [; if (ultra_violet == 1) return page_35; return page_36; ]; Node page_34 "GDH 7-Beta" with text "You have found a sealed envelope on the body. You open it and read:^^~WARNING: Ultraviolet Clearance ONLY. DO NOT READ. Memo from Chico-U-MRX4 to Harpo-U-MRX5. The planned takeover of the Troubleshooter Training Course goes well, Comrade. Once we have trained the unwitting bourgeois troubleshooters to work as communist dupes, the overthrow of Alpha Complex will be unstoppable. My survey of the complex has convinced me that no one suspects a thing; soon it will be too late for them to oppose the revolution. The only thing that could possibly impede the people's revolution would be someone alerting The Computer to our plans (for instance, some enterprising Troubleshooter could tell The Computer that the communists have liberated the Troubleshooter Training Course and plan to use it as a jumping off point from which to undermine the stability of all Alpha Complex), but as we both know, the capitalistic Troubleshooters would never serve the interests of the proletariat above their own bourgeois desires. P.S. I'm doing some Christmas shopping later today. Would you like me to pick you up something?~^^When you put down the memo you are overcome by that strange deja-vu again. You see yourself talking privately with The Computer. You are telling it all about the communists' plan, and then the scene shifts and you see yourself showered with awards for foiling the insidious communist plot to take over the complex.", run [; read_letter = 1; ], opt1 "You rush off to the nearest computer terminal to expose the commies.", pick1 page_46, opt2 "You wander off to look for more evidence.", pick2 page_22; Node page_35 "In The Barrel" with text "~Oh master,~ you hear through the gun barrel, ~where have you been? It is time for the great Christmas gifting ceremony. You had better hurry and get the costume on or the trainee may begin to suspect.~ For the second time today you are forced to wear attire not of your own choosing. They zip the suit to your chin just as you hear gunfire erupt behind you. ~Oh no! Who left the door open? The commies will get in. Quick, fire the laser cannon or we're all doomed.~^^~Too late you capitalist swine, the people's revolutionary strike force claims this cannon for the proletariat's valiant struggle against oppression. Take that, you running dog imperialist lackey.~ ZAP, KAPOW.~^^Just when you think that things couldn't get worse, ~Aha, look what we have here, the Master Retailer himself with his head caught in his own cannon. His death will serve as a symbol of freedom for all Alpha Complex. Fire the cannon.~", run [; NewClone(); ], next page_32; Node page_36 "In The Barrel" with text "~Congratulations, troubleshooter, you have successfully found the lair of the Master Retailer and completed the Troubleshooter Training Course test mission,~ a muffled voice tells you through the barrel. ~Once we dislodge your head from the barrel of the 'Ultra Shock' plasma cannon you can begin with the training seminars, the first of which will concern the 100% accurate identification and elimination of unregistered mutants. If you have any objections please voice them now.~", opt1 "You appreciate his courtesy and voice an objection.", pick1 [; NewClone(); return page_32; ], opt2 "After your head is removed from the cannon, you register as a mutant.", pick2 page_23, opt3 "After your head is removed from the cannon, you go to the unregistered mutant identification and elimination seminar.", pick3 page_37; Node page_37 "Lecture Hall" with text "~Come with me please, Troubleshooter,~ says the Green clearance technician after he has dislodged your head from the cannon. ~You have been participating in the Troubleshooter Training Course since you got off the tube car in GDH7-beta,~ he explains as he leads you down a corridor. ~The entire Christmas assignment was a test mission to assess your current level of training. You didn't do so well. We're going to start at the beginning with the other student. Ah, here we are, the mutant identification and elimination lecture.~ He shows you into a vast lecture hall filled with empty seats. There is only one other student here, a Troubleshooter near the front row playing with his Action Troubleshooter(tm) figure. ~Find a seat and I will begin,~ says the instructor.", next page_38; Node page_38 "Lecture Hall" with text [; print "I am Plato-B-PHI-", plato_clone, ", head of mutant propaganda here at the training course. If you have any questions about mutants please come to me. Today I will be talking about mutant detection. Detecting mutants is very easy. One simply watches for certain tell tale signs, such as the green scaly skin, the third arm growing from the forehead, or other similar disfigurements so common with their kind. There are, however, a few rare specimens that show no outward sign of their treason. This has been a significant problem, so our researchers have been working on a solution. I would like a volunteer to test this device,~ he says, holding up a ray gun looking thing. ~It is a mutant detection ray. This little button detects for mutants, and this big button stuns them once they are discovered. Who would like to volunteer for a test?~ The Troubleshooter down the front squirms deeper into his chair."; ], opt1 "You volunteer for the test.", pick1 page_39, opt2 "You duck behind a chair and hope the instructor doesn't notice you.", pick2 page_40; Node page_39 "Lecture Hall" with text "You bravely volunteer to test the mutant detection gun. You stand up and walk down the steps to the podium, passing a very relieved Troubleshooter along the way. When you reach the podium Plato-B-PHI hands you the mutant detection gun and says, ~Here, aim the gun at that Troubleshooter and push the small button. If you see a purple light, stun him.~ Grasping the opportunity to prove your worth to The Computer, you fire the mutant detection ray at the Troubleshooter. A brilliant purple nimbus instantly surrounds his body. You slip your finger to the large stun button and he falls writhing to the floor. ~Good shot,~ says the instructor as you hand him the mutant detection gun, ~I'll see that you get a commendation for this. It seems you have the hang of mutant detection and elimination. You can go on to the secret society infiltration class. I'll see that the little mutie gets packaged for tomorrow's mutant dissection class.~", next page_41; Node page_40 "Lecture Hall" with text "You breathe a sigh of relief as Plato-B-PHI picks on the other Troubleshooter. ~You down here in the front,~ says the instructor pointing at the other Troubleshooter, ~you'll make a good volunteer. Please step forward.~ The Troubleshooter looks around with a `who me?' expression on his face, but since he is the only one visible in the audience he figures his number is up. He walks down to the podium clutching his Action Troubleshooter(tm) doll before him like a weapon. ~Here,~ says Plato-B-PHI, ~take the mutant detection ray and point it at the audience. If there are any mutants out there we'll know soon enough.~ Suddenly your skin prickles with static electricity as a bright purple nimbus surrounds your body. ~Ha Ha, got one,~ says the instructor. ~Stun him before he gets away.~", run [; while (1) { if (DiceRoll(1, 100) <= 30) { print "^^His shot hits you. You feel numb all over."; self.goto = page_49; return; } else { print "^^His shot just missed."; } if (DiceRoll(1, 100) <= 40) { print "^^You just blew his head off. His lifeless hand drops the mutant detector ray."; return; } else { print "^^You burnt a hole in the podium. He sights the mutant detector ray on you."; } } ], goto page_50, next [; return self.goto; ]; Node page_41 "Hallway" with text "You stumble down the hallway of the Troubleshooter Training Course looking for your next class. Up ahead you see one of the instructors waving to you. When you get there he shakes your hand and says, ~I am Jung-I-PSY. Welcome to the secret society infiltration seminar. I hope you...~ You don't catch the rest of his greeting because you're paying too much attention to his handshake; it is the strangest thing that has ever been done to your hand, sort of how it would feel if you put a neuro whip in a high energy palm massage unit. It doesn't take you long to learn what he is up to; you feel him briefly shake your hand with the secret Illuminati handshake.", opt1 "You respond with the proper Illuminati code phrase, ~Ewige Blumenkraft~.", pick1 page_42, opt2 "You ignore this secret society contact.", pick2 page_43; Node page_42 "Hallway" with text "~Aha, so you are a member of the elitist Illuminati secret society,~ he says loudly, ~that is most interesting.~ He turns to the large class already seated in the auditorium and says, ~You see, class, by simply using the correct hand shake you can identify the member of any secret society. Please keep your weapons trained on him while I call a guard.", opt1 "You run for it.", pick1 page_51, opt2 "You wait for the guard.", pick2 page_52; Node page_43 "Lecture Hall" with text "You sit through a long lecture on how to recognise and infiltrate secret societies, with an emphasis on mimicking secret handshakes. The basic theory, which you realise to be sound from your Iluminati training, is that with the proper handshake you can pass unnoticed in any secret society gathering. What's more, the proper handshake will open doors faster than an 'ultra shock' plasma cannon. You are certain that with the information you learn here you will easily be promoted to the next level of your Illuminati secret society. The lecture continues for three hours, during which you have the opportunity to practice many different handshakes. Afterwards everyone is directed to attend the graduation ceremony. Before you must go you have a little time to talk to The Computer about, you know, certain topics.", opt1 "You go looking for a computer terminal.", pick1 page_44, opt2 "You go to the graduation ceremony immediately.", pick2 page_55; Node page_44 "Computer Terminal" with text "You walk down to a semi-secluded part of the training course complex and activate a computer terminal. ~AT YOUR SERVICE~ reads the computer screen.", opt1 "You register yourself as a mutant.", pick1 page_23, opt2 "You change your mind and go to the graduation ceremony.", pick2 page_55, opt3 [; if (read_letter == 0) rfalse; "You want to chat about the commies."; ], pick3 [; if (read_letter == 0) rfalse; return page_46; ]; Node page_45 "Living Quarters" with text "~Hrank Hrank,~ snorts the alarm in your living quarters. Something is up. You look at the monitor above the bathroom mirror and see the message you have been waiting for all these years. ~ATTENTION TROUBLESHOOTER, YOU ARE BEING ACTIVATED. PLEASE REPORT IMMEDIATELY TO MISSION ASSIGNMENT ROOM A17/GAMMA/LB22. THANK YOU. THE COMPUTER IS YOUR FRIEND.~ When you arrive at mission assignment room A17-gamma/LB22 you are given your previous clone's remaining possessions and notebook. You puzzle through your predecessor's cryptic notes, managing to decipher enough to lead you to the tube station and the tube car to GDH 7-beta.", next [; if (ultra_violet == 0) return page_10; return page_10a; ]; Node page_46 "Computer Terminal" with text "~Why do you ask about the communists, Troubleshooter? It is not in the interest of your continued survival to be asking about such topics,~ says The Computer.", opt1 "You insist on talking about the communists.", pick1 page_53, opt2 "You change the subject.", pick2 page_54; Node page_47 "Computer Terminal" with text "The Computer orders the entire Vulture squadron to terminate the Troubleshooter Training Course. Unfortunately you too are terminated for possessing classified information.^^Don't act so innocent, we both know that you are an Illuminatus which is in itself an act of treason.^^Don't look to me for sympathy.", run [; deadflag = 1; ]; Node page_48 "Tubecar" with text "The tubecar shoots forward as you enter, slamming you back into a pile of garbage. The front end rotates upward and you, the garbage and the garbage disposal car shoot straight up out of Alpha Complex. One of the last things you see is a small blue sphere slowly dwindling behind you. After you fail to report in, you will be assumed dead.", run [; NewClone(); ], next page_45; Node page_49 "Lecture Hall" with text "The instructor drags your inert body into a specimen detainment cage. ~He'll make a good subject for tomorrow's mutant dissection class,~ you hear.", run [; NewClone(); ], next page_32; Node page_50 "Lecture Hall" with text "You put down the other Troubleshooter, and then wisely decide to drill a few holes in the instructor as well; the only good witness is a dead witness. You continue with the training course.", run [; plato_clone++; ], next page_41; Node page_51 "Hallway" with text "You run for it, but you don't run far. Three hundred strange and exotic weapons turn you into a freeze dried cloud of soot.", run [; NewClone(); ], next page_32; Node page_52 "Hallway" with text "You wisely wait until the instructor returns with a Blue Internal Security guard. The guard leads you to an Internal Security self incrimination station.", next page_2; Node page_53 "Computer Terminal" with text "You tell The Computer about:", opt1 "The commies who have infiltrated the Troubleshooter Training Course and the^ impending People's Revolution.", pick1 page_47, opt2 "Something less dangerous.", pick2 page_54; Node page_54 "Computer Terminal" with text "~Do not try to change the subject, Troubleshooter,~ says The Computer. ~It is a serious crime to ask about the communists. You will be terminated immediately. Thank you for your inquiry. The Computer is your friend.~ Steel bars drop to your left and right, trapping you here in the hallway. A spotlight beams from the computer console to brilliantly illuminate you while the speaker above your head rapidly repeats ~Traitor, Traitor, Traitor.~ It doesn't take long for a few guards to notice your predicament and come to finish you off.", run [; NewClone(); ], next [; if (blast_door == 0) return page_45; return page_32; ]; Node page_55 "Auditorium" with text [; print "You and 300 other excited graduates are marched from the lecture hall and into a large auditorium for the graduation exercise. The auditorium is extravagantly decorated in the colours of the graduating class. Great red and green plasti-paper ribbons drape from the walls, while a huge sign reading ~Congratulations class of GDH7-beta-203.44/A~ hangs from the raised stage down front. Once everyone finds a seat the ceremony begins. Jung-I-PSY is the first to speak, ~Congratulations students, you have successfully survived the Troubleshooter Training Course. It always brings me great pride to address the graduating class, for I know, as I am sure you do too, that you are now qualified for the most perilous missions The Computer may select for you. The thanks is not owed to us of the teaching staff, but to all of you, who have persevered and graduated. Good luck and die trying.~ Then the instructor begins reading the names of the students who one by one walk to the front of the auditorium and receive their diplomas. Soon it is your turn, ~Philo-R-DMD, graduating a master of mutant identification and secret society infiltration.~ You walk up and receive your diploma from Plato-B-PHI-", plato_clone, ", then return to your seat. There is another speech after the diplomas are handed out, but it is cut short by by rapid fire laser bursts from the high spirited graduating class. You are free to return to your barracks to wait, trained and fully qualified, for your next mission. You also get that cherished promotion from the Illuminati secret society. In a week you receive a detailed Training Course bill totalling 1,523 credits."; ], run [; deadflag = 2; ]; Node page_56 "Outside Blast Door" with text "That familiar strange feeling of deja-vu envelops you again. It is hard to say, but whatever is on the other side of the door does not seem to be intended for you.", opt1 "You open the door and step through.", pick1 page_33, opt2 "You go looking for more information.", pick2 page_22; Node page_57 "Briefing Cell" with text "In the centre of the room is a table and a single chair. There is an Orange folder on the table top, but you can't make out the lettering on it.", opt1 "You sit down and read the folder.", pick1 page_11, opt2 "You leave the room.", pick2 page_12; ! --------------------------------- The End -----------------------------------