! Centipede ! Copyright 2000,2001 by J. Robinson Wheeler ! for IF-arcade bundle Started: 12-20-2000 7:12pm Constant Story "MISSION CENTIPEDE"; Constant Headline "^a short story of senseless violence^by J. Robinson Wheeler^"; Release 1; Replace AskSub; Replace AskForSub; Replace TellSub; Replace AnswerSub; Replace InvWideSub; Replace InvTallSub; Replace StrongSub; Include "Parser"; Attribute activeloop; !Constant DEATH_MENTION_UNDO; Constant DIALECT_US; Constant MAX_SCORE = 2500; Object LibraryMessages "lm" with before [; Miscellany: switch( lm_n ) { 5: print "^Would you like to RESTART, RESTORE a saved game"; #Ifdef DEATH_MENTION_UNDO; print ", UNDO your last move"; #Endif; ", or QUIT?"; 19: << Examine player >>; 38: #Ifdef DIALECT_US; "That's not a verb I recognize."; #ifnot; "That's not a verb I recognise."; #endif; } ]; Include "VerbLib"; Include "looptalk"; !Include "menus"; Class Room has light ; [ Initialise o; lookmode = 2; ! verbose on inventory_style = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT + CONCEAL_BIT; objectloop (o ofclass Character) { o.InitQuips(); } location = startroom; move Chub to startroom; move Duggers to startroom; move Mitchum to startroom; ChangePlayer(Mitchum); SetPronoun('it',emergency_station); print "^^^~100 feet per second,~ Chub says.^^ Duggers flips you a holovid of his scary trash girlfriend. ~Touch the zipper icon,~ he says.^^ There is a shudder in the cabin, and warning lights flare greasy-green in your night vision goggles. ~Hang on, campers,~ yells Chub. ~Descent jets one and two just jammed up. We're in for a bumpy landing.~^^ Duggers grunts. ~So much for surprise. They live in the ground. Every stinking bug for miles is gonna feel the vibrations.~^^ ~Gravity zero point nine-sixty Gees,~ Chub says, her elbows swinging out at awkward angles, flapping like stunted chicken wings. She's fighting the two joysticks, trying to keep this iron turd level as it streaks through the sky. ~On my mark, Mitchum,~ she says.^"; HitAnyKey(); ! return 2; ]; Object game "game" with state 0 ; Object Mitchum "Mitchum" with name 'Mark' 'Mitchum' 'Corporal' 'cpl', description [; "You're in good health. for a guy who's been awake and on active duty for 76 straight hours. The stimulants they rationed you seem to be working fine with no side effects. You're pumped and ready to kill some bugs for God, planet and country. "; ], has male proper ; Object -> combat_suit "combat suit" with name 'combat' 'suit', description "Your standard-issue insulated combat suit. ", before [; Disrobe, Drop: "You'll need that suit on to survive in the freezing marshlands. "; ], has worn transparent ; Object -> -> coolant_controls "coolant controls" with name 'coolant' 'controls', description "Your combat suit comes with adjustable climate controls.", before [; Set: "No time to mess with those now, soldier. "; Disrobe, Drop: "They're built into the suit. "; ], ; Object -> helmet "helmet" with name 'helmet', description "Just your standard combat helmet.", before [; Disrobe, Drop: "You'll need that helmet to survive and to communicate with Duggers and Chub. "; ], has worn transparent ; Object -> -> faceplate "faceplate" with name 'faceplate' 'face' 'plate', description "The faceplate of the helmet protects your face from harm during combat as well as hazardous climate conditions. ", before [; Disrobe, Drop: "The faceplate is part of the helmet. "; Open: "You'll catch hell from Chub if she sees you open your faceplate. If you endanger yourself, you endanger everyone on the mission. "; Close: "The faceplate is already closed. "; ], ; Object -> night_vision_goggles "night vision goggles" with name 'night' 'vision' 'goggles' 'specs', description "The night vision goggles are an older model of specs. Apparently, they're going to be more useful on this mission than the top of the line version. Something about better motion interpolation and better contrast in the -4C to 4C temperature range. ", before [; Disrobe, Drop: "You won't be able to see a damn thing without them, soldier. "; ], has worn ; Object -> game_counter "belt of ammo clips" with name 'ammo' 'clips' 'ammunition' 'clip' 'belt' 'of', description "Enough ammunition for a four-hour firefight. ", before [; Disrobe, Drop: "You may need all of it on this mission, so you keep it strapped on. "; ], number 0, each_turn [; if ( self hasnt general ) { if (self.number < 99) { self.number++; if ( self.number == 2 || self.number == 3 || self.number == 5 || self.number == 6 || self.number == 18 ) rfalse; else print "^"; switch( self.number ) { 0: "^[bug]"; 1: "Your forehead just started to itch."; 4: if ( holovid in player ) { move holovid to Duggers; "Duggers swipes his holovid from you. ~Hey man, don't you never give nothing back?~ he says. He gives his girlfriend's picture a quick ogle before stuffing it into a side pocket of his pants."; } "Duggers takes his holovid back. ~Mitchum, do you ever give anything back?~ he says. He gives his girlfriend's picture a quick ogle before stuffing it into a side pocket of his vest."; 7: "Chub's voice starts counting down. You can hear the strain in her voice, the pitch rising and falling in synchronization with the cabin's spastic lurching and yawing."; 8: "Chub says, ~Four ...~"; 9: "Chub says, ~Three ...~"; 10: "Chub says, ~Shit ...!~"; 11: "Chub says, ~Shit!~"; 12: "Chub says, ~Mark!~"; 13: "Chub screams, ~What are you waiting for? Mitchum!~"; 14: game.state = 1; if ( player in emergency_station ) move player to startroom; "Chub says, ~Duggers!~^^ Duggers is already up the ladder and grabbing for the parachute release levers. He yanks them hard, there is a noise like a screech owl colliding with a sheet of inch-thick plexiglass, and then the cabin seems to stop in midair, jolting everything that's not nailed down, which includes you and Duggers. The two of you smash to the cabin floor. You land on your side, the hard ammo clips strapped to your side bruising your ribs, damn near cutting through your suit."; 15: "Just as you start to sit up, Duggers attacks your throat with his elbow, crushing your windpipe. You flop backwards like an upended beetle, choking and gagging, pain throbbing outward from your neck, your lungs burning.^^ The fall seems to have damaged your helmet, because you can't hear Duggers' voice any more. He's holding you by your gear straps, his faceplate right in front of yours, screaming obscenities. Probably just as well that you can't hear it."; 16: give hatch open; "Chub comes racing into view. You watch, hearing only your own jaggered breathing as your windpipe relaxes, as an argument ensues. Hands haul you to your feet near the hatch. Chub blows it open. Waited too long to release the craft's parachutes, going to have to jump for it. Probably cost us the mission and our lives, you reflect."; 17: remove Duggers; remove Chub; if ( player in emergency_station ) print "Duggers leaps out of the hatch. Chub yanks you down from the emergency station and throws you headfirst out of the hatch.^"; else print "Duggers leaps out of the hatch. Chub shoves at you from behind. You still can't hear any voices.^"; game.state = 2; PlayerTo( midair1 ); rtrue; 19: if ( ripcord hasnt general ) "You pull the rip-cord, and your chute opens. Your neck snaps forward, your throat closes hard and painfully. As you raise your head, your throat doesn't open again. It feels swollen shut, and you can't breathe.^^ Far below, there's a round, white-green flare -- the landing craft, crashing down."; "Far below, there's a round, white-green flare -- the landing craft, crashing down."; 20: "You see a cloud-layer below. Maybe it's mist on the ground? You brace for impact."; 21: "You fall through the clouds. Not the ground, not yet. You take a small breath, and another. You spot Duggers' chute below you, slipping sideways, furling and raveling, sinking into wet blackness. That's the ground, the marsh right below you."; 22: game.state = 3; move player to marsh_underwater; "Your boots hit a layer of wet slime, and you sink into it up to your buckling knees. You lose your balance, but can't move your feet to stabilize yourself. Slime splashes up into your faceplate. Your hands sink into something gelatinous. Everything is cold. You must be underwater."; 23: "You put your hands down, hoping to raise your weight, but there's no support. Your arms sink like toothpicks into a sponge cake."; 24: game.state = 4; PlayerTo( marsh_standing ); "You curl your legs up under your chest, slowly drawing them out of the muck, and you replant them in fresh muck. Gradually you wobble yourself into an upright fetal position and try to stand. You must weigh 350 pounds with all of your gear. Carefully, slowly, you stand. You get a little help from your chute, yanked by a sudden wind. For a moment you're not sure whether you're actually standing or not, and you realize it's because your faceplate is covered with marsh slime."; 25: "Your chute, still caught by the wind, starts to pull you over backwards. You're going to fall into the marsh again if you don't release it."; 26: game.state = 5; PlayerTo( marshlands ); "You lift your arm to wipe off your faceplate, and a screaming pain shoots from your shoulder down to the end of your pinky. You grit your teeth and ignore it. You figure you can probably still hold and fire your weapon, so there's no use crying about it. You smear the slime away with your other hand, and see the marshland.^^ Duggers and Chub are standing in front of you, pointing and screaming at you, wondering why you don't answer them."; 27: "You point at the comm antenna on your helmet and tap your finger to it. You shake your head.^^ Duggers flings his arms wide and throws his head back, the universal pantomime for, ~Well, that's just fucking GREAT.~ Chub approaches you, removing her thick gloves, reaching for her toolbelt. You hear her hands bumping against your helmet."; 28: "There is a burst of deafening static in your helmet. You flinch and turn to face Chub, who glowers at you and shoves your head away so she can keep working. You feel the bones in your neck grind together, a pain so bad you want to black out. Your training asserts itself. You clench your fists, bite your tongue, and hang onto consciousness."; 29: "There's another burst of static, and Chub's voice poking through it.^^ ~...hear that? ... if you ... --kay? ...Mitchum!~"; 30: "You hear Chub say, ~How about that?~^^ ~Got it,~ you say.^^ A vibration ripples the water. Duggers's voice: ~Heads up! Heads up! Can he hear through that goddamn thing yet? Come on!~"; 31: print "Chub whips out her plasma rifle. You whip out Charlene. She's your partner, ready for the dance. You draw some strength from her, ignoring the spasms in your bad arm. ^^"; style bold; print "Easy girl. Just... hold it ... steady."; style roman; new_line; rtrue; 32: "The vibration comes again. Somewhere, far ahead, twisting its way closer, the bug is coming."; 33: "Chub says, ~I've called for reinforcements, but they won't come in until we hold this position for a while. No use aiding a lost cause.~^^ You say, ~It is a lost cause, isn't it? The bugs are just going to keep coming.~^^ You hear the roar of many feet, so many feet it makes your stomach turn. Up ahead, through that maze of mushrooms, you see a slickened shape pass by, west to east."; 34: "Duggers fires. Chub fires. Mushrooms explode into spores. Fast-growing spores, you remember. In ten minutes, there will be more of them, full-sized. How are you supposed to win a war like this?"; 35: "Up ahead, the behemoth twists like a snake, heading west, then east, then directly at you. Duggers fires at the head of it, and the head explodes, but the beast keeps coming. It turns east again."; 36: "You fire, and the bug is cut in two. The damn segments don't stop moving, though. Now there's two bugs, each twisting this way and that. One segment reaches a small tunnel, formed by columns of mushrooms to each side, and it twists between them, heading straight for you.^^ ~Fire! Fire!~ Chub screams."; 37: "Your rifles flare in the damp night, shooting plasma pulses a million degrees hot and moving at 400 miles an hour. The charging beast loses its head, and then another head, and then another head, and then another. Suddenly, there are no more heads, it is gone.^^ The second segment twists into view, just beyond the closest range of mushrooms, about to invade your empty black marshland base.^^ Another noise, unlike the steady thrum of these insect feet, begins to grow, with a doppler effect, from dead ahead. A flying bug."; 38: "It's a tick, two tons of chitinous carapace, bristly fangs, and bug meat, hurtling straight at you, over the tops of the mushrooms. Its lazy feet scrape the mushroom heads, poisoning them as it passes, making them change to ugly colors. If another bug touches one of those..."; 39: "Chub splits the centipede again in two. They're coming at you from both sides now.^^ Duggers is right in the tick's path. He stands his ground, shouting at the sonofabitch. Duggers fires at it, misses. Fires again, misses. It's coming in too fast."; 40: "The tick mows Duggers down, its sticky feet latching onto his body. You see his face purple and blacken as he's carted away to some nest to be digested. There is a scream, and then silence.^^ Dead silence. The bugs are gone. There's two of you left, now, and they'll come again."; 41: "You were right. More mushrooms have grown up already. It's harder to see. Up ahead, you see the segmented beast twisting this way and that. Up ahead, you hear another tick approaching like a dive bomber, coming right at you and Chub.^^ Up ahead, you hear the thrum. Wave number two. Or is it just a continuation of the first wave?^^ Something else, something new. Feet clicking, splashing, an almost musical chirp as the legs saw back and forth. What the hell? Some sort of cricket? No."; 42: "It's a scorpion, sidling sideways. Fortunately, it's not coming at you. You take it out with one quick shot. You're getting better at this.^^ You'd better get even better, fast. Here comes that tick, with its screaming song, with its poisonous legs, turning the mushrooms purple and blue.^^ Here comes the beast itself. Chub cuts it into three parts, damn her eyes."; 43: print "You and Chub concentrate your fire on the tick, and vaporize it with only about twenty yards to spare, a split-second. Plasma spray and unvaporized bug bits sizzle over you, a wet coat of death.^^ And then you hear another, bearing down on you, following its kamikaze partner, poisoning even more mushr--^^"; style bold; print "Oh no."; style roman; new_line; rtrue; 44: "Chub takes a lucky shot and destroys the second tick before it even gets close, but it's too late. One of the centipede segments hit the poisoned mushrooms, the oil gets into its skin, scrambling its stupid bug neurons. Crazed, it charges forward, straight at you. Another segment hits another poisoned shroom, and it, too, charges screaming at you.^^ The two segments swoop down on either side of you and Chub, circle, and play back and forth, zigzagging. The poison's worn off, thankfully."; 45: "You see more segments, arriving out of the darkness to your left and right. Where are they coming from? Just two segments, a head and a tail, in front and behind you, joining the dance. There's five of these damn things now, and more every minute."; 46: "You shoot and shoot, vaporizing as many as you can. You start to think you're winning, that you're going to get out of this, when out of the corner of your eye, you see Chub backing up, not looking where she's going. You yell for her to move, to watch out. You're still busy firing as you try to move closer to her, to yank her out of the way, to give her cover, but it's too late. A new segment dances into the marsh, runs Chub down, stomps her into the muck. You hear a shriek in your helmet that becomes a helpless gurgle. The beast drips acid out of its flanks, out of its disgusting glands, and something sizzles underwater.^^ A final shot from your rifle sails into the gloom. Far away, a mushroom explodes.^^ Again, silence. And you're the only one left."; 47: "You can't see for all of the mushrooms blocking your way. You can hear movement, far ahead, but you can't see anything but the mushrooms. They're different colors now. Are you hallucinating? And where's the backup Chub called for? How long are they going to take?"; 48: "You vent your frustrations on the mushrooms, shooting again and again. They explode, releasing spores that will grow more of them soon. You don't care. You need the space to move if you're going to win this battle, if you're going to survive.^^ You know, though, that it's just a matter of time. You wonder what the point of this is, and you laugh. It's a sick joke to someone up there in HQ, someone in a chushy office on Atari Prime. It's just some stupid game."; 49: "You hear the thunder, the singsong chirping, the freight train whistle doing its doppler effect, doubled, tripled. All the bugs are back. More than ever.^^ A tick whizzes by you to your left, just missing you. You hear it hiss its hatred."; 50: "Another flies by to the right, dripping poison. The mushroom right in front of you warps, rots, seems to right itself. You destroy it. There's another deadly one behind it. You shoot that one, too, and another."; 51: "A lucky shot obliterates a scorpion, but another tick comes, and the beast is moving fast. Two beasts."; 52: "The poison has done its work, and once again you are surrounded. Once again, new segments arrive from nowhere, spinning in circles around you.^^ And still one last tick comes, and this one has your name on it."; 53: "You fire at the tick, and miss."; 54: "You fire at the tick, and miss. It's going to get you."; 55: "You brace yourself for your last stand. You take aim at that tick, right in its glassy, metallic blue-green eyes. You fire, and miss. One last chance, it's almost here."; 56: "You get it from behind. Oh, shit, you think. The fucking irony. The tick sails past, unharmed, as one of the segments of the beast crushes you, biting off your legs.^^ There's no time to feel pain, or maybe there isn't any pain. Some sort of anesthetic in the saliva, you remember. You scream anyway, just like Chub. You're not going down quietly. You try to turn your rifle around, fire at the damn thing point-blank, but suddenly your arms don't work."; 57: "You're flipped over on your back, and something viscous and yellow oozes onto your faceplate, dissolving it. Suddenly your eyes don't work, and you can't scream. You see a dull red that turns brown and black in splotches, like the way the colors on a bubble turn before the bubble pops, and it's dead.^^ ~Game over, man,~ you think. ~Game over.~"; 58: deadflag = 1; "The last thought that comes to you makes you laugh. It's that old joke. What's the last thing to go through a bug's mind as it hits your windshield? Its a--^"; } } } give self ~general; ], has worn ; Object -> backpack "backpack" with name 'back' 'pack' 'backpack', description "Your standard-issue combat backpack. The top section holds an emergency parachute. The straps of the backpack have two pull handles. One is the ripcord for the chute, the other is the release cord when you're on the ground and need to get rid of the parachute.", before [; Disrobe, Drop: "A soldier never removes his backpack unless his life depends on doing so. "; ], has worn container openable ; Object -> -> rations "food rations" with name 'food' 'ration' 'rations' 'today^s' 'compact' 'powder' 'packets', description "Today's food rations, in compact powder packets. ", before [; Eat: "Not until you clear the sector and establish basecamp for the full landing party. "; Drop: "You'll need those, soldier. Ain't no one gonna give you a share of their food because you left yours behind. "; ], has edible proper ; Object -> -> canteen "canteen" with name 'canteen' 'water', description "Your clean water for the day. ", before [; Search: "The canteen contains your clean water for the day. "; Open, Drink: "If you drink that now, what are you going to do later? Drink the swampwater?"; Drop: "Think twice about leaving your clean water behind, soldier. "; ], ; Object -> -> letter "letter" with name 'letter', description "It's a letter to your folks, to be sent in case you're killed in the line of duty. You're hoping someone survives this mission to send it. No. You're hoping nobody needs to send the damn thing. Not this time. ", before [; Drop: "That letter stays with you until you're dead, soldier. "; ], ; Object -> parachute "parachute" with name 'parachute' 'chute', description [; switch( game.state ) { 0: "The top section of your combat backpack holds an emergency parachute. The straps of the backpack have two pull handles. One is the ripcord for the chute, the other is the release cord when you're on the ground and need to get rid of the parachute."; 1: "The top section of your combat backpack holds an emergency parachute. The straps of the backpack have two pull handles. One is the ripcord for the chute, the other is the release cord when you're on the ground and need to get rid of the parachute."; 2: "Your parachute billows above you, flapping noisily. The straps of the backpack have two pull handles. One is the ripcord for the chute, the other is the release cord when you're on the ground and need to get rid of the parachute."; 3: "Your parachute is yanking and tugging you sideways."; 4,5,6,7: "The top section of your combat backpack holds an emergency parachute. The straps of the backpack have two pull handles. One is the ripcord for the chute, the other is the release cord when you're on the ground and need to get rid of the parachute."; } ], before [; Drop, Disrobe: "You can't remove the parachute. "; ], has scenery ; Object -> ripcord "ripcord" with name 'ripcord' 'rip' 'cord' 'handle', description "If you pull the ripcord, you will deploy your emergency parachute. ", before [; Pull: if ( self has general ) "You have already done that. "; switch ( game.state ) { 0,1: "You shouldn't deploy your parachute unless you're actually in free-fall. "; 2: print "You pull the rip-cord and your chute opens. Your neck snaps forward, your throat closes hard and painfully. As you raise your head, your throat doesn't open again. It feels swollen shut, and you can't breathe.^"; if ( game_counter.number < 20 ) { game_counter.number = 19; give game_counter general; give self general; "^Far below, there's a round, white-green flare -- the landing craft, crashing down."; } rtrue; } Drop: "You can't drop the ripcord. "; ], has scenery ; Character -> Charlene "Charlene" with name 'plasma' 'weapon' 'rifle' 'gun' 'charlene' 'dent' 'dents' 'scratch' 'scratches' 'ding' 'dings' 'nick' 'nicks' 'black' 'skin' 'curves' 'curve' 'curved' 'metal' 'body', number 0, description [; print "This is Charlene, your plasma rifle. "; if ( self hasnt general ) { self.number++; switch( self.number ) { 1: "You know every dent and scratch on her curved metal body. "; 2: "You know every dent and scratch on her curved metal body. You stroke and polish her black skin shiny twice a day. "; 3: "You know every dent and scratch on her curved metal body. You stroke and polish her black skin shiny twice a day. You can take her apart and put her back together while blind and wearing gloves. "; 4: "You know every dent and scratch on her curved metal body. You stroke and polish her black skin shiny twice a day. You can take her apart and put her back together while blind and wearing gloves. But you don't wear gloves in combat. You like to feel Charlene against your palms, feel her vibrations grow smoother as she warms up. "; 5: print "You know every dent and scratch on her curved metal body. You stroke and polish her black skin shiny twice a day. You can take her apart and put her back together while blind and wearing gloves. But you don't wear gloves in combat. You like to feel Charlene against your skin, feel her vibrations grow smoother as she warms up. Feel the two of you merge together, soldier and weapon, pumping, pumping . . .^^ Er... "; style bold; print "ahem. "; style roman; give self general; "I think we got a little carried away in your thoughts there."; } } new_line; rtrue; ], before [; Touch: switch( game.state ) { 0: "Charlene is slender, cool and slick in your sweaty grip. "; 1: "You run your hand along Charlene. She's warming up, itching for it, aching to feel your finger on her trigger. "; 2: "You can't touch Charlene right now. "; 3: "You touch Charlene. She's a reassuring presence. "; 4: "Charlene is wet and cold. She wants to warm up. "; 5: "Charlene is warm and hungry. "; 6: "Charlene is hot to the touch. She glows slightly in the darkness, cherry red and burnt orange. "; 7: "Charlene is white hot, searing your naked fingers. You love her most of all when she's like this, when she's on fire. Your skin melds with hers. Your hands become iron, her body becomes soft flesh. "; } Rub: "You prefer to ~polish your plasma rifle~ in the privacy of your quarters. "; Strong: "Hey now, let's not get carried away with the metaphor, soldier. "; Shoot: switch( game.state ) { 0: "Save your aggressions and ammo for the mission, soldier."; 1: "Charlene's getting anxious for combat, but you calm her down. Wait for the bugs, Charlene."; 2: "You can't reach Charlene right now. "; 3: "If you fired Charlene now, you'd boil the water around you and kill yourself instantly. Think, soldier."; 4: "You shouldn't fire Charlene if you can't see. You might kill Duggers or Chub. "; 5: "You raise Charlene, and Chub swats Charlene's nose down. Chub hasn't given the order. "; 6: "You fire Charlene into the darkness. She purrs and growls. She's jumpy today, you can tell. Or maybe you are. "; 7: "You squeeze Charlene's trigger and she moans, jets of glowing white plasma streaking forth from her tapered barrel. Things explode in the night, murdered by her cruel touch. "; } ], life [; Attack: "You wouldn't want Charlene to get mad and jam up during combat."; Kiss: switch( game.state ) { 0: "You give Charlene a kiss through your faceplate. "; 1: "Charlene's getting anxious for combat, but you calm her down with a kiss. Wait for it, baby."; 2: "You can't reach Charlene right now."; 3: "You can't do that while you're underwater. "; 4: "You give Charlene a kiss through your faceplate. She isn't reassured, and neither are you. "; 5: "You give Charlene a kiss through your faceplate."; 6: "You give Charlene a kiss through your faceplate. You feel her warmth. "; 7: "You give Charlene a kiss through your faceplate. You feel her raging heat. "; } ], SayQ [line; switch (line) { 0: "Charlene baby, tell me we're gonna make it through this one."; 1: "Charlene, you ready honey?."; } ], Respond [line; switch (line) { 0: self.QuipOff(0); "You look to Charlene for encouragement. She says nothing, but just feeling her weight on your back encourages you. "; 1: self.QuipOff(1); "You whisper some words to Charlene. She's ready for whatever comes, and if she's ready, so are you. "; } ], InitQuips [; self.QuipsOn(2, 0,1); ], has female proper ; Object -> holovid "holovid" with name 'girlfriend' 'scary' 'trash' 'holovid' 'vid' 'holo' 'pic' 'picture' 'video' 'hologram' 'girl' 'woman' 'babe' 'chyk', description [; if ( self hasnt general ) "It's a holovid of Duggers' scary trash girlfriend. She's standing near some gym equipment. A little icon that looks like a zipper is dancing in the lower corner."; "It's a holovid of Duggers' scary trash girlfriend, standing naked near some gym equipment. A little icon that looks like a zipper is dancing in the lower corner."; ], before [; Switchoff: if ( self hasnt general ) { give self general; game_counter.number = 3; "You switch off the holovid. "; } "The holovid is already off. "; Switchon: if ( self has general ) { give self ~general; "You switch on the holovid. "; } "The holovid is already on. "; ], has transparent ; Object -> -> zipper_icon "zipper icon" with name 'zipper' 'icon', description "It's a hotspot icon that you can touch.", before [; Touch, Push: give holovid general; "When you touch the zipper icon, the clothes on Duggers' girlfriend seem to melt off her body, displaying her full frontal skankiness.^^ Duggers smirks. ~Not bad, right?~"; ], ; Room startroom "Buzz-Busta AVLC-905 Cabin" with description "There's dick-all to see here, even with the goggles on. Armory cabinets, supply shelves, two brushed-steel benches, safety straps. The emergency station is a swivel chair three steps up a ladder, facing a panel with rugged switches and levers. ", cant_go "There ain't noplace to go in that direction, soldier.", out_to [; << ClimbOut hatch >>; ], in_to "There's no exit in that direction. ", u_to [; <>; ], ; Object -> benches "benches" with name 'brushed-steel' 'brushed' 'steel' 'bench' 'benches', description "Just two ass-busting benches.", before [; Exit: if ( straps has general ) { give straps ~general; print "(first removing the straps)^"; rfalse; } ], has scenery supporter enterable transparent ; Object -> straps "straps" with name 'safety' 'strap' 'straps' 'harness' 'harnesses', description "For strapping yourself down during a landing. ", before [; Wear: if ( player in benches ) { give self general; "You strap yourself in. "; } if ( self has general ) "You're already strapped in. "; "You need to be sitting on the benches first. "; Disrobe: if ( self hasnt general ) "You're not strapped in yet. "; give self ~general; "You remove the safety straps. "; ] has scenery clothing ; Object -> supply_shelves "supply shelves" with name 'supply' 'supplies' 'shelf' 'shelves', description "The supplies are designed to last a five-man unit for two weeks.", before [; Open, Search, Take: "You've already got today's rations stored in your backpack. "; Close: "The supply shelves don't open or close. "; ], has scenery ; Object -> armory_cabinets "armory cabinets" with name 'armory' 'cabinet' 'cabinets' 'firepower', description "Loaded with enough firepower to bugbomb an entire sector. ", before [; Open, Search, Take: "Duty doesn't call for you to raid the armory cabinets right now. "; Close: "The armory cabinets are already closed. "; ], has scenery ; Object -> cabin "cabin" with name 'buzz' 'buzz-busta' 'busta' 'avlc' 'avlc-905' '905' 'cabin', description [; <>; ], before [; Take: "Eighteen metric tons of carbonized metal and solid rocket fuel are unlikely to stash easily in your backpack. "; ], has scenery ; Object -> hatch "escape hatch" with name 'escape' 'hatch' 'door' 'portal', description "The hatch is closed. ", before [; Enter, ClimbOut: if ( game.state == 0 ) "Not until Chub gives the order. "; give game_counter general; game_counter.number++; if ( game_counter.number == 15 ) "Just as you start to sit up, Duggers attacks your throat with his elbow, crushing your windpipe. You flop backwards like an upended beetle, choking and gagging, pain throbbing outward from your neck, your lungs burning.^^ The fall seems to have damaged your helmet, because you can't hear Duggers' voice any more. He's holding you by your gear straps, his faceplate right in front of yours, screaming obscenities. Probably just as well that you can't hear it."; "[you exit the landing craft]"; ], door_to [; print "You pass through the portal into a dark tunnel, which sighs with melodic longing as you enter. ^"; return startroom; ], door_dir in_to, after [; Open: print "A hush of ancient air, tinged with organic sweetness, flows out of the opened portal.^"; rtrue; ], has scenery static door openable neuter transparent ; Object -> emergency_station "emergency station" with name 'emergency' 'station', description "The emergency station is a swivel chair three steps up a ladder, facing a panel with rugged switches and levers.", before [; Enter: if ( game.state == 1 ) { give game_counter general; game_counter.number++; switch ( game_counter.number ) { 14: game.state = 1; if ( player in emergency_station ) move player to startroom; "Chub says, ~Duggers!~^^ Duggers is already up the ladder and grabbing for the parachute release levers. He yanks them hard, there is a noise like a screech owl colliding with a sheet of inch-thick plexiglass, and then the cabin seems to stop in midair, jolting everything that's not nailed down, which includes you and Duggers. The two of you smash to the cabin floor. You land on your side, the hard ammo clips strapped to your side bruising your ribs, damn near cutting through your suit."; 15: "Just as you start to sit up, Duggers attacks your throat with his elbow, crushing your windpipe. You flop backwards like an upended beetle, choking and gagging, pain throbbing outward from your neck, your lungs burning.^^ The fall seems to have damaged your helmet, because you can't hear Duggers' voice any more. He's holding you by your gear straps, his faceplate right in front of yours, screaming obscenities. Probably just as well that you can't hear it."; } } ], after [; Enter: if ( self hasnt general ) { give self general; "You swing yourself from the hatchway up into your emergency station. You're already starting to sweat inside your suit, but there isn't time to adjust the coolant controls."; } "You swing yourself up into the emergency station. "; ], has scenery supporter enterable transparent ; Object -> panel "panel" with name 'panel', description "The emergency station panel has two levers. Pulling them releases the landing craft's emergency parachutes. There are three switches: homing beacon launch, distress call broadcast, and self-destruct failsafe. You aren't under orders to use the switches right now. ", has scenery ; Object -> levers "levers" with name 'lever' 'levers', description "Pulling these levers will deploy the AVLC's emergency parachutes.", before [; Pull: if ( player notin emergency_station ) "You have to be at the emergency station in order to pull the levers. "; if ( self has general ) "You've already deployed the chutes. "; if ( game.state ==1 ) "The chutes are already deployed. "; give self general; game.state = 1; switch( game_counter.number ) { 1,2,3,4,5: game_counter.number = 17; game.state = 2; print "You pull hard on the levers, which ratchet into a locked position with a satisfying, weighty ~ka-chunk.~ From above, there is a noise like a screech owl colliding with a sheet of inch-thick plexiglass, and then the cabin seems to stop in midair, jolting everything that's not nailed down, which includes you and Duggers.^"; print "^Chub hollers, ~Dammit! I said on my mark, Mitchum!~ She comes bolting into view. ~We were still falling too fast to deploy. The chutes tore. We need to bail out.~^^ Duggers leaps out of the hatch. Chub shoves at you from behind. "; PlayerTo( midair1 ); rtrue; 6,7,8,9: game_counter.number = 17; game.state = 2; print "You pull hard on the levers, which ratchet into a locked position with a satisfying, weighty ~ka-chunk.~ From above, there is a noise like a screech owl colliding with a sheet of inch-thick plexiglass, and then the cabin seems to stop in midair, jolting everything that's not nailed down, which includes you and Duggers.^"; print "^Chub hollers, ~Dammit! I said on my mark, Mitchum!~ She comes bolting into view. ~We were still falling too fast to deploy. The chutes tore. We need to bail out.~^^ Duggers leaps out of the hatch. Chub shoves at you from behind. "; PlayerTo( midair1 ); rtrue; 10,11: game_counter.number = 17; game.state = 2; print "You pull hard on the levers, which ratchet into a locked position with a satisfying, weighty ~ka-chunk.~ From above, there is a noise like a screech owl colliding with a sheet of inch-thick plexiglass, and then the cabin seems to stop in midair, jolting everything that's not nailed down, which includes you and Duggers.^"; print "^Chub hollers, ~Dammit! I said on my mark, Mitchum!~ She comes bolting into view and yanks you down, eyeball to eyeball. ~Since when does 'shit' mean 'mark,' Mitchum? We were still falling too fast to deploy~ The chutes tore.~^^ Chub lets go of you and blows open the hatch. Icy wind snarls around the cabin, dragging at you. ~Bail out! And I mean now, fuckwit!~^^ Duggers gives you a curled sneer and leaps out of the hatch. Chub shoves at you from behind. "; PlayerTo( midair1 ); rtrue; 12: game_counter.number = 60; print "You pull hard on the levers, which ratchet into a locked position with a satisfying, weighty ~ka-chunk.~ From above, there is a noise like a screech owl colliding with a sheet of inch-thick plexiglass, and then the cabin seems to stop in midair, jolting everything that's not nailed down, which includes you and Duggers.^"; print "^Chub saunters into view. ~Good work, Mitchum. All right, let's strap in and get ready for touchdown. That means you too, Duggers.~^^ Duggers says, ~I got a hand on the strap, don't I?~^^ Chub says, ~Fine. Stand up if you want. When your kneecaps blow out and your hamstrings are severed by the compound fractures of your thigh bones you can crawl your ass through the swamp. Doesn't make any difference to me, as long as you keep one hand free to salute.~^^ Duggers gives Chub a severe salute and lowers his stubborn ass down onto the bench. You plunk down next to him.^"; move Duggers to benches; move Chub to benches; move player to benches; give straps general; rtrue; 13: game_counter.number = 60; print "You pull hard on the levers, which ratchet into a locked position with a satisfying, weighty ~ka-chunk.~ From above, there is a noise like a screech owl colliding with a sheet of inch-thick plexiglass, and then the cabin seems to stop in midair, jolting everything that's not nailed down, which includes you and Duggers.^"; print "^Chub hollers, ~Dammit! I said on my mark, Mitchum!~ She comes bolting into view. ~All right, let's strap in and get ready for touchdown. That means you too, Duggers.~^^ Duggers says, ~I got a hand on the strap, don't I?~^^ Chub says, ~Fine. Stand up if you want. When your kneecaps blow out and your hamstrings are severed by the compound fractures of your thigh bones you can crawl your ass through the swamp. Doesn't make any difference to me, as long as you keep one hand free to salute.~^^ Duggers gives Chub a severe salute and lowers his stubborn ass down onto the bench. You plunk down next to him.^"; move Duggers to benches; move Chub to benches; move player to benches; give straps general; rtrue; 14: game.state = 1; give game_counter general; if ( player in emergency_station ) move player to startroom; "Too late. Duggers is already up the ladder and grabbing for the parachute release levers. He yanks them hard, there is a noise like a screech owl colliding with a sheet of inch-thick plexiglass, and then the cabin seems to stop in midair, jolting everything that's not nailed down, which includes you and Duggers. The two of you smash to the cabin floor. You land on your side, the hard ammo clips strapped to your side bruising your ribs, damn near cutting through your suit."; } ], has scenery ; Object -> ladder "ladder" with name 'ladder' 'step' 'steps', description "It's just the ladder up to the emergency station. ", before [; Climb: <>; ], has scenery ; Character Duggers "Duggers" with name 'private' 'pvt' 'duggers' 'dug' 'dig-dug' 'dig' 'dale', description [; "Private Dale ~Dig-Dug~ Duggers is a hulking brute and an absolute killing machine. Also, a pretty good chess player. "; ], describe [; print "^Duggers is below, one boot up on the bench, holding a safety strap with one hand. "; if ( self hasnt general ) { give self general; "Thinks he's on the damn bullet train. He's survived forty missions, thinks he's invulnerable now."; } else { new_line; rtrue; } ], SayQ [line; switch (line) { 0: "Duggers, your girlfriend's a skank."; 1: "Yo mama."; 2: "Yeah, I hear ya."; 3: "I'll say what I like, bitch!"; 4: "Fuck off."; } ], Respond [line; switch (line) { 0: self.QuipsOff(2, 0,1); self.QuipsOn(3, 2,3,4); "Duggers says, ~Don't you be talkin' that way about Lashawnda, motherfucker! I'll shuffle yo pasty pink Iowa corn-fed ass off this mortal fuckin' coil, you hear what I'm saying?~"; 1: print "Duggers says, ~No, *yo* mama.~^"; rfalse; 2: game_counter.number = 3; self.QuipsOff(3, 2,3,4); self.QuipOn(1); "Duggers snorts. ~You got that goddamn right. Now don't let me hear you talk that shit again.~"; 3: game_counter.number = 3; self.QuipsOff(3, 2,3,4); self.QuipOn(1); "Duggers bursts into hoarse laughter. ~Man, you crack me up,~ he says. His face goes stony again. ~Just don't push me.~"; 4: game_counter.number = 3; self.QuipsOff(3, 2,3,4); self.QuipOn(1); "Duggers belches and says, ~Ah, fuck you.~"; } ], InitQuips [; self.QuipsOn(2, 0,1); ], life [; Attack: "Think twice about that, soldier -- once for each of Duggers' mammoth hands, which would lift you up and snap you over his knee like a broomstick if you started something. "; Kiss: "Um, no."; Show, Give: print "Duggers doesn't need "; ThatOrThose(noun); "."; ], before [; Shoot: "Sure, you hate Duggers, but that's no reason to mow him down with a plasma rifle. That might just make him mad. "; ], has male proper transparent ; Character Chub "Chub" with name 'sergent' 'sgt' 'sargent' 'chub' 'chaplin' 'ann', description [; "Sgt. Ann ~Chub~ Chaplin is a good solider. You've only been under her command for three weeks, but she seems like she knows what she's doing in a firefight. "; ], describe [; print "^Chub is tucked around the corner at the helm. You can't see her, but you can hear her voice in your helmet. "; if ( self hasnt general ) { give self general; "~On my mark. On my mark...~"; } else { new_line; rtrue; } ], InitQuips [; self.QuipsOn(2, 0,1); ], SayQ [line; switch (line) { 0: "Probably better not."; 1: "I guess so."; } ], Respond [line; switch (line) { 0: self.QuipsOff(2, 0,1); print "You tell Valerie, ~Probably better not. I don't want to attract any attention.~^"; rfalse; 1: self.QuipsOff(2, 0,1); print "You tell Valerie, ~I don't want to attract any attention, but since we don't have a flashlight I guess the answer is yes.~^^ Valerie turns on the lights, bathing the room in fluorescent ickiness that makes you squint.^"; rfalse; } ], before [; Shoot: "Disintegrating a senior officer while on a combat mission is unlikely to advance either your career or your life. "; ], life [; Attack: "Idle thoughts about how your court martial might go keep you from acting on this impulse."; Kiss: "Save it for shore leave."; Show, Give: print "Chub doesn't need "; ThatOrThose(noun); "."; ], has female proper transparent ; Room midair1 "In mid-air" with name 'air' 'atmosphere' 'ether', description "You're in mid-air, falling fast. You can't see the ground, and there's nothing to see in the sky.", cant_go "You adjust your direction slightly, but mostly you try to stay on target. ", ; Room marsh_underwater "Underwater" with description "Everything is cold. You must be underwater.", cant_go "You are unable to move. ", react_before [; Wait: rfalse; default: "You try, but it just makes you seep deeper into the murk. "; ], ; Room marsh_standing with description "You still can't see anything with your faceplate covered with slime. " ; Room marshlands "Marshlands" with description "The landscape is pitch black, even in your goggles. No heat from the freezing swampwater. Out of the blackness, looming shapes in obscene colors. You aren't supposed to see colors through these goggles, and you wonder if you're doing worse than you thought.^^ The shapes are mushrooms, hundreds of them, rising on their moist stalks, ballooning heads eighteen feet around, eight feet high. You can't get much of a sight beyond them. There's too many mushrooms. Maybe you should waste some ammo clearing a sightline. Then again, maybe you don't have any ammo to waste, now.", cant_go "You slog a few steps in that direction. ", ; ! Insert more routines here [ HitAnyKey i; print "^[Hit any key.]^"; @read_char 1 0 0 i; "^"; ]; [ DeathMessage; switch(deadflag) { 4: print "Game over"; } ]; ! You may want to Replace some or all of AskSub, AskForSub, TellSub, ! GiveSub, ShowSub, and AnswerSub with: [ AskSub; "Please use >TALK TO PLAYER to interact in this game."; ]; [ AskForSub; "Please use >TALK TO PLAYER to interact in this game."; ]; [ TellSub; "Please use >TALK TO PLAYER to interact in this game."; ]; [ AnswerSub; "Please use >TALK TO PLAYER to interact in this game."; ]; [ InvWideSub; inventory_style = FULLINV_BIT + ENGLISH_BIT + RECURSE_BIT + CONCEAL_BIT; ; ]; [ InvTallSub; inventory_style = FULLINV_BIT + INDENT_BIT + NEWLINE_BIT + RECURSE_BIT + CONCEAL_BIT; ; ]; Include "Grammar"; ! Insert new grammar lines here [ QuitySub; quit; ]; [ KickSub; "Save it for the bugs. "; ]; [ LaughSub; "Ain't nothing to laugh at right now, soldier. "; ]; [ LaughAtSub; "Good way to get your head busted open."; ]; [ ReplySub; "I don't know how to reply to that. "; ]; [ CleanSub; print_ret (The) noun, " looks a little cleaner now. "; ]; [ ClimbOutSub; "But you aren't in anything at the moment. "; ]; [ LookBehindSub; print_ret "There's nothing of interest behind ", (the) noun, ". "; ]; [ XyzzySub; "Nothing happens. ";]; [ ShootSub; if ( second == Charlene || second == 0 ) rtrue; "That isn't something you can shoot. "; ]; [ ShootReverseSub; << Shoot second noun >>; ]; [ GameHelpSub; "You have to help yourself, soldier."; ]; [ HelpSub; "That isn't important."; ]; [ StrongSub; if (noun==0) "You mutter a few oaths and curses."; ]; [ StandSub; switch ( game.state ) { 0: if ( player in emergency_station ) { move player to startroom; "You climb down from the emergency station. "; } "You're already on your feet. "; 1: if ( player in emergency_station ) { move player to startroom; "You climb down from the emergency station. "; } if ( game_counter.number == 14 ) { give game_counter general; game_counter.number++; "Just as you start to stand up, Duggers attacks your throat with his elbow, crushing your windpipe. You flop backwards like an upended beetle, choking and gagging, pain throbbing outward from your neck, your lungs burning.^^ The fall seems to have damaged your helmet, because you can't hear Duggers' voice any more. He's holding you by your gear straps, his faceplate right in front of yours, screaming obscenities. Probably just as well that you can't hear it."; } "You rise painfully to your feet. "; 2: "That's not quite possible now. "; 3: give game_counter general; game_counter.number++; switch ( game_counter.number ) { 23: "You put your hands down, hoping to raise your weight, but there's no support. Your arms sink like toothpicks into a sponge cake."; 24: game.state = 4; PlayerTo( marsh_standing ); "You curl your legs up under your chest, slowly drawing them out of the muck, and you replant them in fresh muck. Gradually you wobble yourself into an upright fetal position and try to stand. You must weigh 350 pounds with all of your gear. Carefully, slowly, you stand. You get a little help from your chute, yanked by a sudden wind. For a moment you're not sure whether you're actually standing or not, and you realize it's because your faceplate is covered with marsh slime."; } } "You're already on your feet. "; ]; Extend 'look' * 'out' noun -> Search * 'behind' noun -> LookBehind; Extend 'climb' last * 'out' -> Exit * 'out' noun -> ClimbOut; Verb 'yank' 'tug' = 'pull'; Extend 'pull' last * "on" noun -> Pull; Extend only 'answer' replace * creature -> TalkTo * noun -> Reply; Extend only 'clean' first * noun -> Clean * 'up' noun -> Clean * noun 'up' -> Clean; Verb 'hint' * -> GameHelp; Verb 'help' * -> GameHelp * noun -> Help * 'up' noun -> Help * noun 'up' -> Help; Verb 'neaten' 'tidy' * noun -> Clean * 'up' noun -> Clean * noun 'up' -> Clean; Verb 'reply' 'respond' * noun -> Reply * 'to' creature -> TalkTo * 'to' noun -> Reply; Verb 'leap' = 'jump'; Extend 'jump' * noun -> Jump * 'up' -> Jump * 'up' 'to' noun -> Jump * 'on'/'at' creature -> Attack * 'on' noun -> Enter * 'to'/'at'/'in'/'inside'/'for'/'into' noun -> Jump * 'over' 'to' noun -> Jump * 'out' noun -> ClimbOut; Extend only 'speak' * 'in' creature -> TalkTo * 'in' noun -> TalkTo ; Extend 'talk' * 'in' creature -> TalkTo * 'in' noun -> TalkTo ; Verb 'escape' * -> Exit * noun -> Exit; Verb 'stop' 'halt' 'abort' * -> No; Extend 'drop' first * noun 'at'/'against'/'on'/'onto' noun -> ThrowAt; Extend 'close' * noun 'with' held -> Close; Verb 'slap' = 'attack'; Verb 'zz' = 'wait'; Verb 'kick' * noun -> Kick; Verb 'laugh' 'snort' 'hee' 'ha' 'hah' 'heh' 'har' 'giggle' 'chortle' 'snicker' 'guffaw' * -> Laugh * 'at' noun -> LaughAt; Extend only 'attack' 'destroy' 'murder' 'kill' first * noun -> Shoot; Verb 'shoot' 'fire' 'frag' 'blast' * creature -> Shoot * noun -> Attack * 'at' creature 'with' noun -> Shoot * 'at' noun 'with' noun -> Attack * creature 'with' noun -> Shoot * noun 'with' noun -> Attack * noun 'at' creature -> ShootReverse * noun 'at' noun -> Attack; Verb meta 'quity' 'xquit' * -> Quity; Verb meta 'xyzzy' * -> Xyzzy; Extend 'drop' first * held -> Drop; Extend only 'throw' * held 'at'/'against'/'on'/'onto' noun -> ThrowAt; Extend 'go' * 'out' -> Exit; Extend 'fuck' replace * -> Strong * noun -> Strong; Verb 'caress' = 'touch'; Extend 'get' replace * 'up' -> Stand * 'out'/'off' -> Exit * multi -> Take * 'in'/'into'/'on'/'onto' noun -> Enter * 'off' noun -> GetOff * multiinside 'from' noun -> Remove; Extend 'stand' replace * -> Stand * 'up' -> Stand * 'on' noun -> Enter;