10 rem COPYRIGHT 2000, CHRIS CHARLA. ALL RIGHTS RESERVED. THIS PROGRAM MAY BE FREELY DISTRIBUTED, PROV*DING THAT IT IS UNALTERED IN ANY WAY. 20 rem SPECIAL THANKS TO MIKE MIKA, FOR THE BASIC LESSONS AND THE PC CONVERSION. DEDICATED TO GUMPEI YOKOI. OH WAIT, THAT'S FOR GAME BOY. 30 rem Hi Carrie, Hi Oscar! 100 dim rm(51,4) : dim ob(23,2) : dim l$(23,2) : dim vb$(36) : dim vt(36) 110 er = 0 : r = 4 : rem ER IS OLD ROOM. R IS CURRENT ROOM #. 115 mt = 1 116 tb = 1 117 dd = 4 118 cc = 0 119 vu = 1 120 ci = 1 121 fu = 5 122 td = 1 123 pd = 1 124 cb = 1 125 jo = 1 126 vi = 1 127 si = 1 128 mf = 0 130 for x = 1 to 51 : for y = 1 to 4 135 read rm(x,y) 140 next y : next x 150 for x = 1 to 23 : for y = 1 to 2 160 read ob(x,y) 170 next y : next x 180 for z = 1 to 23 : for a = 1 to 2 185 read l$(z,a) 200 next a : next z 210 for x = 1 to 36 : 220 read vb$(x) 230 next x 240 for x = 1 to 36 : 250 read vt(x) 260 next x 1000 cc = cc+1 : if r = er then goto 1100 : 1005 if er = 51 and r = 7 then goto 8010 1010 gosub 4000 : 1030 rem: 1040 for x = 1 to 23 1050 if ob(x,2) = r then gosub 5200 1060 next x 1100 rem 1101 if cc = w1 then goto 5000 1102 if cc = 3 then goto 5010 1103 if cc = w2 then goto 5020 1104 if cc = w3 then goto 5030 1105 if cc = w4 then goto 5040 1106 if cc = w5 then goto 5050 1107 if fu < 5 then fu = fu-1 1108 if fu = 0 then goto 3570 : rem blow shit up. 1109 if ob(1,2) = 0 and ry = 0 and r > 6 then goto 7000 1110 if mf = 1 then goto 7020 1111 if mf = 5 then goto 7020 1112 if mf = 9 then goto 7020 1113 if mf > 0 and r > 8 then goto 7030 1114 if mf > 0 and ob(1,2) = 100 then goto 7060 1115 if mf > 0 then mf = mf+1 1200 input m$ 1210 print "" 1220 l = len(m$) : if l = 0 then goto 1000 1225 m1$ = "" : m2$ = "" : m2 = 0 : x = 0 1230 for i = 1 to l 1240 a$ = mid$(m$,i,1) : a = asc(a$) : if a >= 97 and a <= 122 then a$ = chr$(a-32) 1250 if a$ <> " " then goto 1260 1255 if m2$ <> "" then goto 1300 1257 x = 1 : goto 1290 1260 if x = 0 then m1$ = m1$+a$ : goto 1290 1270 m2$ = m2$+a$ 1290 next i 1300 if m1$ = "" then print "Input, please!" : goto 1000 1306 mg$ = m1$ 1307 ml$ = left$(m1$,3) 1308 m1$ = ml$ 1312 mm$ = left$(m2$,3) 1314 m2$ = mm$ 1317 if len(m1$) = 1 then goto 5300 1320 for x = 1 to 36 1330 if vb$(x) = m1$ then t = vt(x) : goto 1350 1340 next x 1345 print "I'm sorry, I don't know how to ";mg$ : goto 1000 1350 on t goto 2100,2200,2300,2500,2520,2600,2700,2800,2900,3000,3100,3200,3300,3400,3500,3600,3700,3800 2100 rem 2110 if m1$ = "NOR" or m2$ = "NOR" then m1$ = "N" : goto 1317 2120 if m1$ = "SOU" or m2$ = "SOU" then m1$ = "S" : goto 1317 2130 if m1$ = "EAS" or m2$ = "EAS" then m1$ = "E" : goto 1317 2140 if m1$ = "WES" or m2$ = "WES" then m1$ = "W" : goto 1317 2150 print "I'm sorry, I didn't understand. You must 'go' a direction ('GO NORTH')." 2160 print "Or, you can simply type the direction ('NORTH') or letter ('N')." 2170 goto 1000 2200 ta = 0 2202 if m2$ = "" then print "You mumble to yourself. Feel better?" : goto 1000 2206 if r > 8 then print "There's no one to talk to in here." : goto 1000 2207 if m2$ = "WAI" or m2$ = "CAT" then goto 2280 2209 if m2$ = "GUE" then goto 2270 2210 if m2$ = "COP" or m2$ = "POL" then print "You like to live dangerously, but you don't have a death wish!" : goto 1000 2211 if m2$ = "MAR" or m2$ = "DAV" or m2$ = "SPY" then ta = 5 2220 if ta = 5 and r = 7 and mt = 1 then goto 2290 2222 if ta = 5 and r = 7 and mt = 0 then print "Marchant looks away. 'Remember our deal, Cartright.'" : goto 1000 2224 if ta = 5 and r <> 7 then print "Marchant isn't here." : goto 1000 2230 print "I don't understand who you want to talk to." : goto 1000 2270 x = 0 : x = rnd(3) 2272 if x = 0 then print "'Isn't it exciting!' says a woman from the English embassy." 2273 if x = 1 then print "'Why are you speaking to me?' asks a suspicious Vladistani." 2274 if x = 2 then print "'Someone will pay for this outrage.' mutters a Morolian diplomat." 2276 goto 1000 2280 if ob(1,2) <> 0 then goto 2286 2281 if r < 4 or r > 5 then goto 2287 2282 print "Unless you want one of them to recognize you as an imposter and go to the" 2283 print "police, you should probably steer clear of your fellow waiters. Anyway they" 2284 print "might find that tux you have on under your waiter's uniform a little weird." 2285 goto 1000 2286 print "It's not polite for guests to talk to the help in Vladistan." : goto 1000 2287 print "There are no waiters around here." : goto 1000 2290 print "Marchant looks at you. 'Cartright. I thought zat was you in zee waiter outfeet." 2291 print "I suspect we have been sent here on similar errands by our superiors. " 2292 print "And now I suspect zat zis bomb threat may be your doing, no? It eez troubling.'" 2293 print "He pauses for a moment then turns to you. 'For one of us to accompleesh his " 2294 print "mission, the other must fail. I am thus tempted to turn you in. No doubt you " 2295 print "may be theenking the same thing. So I propose a truce of sorts. I will keep my" 2296 print "mouth shut about you, and you do zee same for me. Of course, like all bargins" 2297 print "in zees business, I cannot make any guarentees about the duration of our deal." 2298 mt = 0 : goto 1000 2300 if m2$ = "" then goto 2390 2310 for x = 1 to 23 : rem first, check fer objects 2320 if m2$ = left$(l$(x,2),3) then goto 2340 2330 next x 2335 print "You don't see anything special." : goto 1000 2340 if x = 10 then goto 2380 2342 if x = 15 or x = 17 then goto 2378 2345 if x = 16 then goto 2382 2350 if x = 21 then goto 2384 2351 if x = 20 then goto 2385 2355 if x = 2 then goto 2386 2356 if x = 8 then goto 2365 2360 print "It's just an ordinary "; : print l$(x,2); : print "." : goto 1000 2365 if vi = 0 and si = 1 then print "There is some vinegar in the jar and "; : goto 2376 2366 if vi = 1 and si = 0 then print "There is some vinegar in the jar and "; : goto 2376 2367 if vi = 1 and si = 1 then print "The jar is empty, and "; : goto 2376 2368 if vi = 0 and si = 0 and jo = 0 then print "The jar is open, and filled with a bubbling solution." : goto 1000 2369 if vi = 0 and si = 0 and jo = 1 then print "The jar is closed, but there is bubbling inside." : goto 1000 2376 if jo = 1 then print "the jar is closed." : goto 1000 2377 if jo = 0 then print "the jar is open." : goto 1000 2378 print "It looks like ordinary cleanser of Eastern European design -- " 2379 print "meaning it looks rough and kind of gray." : goto 1000 2380 print "The note is in French. It says: Marchant, the Slava is the plastique." 2381 print "Good luck, Yves." : goto 1000 2382 print "At first it looked like cleanser, but on closer examination, it" 2383 print "actually bears a closer resemblance to modeling clay." : goto 1000 2384 print "These are the plans to the XJ-39 nuclear device!" : print "They are printed on special, waxy, paper." : goto 1000 2385 print "It's a top secret Morolian codebook." : goto 1000 2386 print "It's loaded." : goto 1000 2390 er = 0 : goto 1000 2500 m1$ = "I" : goto 1317 2520 rem 2530 if td = 1 then print "As always, you are in top physical condition." 2540 if td = 0 then print "You're a little shaken from the blast, but otherwise you feel fine." 2550 goto 1000 2600 if ob(5,2) = 0 then goto 2620 2615 print "You need a knife before you can cut anything!" : goto 1000 2620 if r = 16 then goto 2650 2630 if r = 51 then goto 2670 2640 if r = 19 then goto 2648 2642 print "You can't cut anything here." : goto 1000 2648 print "Cutting the wires is pointless -- you need to really disable the transmitter." : goto 1000 2650 print "You cut the ropes holding the dumbwaiter up and it plunges down!" : print "" 2660 r = 50 : goto 1000 2670 if ob(19,2) = 0 then goto 3374 2680 if ob(19,2) <> 0 then goto 3373 2700 if m2$ = "COP" or m2$ = "POLICE" then goto 2750 2720 if m2$ = "ME" or m2$ = "SEL" then goto 2760 2730 if m1$ = "sho" then goto 2740 2735 print "You are a spy, not an assassin. Killing is not the way you do business." : goto 1000 2740 if ob(2,2) = 0 then goto 2742 2741 print "You need a gun or rifle to shoot!" : goto 1000 2742 print "The rifle misfires! The bullets must be 100 years old." : goto 1000 2750 if ci = 0 then goto 2752 2751 print "You can't see anyone to shoot!" : goto 1000 2752 print "Before you can react, the Vladistani officer delivers a well" 2753 print "placed bullet to your kneecap, and you go down hard." : goto 5052 2760 if ci = 0 then goto 2765 2761 print : print "As you crack the cyanide pill in your tooth, you muse: the mission" 2762 print "is a failure, the XJ-39 is as good as in the Red's hands, but at" 2763 print "least you won't be around to see the Soviets take over..." : goto 8000 2765 print : print "As you crack the cyanide pill in your tooth, you muse: the mission" 2766 print "is a failure, but at least the Vladistanis won't get the satisfaction" 2767 print "of tossing you to one of their meaty torturers. Your secrets die with you." : goto 8000 2800 if ob(22,2) = 0 then goto 2815 2810 print "You don't have a shovel!" : goto 1000 2815 if r = 46 then goto 2840 2817 if r = 45 then goto 2876 2820 if r < 50 and r > 37 then print "You dig a little into the dirt floor, but it fails to accomplish much here." 2825 if r < 38 then print "You need dirt to dig in." 2830 goto 1000 2840 print "You dig out some dirt from the soft cellar floor just under the" : print "massive vault door." : print : dd = dd-1 2850 if dd = 3 then print "There is now a little hole under the massive door." : goto 1000 2855 if dd = 2 then print "The hole under the door is getting much bigger now." : goto 1000 2857 if dd = 1 then print "The hole under the door is almost big enough to crawl through!" : goto 1000 2860 if dd = 0 then print "The hole under the door is big enough to crawl through! " 2865 if dd = 0 then goto 2875 2867 if dd = -1 then print "Any more digging and you could collapse the hole!" : goto 1000 2869 if dd = -2 then print "The hole under the door collapses!" : dd = 5 : rm(46,1) = 0 : goto 1000 2870 goto 1000 2875 rm(46,1) = 45 : goto 1000 2876 print "You dug under the door, now don't try to get cute." : goto 1000 2900 if m2$ = "ALL" then goto 2955 2910 for x = 1 to 23 2915 if m2$ = left$(l$(x,2),3) then 2930 2920 next x 2925 print "You can drop what you can't take!" : goto 1000 2930 if ob(x,2) = 0 then 2945 2940 print "You aren't holding that!" : goto 1000 2945 if x = 1 then goto 2960 2946 if x = 16 and r = 33 then goto 2970 2947 if x = 13 and r = 33 and ob(16,2) = 33 then 2972 2948 if jo = 0 and ob(8,2) = 0 and x = 7 then goto 2980 2949 if jo = 0 and ob(8,2) = 0 and x = 6 then goto 2985 2950 ob(x,2) = r : print "Dropped." : goto 1000 2960 ob(1,2) = 100 : print "You stash the jacket behind some bushes, revealing your tux." 2965 print "Now you're ready to mingle with the guests!" : goto 1000 2970 ob(16,2) = 33 : print "You pull the Slava out of the box and mold it into one of the" 2971 print "support beams of the radio tower." : goto 1000 2972 ob(13,2) = 33 : print "You insert the blasting cap into the plastique, with the fuse" 2973 print "sticking out, ready to light." : goto 1000 2980 ob(7,2) = 100 : vi = 0 : print "You drop the vinegar into the open jar." : goto 1000 2985 ob(6,2) = 100 : si = 0 : print "You drop the baking soda into the open jar." : goto 1000 3000 if m2$ = "ALL" then goto 3055 3010 for x = 1 to 23 3015 if m2$ = left$(l$(x,2),3) then 3030 3020 next x 3025 print "Sorry, you can't take that." : goto 1000 3030 if r = ob(x,2) then 3045 3035 if ob(x,2) = 0 then goto 3050 3040 print "You can't see the "; : print l$(x,2); : print " here." : goto 1000 3045 ob(x,2) = 0 : print "You take the "; : print l$(x,2); : print "." : goto 3060 3050 print "You're already holding it!" : goto 1000 3055 print "Sorry, you need to 'TAKE' each item individually." : goto 1000 3060 ob(x,1) = 0 3065 if x = 9 then print "As you pick up the coat you notice a handwritten message on a slip"; : goto 3085 3070 if x = 12 then goto 3072 3071 goto 1000 3072 print "You grab the attache case and open it, to reveal, along with a copy of" 3075 print "Le Monde, which you discard, a small blasting cap with a length of fuse" 3080 print "coming from one end." : ob(13,2) = 0 : goto 1000 3085 print " of paper in an inner pocket." : ob(10,2) = 0 : goto 1000 3100 if m2$ = "JAR" then goto 3150 3120 if r = 11 then goto 3140 3140 print "You gently close the French door you came in." : goto 1000 3150 if ob(8,2) = 0 then goto 3153 3151 if ob(8,2) = r then goto 3153 3152 print "You can't see any jar here." : goto 1000 3153 if jo = 1 then goto 3170 3160 jo = 1 : print "You close the jar tightly." : goto 1000 3170 print "The jar is already closed!" : goto 1000 3200 if r = 13 then goto 3230 3220 if r = 14 or r = 46 then goto 3229 3221 if r = 51 then goto 3228 3222 print "There's nothing to unlock here." : goto 1000 3228 print "You don't have a key for the iron padlock." : goto 1000 3229 print "You haven't got the combination." : goto 1000 3230 if ob(14,2) = 0 then goto 3240 3235 print "You haven't got the key!" : goto 1000 3240 print "You unlock the cloak room with the key." 3250 rm(13,2) = 15 : goto 1000 3300 if m2$ = "JAR" then goto 3340 3302 if r = 46 then goto 3320 3303 if m2$ = "PAD" or m2$ = "LOC" or m2$ = "DOO" then goto 3370 3304 if m2$ = "WIR" then goto 3322 3305 if m2$ = "TOW" or m2$ = "RAD" then goto 3324 3310 print "You can't break anything here." : goto 1000 3320 print "The blast door withstands your best efforts." : goto 1000 3322 print "You snap the wires, but you can't be sure they are the ONLY wires..." : goto 1000 3324 if r = 33 then goto 3325 : print "You can't see that here." : goto 1000 3325 print "You'll need more than brute strength to take down the radio tower." : goto 1000 3340 if ob(8,2) = 0 then goto 3350 3341 if ob(8,2) = r then goto 3350 3342 print "You can't see the jar here." : goto 1000 3350 if vi = 0 and si = 0 and jo = 1 then goto 3360 3351 if vi = 0 and si = 0 and jo = 0 then goto 3357 3352 if vi = 0 and si = 1 then goto 3355 3353 if vi = 1 and si = 0 then goto 3355 3354 print "You smash the jar. It doesn't make as loud a noise as you'd expect." : ob(8,2) = 100 : goto 1000 3355 print "You smash the jar, spilling its contents." : ob(8,2) = 100 : goto 1000 3357 print "You smash the open jar, spilling its contents. The soda and vinegar foams" 3358 print "for a while on the floor." : ob(8,2) = 100 : goto 1000 3360 print "You smash the closed jar on the floor. The stored up gasses make a" 3361 print "surprisingly loud POP! A moment later, your wrist radio buzzes." 3362 print "'I don't know what you did in there,' says K, 'but they picked it" 3363 print "up on their listening devices, and they now seem convinced that there's" 3364 print "some kind of explosive activity going on in there. I think the" 3365 print "authorities will stay out for the time being.'" : ob(8,2) = 100 : vu = 0 : goto 1000 3370 if r = 51 then goto 3372 3371 print "Despite your best efforts, you fail." : goto 1000 3372 if ob(19,2) = 0 then goto 3374 3373 print "You don't have the right tool to do that!" : goto 1000 3374 print "You snap off the old padlock." : rm(51,3) = 7 : goto 1000 3400 if m2$ = "JAR" then goto 3450 3420 if m2$ = "DOO" then goto 3430 3425 if m2$ = "SLA" or m2$ = "SUD" or m2$ = "STA" then goto 3440 3430 print "The door doesn't budge." : goto 1000 3440 print "You open the box, look inside, then close it again." : goto 1000 3450 if ob(8,2) = 0 then goto 3455 3451 if ob(8,2) = r then goto 3455 3452 print "What jar?" : goto 1000 3455 if jo = 0 then goto 3470 3460 jo = 0 : print "You open the jar." : goto 1000 3470 print "The jar is already open!" : goto 1000 3500 if m2$ = "FUS" or m2$ = "BLA" or m2$ = "CAP" then goto 3545 3502 if r = 41 then goto 3514 3503 if ob(11,2) <> 0 then goto 3512 3504 for x = 1 to 23 : if m2$ = left$(l$(x,2),3) then goto 3507 3505 next x 3506 print "You can't burn that." : goto 1000 3507 if x = 21 then goto 3510 3508 if x = 16 then goto 3511 3509 print " There's no point in burning the "; : print l$(x,2); : print "." : goto 1000 3510 print "The plans are printed on some kind of flame retardant paper." : print "You'll need more heat to destroy them." : goto 1000 3511 print "The matches are ineffective on the plastique. You need to find" : print "something with more power." : goto 1000 3512 print "You don't have anything to burn anything with!" : goto 1000 3514 for x = 1 to 23 3515 if m2$ = left$(l$(x,2),3) then goto 3518 3516 next x 3517 print "You can't burn that here." : goto 1000 3518 if x = 16 then goto 3523 3519 if x = 21 then goto 3528 3520 if x = 20 then goto 3530 3521 print "You toss the "; : print l$(x,2); : print " in the furnace, where it is consumed." 3522 ob(x,2) = 100 : goto 1000 3523 print : print "The next thing to go through your mind after you toss the Slava into" 3524 print "the furnace is the furnace door itself. The Slava was actually plastique," 3525 print "and you are dead." 3526 if pd = 0 then print "At least the plans are destroyed, so your mission wasn't a total failure." 3527 goto 8000 3528 print "You toss the plans in the furnace with gusto. Let's see the Ruskies try to" : print "rebuild the plans from the ashes! The XJ-39 remains American technology!" 3529 print "Your primary mission is complete. Now to escape with your life..." : ob(21,2) = 100 : pd = 0 : goto 1000 3530 print "The code book burns quickly. You'd never have gotten it past Marchant, anyway." : ob(20,2) = 100 : cb = 0 : goto 1000 3545 if ob(13,2) = r or ob(13,2) = 0 then goto 3551 3546 print "You don't have the blasting cap!" : goto 1000 3551 if ob(11,2) <> 0 then print "You haven't got any matches!" : goto 1000 3552 print "You light the fuse on the end of the blasting cap. " : fu = 4 : goto 1000 3570 print : print "You hear the pop of the blasting cap going off!" 3571 if ob(16,2) = ob(13,2) then goto 3575 3572 ob(13,2) = 100 : goto 1000 3575 print "The blasting cap sets off the plastique!" 3576 if ob(16,2) <> 0 then 3578 3577 print : print "Unfortunately, you were holding the plastique. You gaze for a moment at" : print "the fountain of blood shooting from your wrists before everything goes black." : goto 8000 3578 if ob(16,2) = 33 then goto 3583 3579 if ob(16,2) = r then goto 3596 3580 ob(13,2) = 100 : ob(16,2) = 100 : vu = 0 : print "That ought to convince them there was a reason for the bomb threat!" 3581 print : print "*** Your radio crackles. 'We heard the explosion, but the tower is still there." 3582 print "We better hope the plans weren't ready for transfer..." : goto 1000 3583 if r = 33 then goto 3590 3584 print "A moment after the main blast, you hear the satisfying sound of" 3585 print "transmission tower falling." : vu = 0 : ob(13,2) = 100 : ob(16,2) = 100 : td = 0 3586 print : print "*** Your radio crackles. 'Nice work, Cartright.'" : goto 1000 3590 print : print "As you fly through the air towards the ground, after being blown" 3591 print "off the roof by the blast, it occurs to you that there may have been" 3592 print "safer places to stand after you lit the fuse. Really, though, falling" 3593 print "two stories is the least of your problems. Getting away from the cops" 3594 print "with your legs blown off will be a much bigger challenge..." : goto 8000 3596 print : print "The blast sounds especially loud because you're in the same room as it!" : print "Blinded and disorientated by the flash, you don't even" 3597 print "notice the fountain of blood shooting from your neck." : print "You just get very, very sleepy..." : goto 8000 3600 print "Sorry, you can't use the word USE. An accepted verb list follows:" 3611 print "Go, North, South, East, West, Talk, Read, Look, Search, Examine," 3612 print "Inventory, Health, Diagnose, Cut, Shoot, Kill, Dig, Put, Drop, " 3613 print "Remove, Get, Take, Close, Unlock, Break, Pry, Smash, Bend, Open," 3614 print "Light, Burn, and Use (well, sorta)." : goto 1000 3700 home 3720 for x = 1 to 2000 : next x 3730 print "Okay, you asked for it..." 3740 input po$ 3750 home 3760 print "You are in a maze of twisty little passageways, all alike." 3770 print "Exits lead in all directions." 3780 input po$ 3790 print "Just kidding..." : input po$ 3795 er = 0 : home : goto 1000 3800 print "What would your betrothed, Carrie Shepherd, think if she knew you," 3810 print "Drake Cartright, master spy, resorted to profanity as soon as" 3820 print "things got tough? Pull yourself together, man!" 3830 goto 1000 3999 end 4000 if r > 25 then goto 4020 4010 on r goto 4040,4045,4050,4055,4060,4065,4070,4075,4080,4085,4090,4095,4100,4105,4110,4115,4120,4125,4130,4135,4140,4145,4150,4155,4160 4020 g = r : g = g-25 4026 on g goto 4165,4170,4175,4180,4185,4190,4195,4200,4205,4210,4215,4220,4225,4230,4235,4240,4245,4250,4255,4260,4265,4270,4275,4280,4285,4290 4040 print "You are on the front lawn of the house, just east of the driveway. " : goto 4340 4045 print "This is the front of the Morolian Ambassador's mansion. To your north is" 4046 print "the front door." : goto 4340 4050 print "You are standing on the front lawn of the estate, just west of the driveway." 4051 print "Several guests are here, waiting for the valets to bring their cars." : goto 4340 4055 print "The back service lot. Nervous caterers mill around, exchanging gossip about" 4056 print "the bomb threat. Police are questioning some of them, but your skills and" 4057 print "your waiter jacket let you mingle with the help without being singled out." : goto 4340 4060 print "You are in the backyard. You can see into the Game Room from here, but you'd" 4061 print "need a ladder to get in from this spot. South of here, you can see." 4062 print "guests chatting in their finery -- a far cry from your waiter's jacket." : goto 4340 4065 print "The backyard. To your west is the back service lot. Tittering guests have" 4066 print "congregated here. The bomb threat and heavy police response has made this THE" 4067 print "event of Vladistan's bleak social season." : goto 4340 4070 print "The heaviest concentration of guests and police are here, east of the house." : print "Most of the guests are diplomats, but one your recognize: Davide Marchant, with" 4071 print "the French Intelligence service. He must be here on an op of his own." : print "Possibly he's after the XJ-39 plans too. The front lawn is south, but to the " 4072 print "east, there appear to be a set of doors that lead to the cellar. Not wanting" : print "to be recognized by Marchant, it's tough to look too closely." : goto 4340 4075 print "Here, west of the house, only a few guests are gathered. You spy an open" 4076 print "French door leading to the ball room. This may be your big chance." : goto 4340 4080 print "This is the Parlor and Smoking Room. Hunting trophies and traditional" 4081 print "Morolian hunting horns adorn the walls, and the air is still heavy with" 4082 print "cigar and pipe smoke." : goto 4340 4085 print "The grand foyer of the mansion is well named -- twenty foot ceilings and a " 4086 print "grand chandelier make this one of the more brilliant rooms in all of" 4087 print "Vladistan. A majestic double staircase to the north leads up, and to the " 4088 print "east and west are the living and ball rooms respectively." : goto 4340 4090 print "The grand ballroom. The game room is north, a service hall east, and " 4091 print "the main foyer is south." : if w0 = 1 then goto 4092 : goto 4340 4092 w0 = 0 : w1 = cc+5 : goto 4340 4095 print "The game room. Morolian games tend to run to blood sports, but a pool." 4096 print "table has been installed in a nod to local sensibilities. " : goto 4340 4100 print "This is the service hall. The kitchen is north, and the cloakroom is south" : goto 4340 4105 print "The kitchen is rarely used. An old dumbwaiter is north and stairs to the" 4106 print "cellar are east." : goto 4340 4110 print "This is the cloak room. The only exit is north. " : goto 4340 4115 print "With great effort you squeeze yourself into the dumbwaiter. The controls are " 4116 print "outside, but here inside you can see the ropes that actually move the platform." : goto 4340 4120 print "North Hall. North, stairs lead down. The hallways continues south, and doors" 4121 print "lead east and west." : goto 4340 4125 print "The ambassador's wife's bedroom. It is surprisingly austere." : goto 4340 4130 print "The ambassador's office. Wires lead from a typewriter-like machine north out" 4131 print "a set of French doors here to a roof deck." : goto 4340 4135 print "After the opulence of the downstairs, this hallway is almost austere." 4136 print "There are exits in all directions." : goto 4340 4140 print "This east/west hallway is distinguished by a framed print of Morolian" 4141 print "shepherds." : goto 4340 4145 print "This west end of the hall features a framed print of Oscar D'Agistino, a" 4146 print "scientist of Morolian-Italian descent who worked with Fermi." : goto 4340 4150 print "The only bathroom upstairs. A small linen closet is south." : goto 4340 4155 print "The south hall features a print of the pride of Morolian" 4156 print "industrial accomplishment: a coal-fired power plant." : goto 4340 4160 print "This guest room is coated in dust." : goto 4340 4165 print "The Ambassador's bedroom. It's decorated in gaudy gold lame and" 4166 print "red velvet." : goto 4340 4170 print "The servants' quarters. This military style barracks features" 4171 print "narrow cots. A closet is south." : goto 4340 4175 print "This is a dusty closet." : goto 4340 4180 print "Linen closet." : goto 4340 4185 print "A faint odor of urine hangs in the air of this unused bedroom." : goto 4340 4190 print "The sitting room is decorated with cross-stitched renditions of Morolia's" 4191 print "national foods, including blood dumplings and steaming mare's milk." : goto 4340 4195 print "This is a small roof deck. To the west is the radio tower." : goto 4340 4200 print "You are at the base of a tall radio tower (you can probably see to" 4201 print "Moscow from the top, you think grimly)." : goto 4340 4205 print "The other main entertainment room, the living room is decorate with" 4206 print "gold velvet couches and rugs of Morolian yak fur, died royal purple." : goto 4340 4210 print "This magnificent walk in closet is packed with gilded uniforms of the" 4211 print "Morolian Foreign Service." : goto 4340 4215 print "Tiny closet." : goto 4340 4220 print "As bleak as its description, this closet is." : goto 4340 4225 print "This old cellar room is filled with cobwebs." : goto 4340 4230 print "The western end of the cellar hallway." : goto 4340 4235 print "Apparently this is an interrogation room (or else the Ambassador's pretty kinky)." 4236 print "Various implements of torture that you thought went out with the Plague litter" 4237 print "the room, including a rack." : goto 4340 4240 print "This room is dominated by a massive black furnace: a gaping hole in the side" 4241 print "reveals white hot flames." : goto 4340 4245 print "The hallway goes east and west here, and a passage heads north." : goto 4340 4250 print "You're in a dirt-floored north/south hallway." : goto 4340 4255 print "This was probably the kitchen storeroom at one time, judging from the" 4256 print "old orange crates and what not littering the floor. A door in the west" 4257 print "wall probably used to lead up, but it is firmly boarded shut." : goto 4340 4260 print "A high-tech warren of East German VAX clones, the hum of air conditioning" 4261 print "and massive reel to reel tape drives makes it hard to even think in here." 4262 print "Clearly, this is where the bulk of the espionage happens in Vladistan." : goto 4340 4265 print "The hall continues east and west from here. An imposing door lies north." : goto 4340 4270 print "This dirt floored room is entirely empty." : goto 4340 4275 print "This room is filled with garbage of every imaginable kind." : goto 4340 4280 print "Given its contents, you could probably (if you were feeling charitable)" 4281 print "call this room 'garden storage,' but you'd probably be just as accurate" 4282 print "calling it 'more garbage' or 'dingy cellar room.'" : goto 4340 4285 print "You are crammed into the dumbwaiter, which is wedged into the bottom" 4286 print "of its shaft. One lone cut rope swings piteously." : goto 4340 4290 print "You are on some sloping stairs that lead to the lawn. Doors close" 4291 print "above your head." : goto 4340 4340 er = r : return 5000 if vu = 0 then goto 1000 5001 print : print "***Your one-way wrist radio crackles to life. It's K, with a message:" 5002 print "Cartright, the bomb scare won't hold the police back very " 5003 print "long. You need to make a boom in there, even if its a small " 5004 print "one, to keep them outside.***" : w2 = cc+10 : goto 1000 5010 print : print "***Your one-way wrist radio crackles to life. It's K, with a message:" 5011 print "Cartright, we've received word that a French agent may be on the" 5012 print "premises. We don't know why he's there. Avoid him or talk to him" : print "at your discretion, but remember, "; 5013 print "when it comes to nuclear secrets," : print "we have no allies.***" : goto 1000 5020 print : print "***Your one-way wrist radio crackles to life. It's K, with a message:" 5021 print "'We may have an opportunity to kill two birds with one stone here." 5022 print "Now that you're in, see if you can destroy the radio tower on the " 5023 print "roof. Good luck.'*** " : w3 = cc+40 5024 print : print "A moment later the radio crackles again. 'Cartright, K. Bit of a" 5025 print "wrinkle for you. It appears the tower there is a reverse packet." 5026 print "radio transmitter. The XJ-39 data may be waiting for the Russians to" 5027 print "call in. You must, I repeat MUST, bring that radio tower down! K out.'" : goto 1000 5030 if vu = 0 then goto 1000 5031 print : print "***Your one-way wrist radio crackles to life. 'Cartright!,' barks" 5032 print "K, 'the cops haven't detected a blast and they're about to come in!" 5033 print "GET OUT! But if you can't, make sure you are not taken alive." 5034 w4 = cc+3 goto 1000 5040 if vu = 0 then goto 1000 5041 print : print "***Your wrist radio crackles to life, but you don't need to listen" 5042 print "to know what K is about to say -- you can hear the cops coming" 5043 print "into the building. It's only a matter of time before they get you." 5044 ci = 0 : w5 = cc+3 : goto 1000 5050 print : print "Uh-oh. You are face to face with two of Vladistan's finest, joined" 5051 print "by a very angry looking Morolian Marine." 5052 print "Images of a rat-infested prison cell and all the torture you can" 5053 print "stand rush to your head." 5054 print "Of course the agency will deny all knowledge of your actions. As " 5055 print "far as they're concerned, what you're about to get is probably just" 5056 print "punishment for not killing yourself as soon as you realized the cops" 5057 print "were inside. As they drag you away, you wonder how long you can hold" 5058 print "before they break you..." : goto 8000 5200 for x = 1 to 23 5220 if ob(x,2) = r and ob(x,1) = 1 then print l$(x,1) 5230 if ob(x,2) = r and ob(x,1) = 0 then print "You see a ";l$(x,2) 5240 next x 5250 return 5300 if m1$ = "I" then goto 5420 5320 if m1$ = "L" then er = 0 : goto 1000 5325 if m1$ = "N" then goto 5345 5330 if m1$ = "S" then goto 5355 5335 if m1$ = "E" then goto 5365 5340 if m1$ = "W" then goto 5375 5341 print "I'M SORRY, BUT YOUR INPUT WASN'T UNDERSTOOD." : goto 1000 5345 if rm(r,1) < 1 then b = 1 : goto 5385 5353 er = r : r = rm(er,1) : goto 1000 5355 if rm(r,2) < 1 then b = 2 : goto 5385 5363 er = r : r = rm(er,2) : goto 1000 5365 if rm(r,3) < 1 then b = 3 : goto 5385 5373 er = r : r = rm(er,3) : goto 1000 5375 if rm(r,4) < 1 then b = 4 : goto 5385 5383 er = r : r = rm(er,4) : goto 1000 5385 for x = 1 to 4 5387 if rm(r,x) = -1 and b = x then print "There're too many people around to sneak in that way." : goto 1000 5388 if rm(r,x) = -2 and b = x then print "You could go out that way, but you'd probably be (unfortunately but correctly)" : print "shot as a spy." : goto 1000 5389 if rm(r,x) = -3 and b = x then print "The door between the cellar and kitchen is locked tight." : goto 1000 5390 if rm(r,x) = -4 and b = x then print "Impossible. You'd be too conspicuous, and the doors are locked on the inside." : goto 1000 5391 if rm(r,x) = -5 and b = x then print "You scramble up the dusty shoot, but it is cemented over at the top. " : goto 1000 5392 if rm(r,x) = -6 and b = x then print "The door to the cloak room is locked." : goto 1000 5393 if rm(r,x) = -7 and b = x then print "That's the way you got in, but there's too many people there now to go out." : goto 1000 5394 if rm(r,x) = -8 and b = x then print "The door to the north is sealed shut with a massive vaulted blast door." : print "It looks strong enough to defeat even your safe cracking skills." : goto 1000 5395 if rm(r,x) = -9 and b = x then print "The cellar doors are sealed with a strong iron padlock." : goto 1000 5396 next x 5399 for x = 1 to 4 : if rm(r,x) = 0 then j = rnd(5) 5400 if j = 0 then print "You can't go that way." : goto 1000 5402 if j = 1 then print "That's not an exit" : goto 1000 5404 if j = 2 then print "Despite your best efforts, you fail to find an exit that way." : goto 1000 5406 if j = 3 then print "Nope, pick another direction." : goto 1000 5408 if j = 4 then print "You can't go that way." : goto 1000 5410 next x 5420 rem * 5425 print "You are holding the following:" : b = 0 5430 for x = 1 to 23 5440 if ob(x,2) = 0 then print "A ";l$(x,2) : b = b+1 5450 next x 5460 if b = 0 then print "NOTHING." 5470 goto 1000 7000 print : print "'Why is that waiter mingling with the guests?' you hear a suspicious" 7010 print "voice say behind you." : mf = mf+1 : ry = 1 : goto 1000 7020 print : print "You notice a man following you." : mf = mf+1 : goto 1000 7030 print : print "Just as you step inside the hose, the man who's been following you" 7040 print "signals to some police, who quickly surround you and haul you off for" 7050 print "questioning..." : goto 8000 7060 print : print "After stashing the waiter's jacket and revealing your tux, you slip" 7070 print "away from your tail and melt into the crowd." : mf = 0 : goto 1000 8000 print : print "Game over." : end 8010 print : print 8020 print : print "You burst through the celler doors, directly into a crowd of guests." 8030 print "Among them is Marchant. 'Ahh, Cartright,' he says, as he turns to his left," 8040 print "indicating rapidly approaching men in uniform. 'I zink your mission ees at an" 8050 print "end, one way or another.'" 8060 if ob(21,2) = 0 then eg1 = 1 8070 if ob(21,2) <> 0 and pd = 1 then eg1 = 2 8080 if pd = 0 then eg1 = 3 8090 if td = 1 then eg2 = 1 8100 if td = 0 then eg2 = 0 8110 if ob(20,2) = 0 then eg3 = 1 8120 if ob(20,2) <> 0 and cb = 1 then eg3 = 2 8130 if cb = 0 then eg3 = 3 8135 if eg1 = 1 then print 8140 if eg1 = 1 then print "He reaches inside your tux. 'I will take thees,' he says as he grabs the plans." 8145 if eg1 = 1 then print "He looks briefly at the plans. 'Thees is not the codebook I was sent to steal,'" 8147 if eg1 = 1 then print "he says. He looks up at you. 'But I think it may be even more valuable, no?'" 8149 if eg1 = 2 then print 8150 if eg1 = 2 then print "He looks at you. 'I see from your eyes that you did not find what you came for.'" 8155 if eg1 = 3 then print 8160 if eg1 = 3 then print "He pauses. 'You have the look of a man who has completed his mission. It is a" 8170 if eg1 = 3 then print "look only one in our line of work could see.'" 8175 if eg3 = 1 then print 8180 if eg3 = 1 then print "He eyes you briefly, then reaches over and snatches the small Morolian codebook" 8190 if eg3 = 1 then print "out of your pants pocket. 'The codebook! Wonderful! Cartright,' he beams, 'you" 8200 if eg3 = 1 then print "have done my mission for me! Merci,' he says as he tucks it away in his coat." 8205 if eg3 = 2 then print 8210 if eg3 = 2 then print "Marchant looks at you and frowns. 'You didn't get it did you? Damnit," 8220 if eg3 = 2 then print "Cartright. After zis show you put on tonight, how will I get inzide to get zat " 8230 if eg3 = 2 then print "codebook now, eh? You, my friend, have made my life tres difficile ce soir.'" 8240 if eg3 = 2 then print "He sighs. 'Ah well, you must do your job just as I must do mine, no?'" 8242 if eg3 = 3 then print 8245 if eg3 = 3 then print "He grabs you. 'The codebook, you deedn't destroy it, did you.' You nod." 8250 if eg3 = 3 then print "Marchant winces. 'My my mission... blown.' He sighs and pulls himself together." 8260 if eg3 = 3 then print "'Ahh well. Zat is the way, sometimes, the game ends up, eh?'" 8270 input x$ 8280 print : print "Before you can do anything, the police are upon you. As they reach for you," 8290 print "Marchant steps forward. 'Do not touch him,' he says in perfect Vladistani." 8300 print "'This man is with me. He has the full protection of France, and should be" 8310 print "treated as a dipolat, with full immunity. Come with me, mon ami,' he says to" 8320 print "you, and takes you by the arm. As you walk away from the mansion, he leans in." 8330 print "'You owe me one,' he says." 8340 if td = 1 then print "'Merci,' you say 'I just wish I had destroyed the tower...'" 8350 print : print : print "THE END." 9999 end 10000 data 7,0,0,2,-1,0,1,3,8,0,2,0,0,-1,6,5,0,8,4,0,0,7,0,4,6,1,-4,0,5,3,11,0,-2,34,-2,-2,17,-2,34,11 10010 data 12,10,13,-7,-2,11,-2,-2,14,-6,34,11,16,13,-3,0,13,0,0,0,0,14,0,0,10,20,19,18,0,0,17,0,32,0,0,17,17,24,21,22 10020 data 0,26,27,20,31,30,20,0,0,29,24,0,20,0,25,23,0,36,0,24,21,35,0,0,0,28,0,21,27,0,0,0,23,0,0,0,22,37,0,0 10030 data 0,22,0,0,0,19,0,33,0,0,32,0,9,10,-2,13,26,0,0,0,25,0,0,0,30,0,0,0,0,39,0,0,38,40,42,0,39,0,0,0 10040 data 42,-5,0,0,43,41,46,39,50,42,0,44,0,0,43,-3,0,46,0,0,-8,47,48,42,46,0,0,0,49,0,51,46,0,48,0,0,0,43,0,0,0,0,-9,48 10050 data 0,0,1,12,1,12,1,12,1,12,1,14,1,14,1,14,1,9,0,100,1,9,1,15,0,100,1,28,1,29,1,29,1,29,1,38,1,38,1,45,1,45,1,49,1,49 10060 data "WAITER'S JACKET","JACKET","On the wall is an antique hunting rifle.","RIFLE","On the pool table sits an ivory ball.","BALL" 10070 data "A pool cue sits on the floor where it was hastily dropped.","POOL CUE","In a special case rests a Morolian hunting knife.","KNIFE" 10080 data "A box of soda is on the floor.","SODA","A bottle of vinegar is on the counter.","VINEGAR","A small mason jar is on the stove.","JAR" 10085 data "A well made coat is draped across a chair here.","COAT" 10090 data "MESSAGE","MESSAGE","A book of matches sits in an ashtray.","MATCHES","An case with the initials DM on it catches your attention.","CASE" 10100 data "BLASTING CAP","BLASTING CAP","In the dust of the servants's closet you notice a key.","KEY","A box of Sudski sits on the floor.","SUDSKI","A box of Slava soap sits on the floor.","SLAVA" 10110 data "An unused bottle of StalinClean (Russia's #1 soap) rests here.","STALINCLEAN","A crowbar rusts in the corner.","CROWBAR","Bolt cutters hang from a hook in the ceiling." 10120 data "BOLTCUTTER","A Morolian Codebook sits unguarded by the console.","CODEBOOK","There! Atop a manila folder lie the plans for the XJ-39!" 10130 data "PLANS","A well used gardening shovel sits in the corner.","SHOVEL","A broken rake lies on the floor.","RAKE" 10140 data "GO","NOR","SOU","EAS","WES","TAL","REA","LOO","EXA","SEA","INV","HEA","DIA","CUT","SHO","KIL" 10150 data "DIG","PUT","DRO","REM","GET","TAK","CLO","UNL","BRE","PRY","SMA","BEN","OPE","LIG","BUR","USE","XYZ","FUC","SHI","PIS" 10160 data 1,1,1,1,1,2,3,3,3,3,4,5,5,6,7,7,8,9,9,9,10,10,11,12,13,13,13,13,14,15,15,16,17,18,18,18