Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 100 rem /// STAR WARS
- 110 rem ///
- 120 rem ///A ROLE-PLAYING GAME
- 130 rem /// (C) COPYRIGHT 1979
- 140 rem /// BY DONALD BROWN
- 150 goto 170
- 160 for CN = 1 to CF : for TA = AB to AE : poke 0 , TA : poke 1 , DN : call 770 : next TA , CN : return
- 170 restore
- 180 dim R ( 42 , 9 ) , P ( 4 , 7 ) , D ( 3 ) , S ( 10 , 2 ) , R$ ( 2 ) , B$ ( 3 ) , E$ ( 4 ) , C$ ( 8 ) , O$ ( 5 ) , P$ ( 4 ) , N$ ( 5 ) , W$ ( 3 ) , D$ ( 3 )
- 185 dim CM$ ( 14 )
- 190 for I = 1 to 42 : for J = 1 to 9 : R ( I , J ) = 0 : next : next
- 200 for I = 1 to 4 : for J = 1 to 7 : P ( I , J ) = 0 : next : next
- 210 home : vtab 5 : print TAB( 15 ) ; "WELCOME TO" : print : htab 16 : inverse : print "STAR WARS" : normal : print
- 220 for X = 1 to 100 : vtab 13 : htab 1 : print MID$( " <==A SCIENCE FICTION ROLE-PLAYING GAME BY DONALD BROWN==> " , X , 40 )
- 230 for A = 1 to 10 : if PEEK( - 16384 ) = 155 then poke - 16368 , 0 : vtab 13 : call - 868 : for X = 1 to 1 : for A = 1 to 1
- 240 next : next
- 250 vtab 13 : input "WHAT IS YOUR NAME?" ; N$ ( 1 )
- 260 for R1 = 1 to 42 : for X = 1 to 5 : read R ( R1 , X ) : next : next
- 270 data 30,2,0,0,4,3,4,1,0,102,0,0,0,2,221,0,5,2,0,202,10,6,4,8,103,0,7,5,0,302,0,0,6,0,311,5,0,0,9,412,8,0,0,0,111,11,0,0,5,212
- 280 data 14,12,0,10,123,0,13,11,0,222,0,0,12,0,121,15,0,0,11,512,0,0,16,14,133,0,15,17,0,232,18,16,0,0,433,19,0,0,17,242,20,0,26,18,321,21,42,37,19,462,22,41,38,20,262,0,40,39,21,562,0,34,33,24,572,23,35,32,25,272,24,36,31,26,472
- 290 data 25,19,0,27,421,26,0,28,29,552,0,27,0,0,211,27,0,0,-30,252,-29,0,0,1,452,0,25,0,0,14,0,24,0,0,24,0,23,0,0,34,0,0,23,0,44,0,0,24,0,54,0,0,25,0,64,0,20,0,0,74,0,21,0,0,84,0,22,0,0,94,0,0,22,0,104,0,0,21,0,114,0,0,20,0,124
- 300 P ( 1 , 1 ) = 1 : for P1 = 2 to 3 : R1 = INT( RND( 1 ) * 12 + 31 ) : P ( P1 , 1 ) = - R1 : next : if P ( 2 , 1 ) = P ( 3 , 1 ) then 300
- 310 R1 = INT( 29 * RND( 1 ) + 2 ) : P ( 4 , 1 ) = R1 : for P1 = 1 to 4 : for X = 2 to 3 : P ( P1 , X ) = INT( 10 * RND( 1 ) + 11 ) : next : next
- 320 P ( 3 , 2 ) = P ( 3 , 2 ) * 2 : P ( 1 , 4 ) = 1 : P ( 1 , 6 ) = 1 : P ( 4 , 4 ) = 1 : P ( 4 , 6 ) = 1
- 330 R ( 19 , 7 ) = 3 : R ( 26 , 7 ) = 3
- 340 for S = 1 to INT( 20 * RND( 1 ) + 5 )
- 350 R1 = INT( RND( 1 ) * 30 + 1 ) : if R ( R1 , 7 ) = 10 then 350
- 360 R ( R1 , 7 ) = R ( R1 , 7 ) + 1 : next S : for D = 1 to 3 : D ( D ) = 0 : next : S8 = 0
- 370 home : vtab 3 : print "REBEL " ; N$ ( 1 ) ; "--" : print : print "YOU ARE ABOARD THE MILLENIUM FALCON" : print "WHICH HAS JUST BEEN DRAGGED ABOARD THE INFAMOUS " ; : flash : print "DEATH STAR" : normal : print
- 380 print "THIS OF COURSE MEANS YOU ARE IN TROUBLE.BUT YOU ARE ALSO IN A POSITION TO DO GOOD THINGS FOR THE REBELLION, SUCH AS DAMAGING THE DEATH STAR, ELIMINATING IMPERIAL SOLDIERS, KILLING DARTH VADER, OR RESCUING PRINCESS LEIA"
- 390 print
- 400 print "YOU MIGHT EVEN BE ABLE TO SABOTAGE THE POWER MACHINERY ROOM IN SUCH A WAY AS TOMAKE THE DEATH STAR SELF-DESTRUCT!"
- 410 vtab 20 : print "(HIT ANY KEY FOR FURTHER ORDERS)" ; : get A$
- 420 home : print "YOU ARE EQUIPPED WITH A LIGHT SABRE AND A BLASTER SHIELD. YOU MAY USE ANY" : print "BLASTERS YOU STRIP FROM DEAD SOLDIERS ORYOU MAY GIVE THEM TO PRISONERS YOU" : print "RELEASE." : print
- 430 print "TO ESCAPE, YOU MUST RENDER THE TRACTOR BEAM INOPERABLE BY EITHER SABOTAGING THEPOWER MACHINERY ROOM OR THE TRACTOR BEAMROOM. YOU MUST THEN RETURN TO THE" : print "HANGER DECK AND TAKE OFF IN THE"
- 440 print "MILLENIUM FALCON." : print
- 450 print "AS WITH ANY JEDI HOPEFUL, YOU WILL ACT THROUGH THE FORCE. YOU WILL DO SO BY GIVING COMMANDS FOR YOUR ACTIONS. SIMPLYHITTING 'RETURN' LISTS ALL OF THE LEGAL COMMANDS" : print
- 460 print "YOU HAVE A LIMITED AMOUNT OF TIME." : print "MAY THE FORCE BE WITH YOU!" : print
- 470 print "(HIT ANY KEY TO BEGIN YOUR MISSION)" ; : get A$ : print
- 480 for A = 1 to 2 : read R$ ( A ) : next : for A = 1 to 3 : read B$ ( A ) : next : for A = 1 to 4 : read E$ ( A ) : next : for A = 1 to 8 : read C$ ( A ) : next
- 490 for A = 1 to 5 : read O$ ( A ) : next : for A = 1 to 4 : read P$ ( A ) : next : for A = 2 to 5 : read N$ ( A ) : next : for A = 1 to 3 : read W$ ( A ) : next : for A = 1 to 3 : read D$ ( A ) : next
- 500 data MACHINERY,CONTROL,TRACTOR BEAM,POWER,WEAPONRY,COMMAND,HANGER,EAST DETENTION,WEST DETENTION,BROWN,GREEN,BLUE,YELLOW,RED,ORANGE,BLACK,WHITE
- 510 data WEST END,MIDDLE,EAST END,SOUTH END,NORTH END,NORTH,EAST,WEST,SOUTH,PRINCESS LEIA,THE WOOKIE,DARTH VADER,IMPERIAL SOLDIER,SHIELD,BLASTER,LIGHT SABRE
- 520 data UNDAMAGED,DAMAGED BUT CAN BE REPAIRED,IRREPAIRABLY DAMAGED
- 530 for P = 770 to 788 : read A : poke P , A : next
- 540 data 173,48,192,136,208,4,198,1,240,8,202,208,246,166,0,76,2,3,96
- 542 for I = 1 to 14 : read CM$ ( I ) : next
- 543 data GE,D,M,SABR,A,O,GI,L,F,TO,SW,TA,SAB,C
- 550 R1 = 1 : home
- 560 gosub 1750 : for T8 = INT( 50 * RND( 1 ) + 76 ) to 1 step - 1
- 570 if P ( 4 , 1 ) = P ( 1 , 1 ) then 610
- 580 if P ( 4 , 1 ) = 0 then 610
- 590 X = INT( 4 * RND( 1 ) + 1 ) : R1 = P ( 4 , 1 ) : if R ( R1 , X ) < 1 then 590
- 600 R1 = R ( R1 , X ) : P ( 4 , 1 ) = R1 : if R1 = P ( 1 , 1 ) then flash : print "***DARTH VADER HAS ARRIVED***" : normal : gosub 2800 : gosub 2710
- 610 if C9 = 9 then 620
- 620 if T8 = INT( 10 * RND( 1 ) ) then inverse : print "TIME IS ALMOST OUT" : normal
- 630 gosub 820 : if P ( 1 , 1 ) <> P ( 4 , 1 ) then 680
- 640 if P ( 4 , 6 ) < 1 then 670
- 650 print "DARTH VADER SWINGS AT YOU WITH HIS LIGHT SABRE!" : gosub 2800 : A1 = P ( 4 , 2 ) : D1 = P ( 1 , 2 ) : P1 = 1 : gosub 840 : if P ( 1 , 1 ) = 0 then 810
- 660 goto 680
- 670 print "DARTH VADER SWINGS AT YOU WITH HIS FIST!" ; : A1 = P ( 4 , 2 ) / 2 : D1 = P ( 1 , 2 ) : P1 = 1 : gosub 840 : if P ( 1 , 1 ) = 0 then 810
- 680 if S9 = 0 then 750
- 690 for S = 1 to S9 : if RND( 1 ) < .1 then 740
- 700 P1 = INT( 5 * RND( 1 ) + 1 ) : if P1 <> 5 then if P ( 1 , 1 ) <> ABS( P ( P1 , 1 ) ) then 700
- 710 print "A SOLDIER FIRES AT " ; N$ ( P1 ) : A1 = S ( S , 2 ) : D1 = S ( S9 , 1 ) : J = 5 / 4 : if P1 <> 5 then D1 = P ( P1 , 2 ) : if P ( P1 , 4 ) = 0 then J = 1
- 720 D1 = D1 * J : gosub 2750
- 730 gosub 840 : if P ( 1 , 1 ) = 0 then 810
- 740 next S
- 750 for P1 = 2 to 3 : if P ( 1 , 1 ) <> P ( 4 , 1 ) and P ( P1 , 1 ) = - P ( 4 , 1 ) and P ( 4 , 1 ) <> 0 then R1 = P ( 4 , 1 ) : R1 = 31 + INT( RND( 1 ) * 12 ) : P ( P1 , 1 ) = - R1
- 760 next P1
- 770 R1 = INT( 30 * RND( 0 ) + 1 ) : if R ( R1 , 6 ) = 1 then R ( R1 , 6 ) = 0
- 780 next T8 : if D ( 1 ) = 1 then 800
- 790 inverse : print "THE FORCE FINALLY GAVE UP ON YOU." : normal : goto 810
- 800 inverse : print "THE DEATH STAR JUST EXPLODED." : print "UNFORTUNATELY, YOU WERE STILL ABOARD" : normal
- 810 print "YOU ARE DEAD." : P ( 1 , 1 ) = 0 : goto 2280
- 820 print : input "WHAT IS YOUR COMMAND?" ; A$ : print : for C9 = 1 to 14 : if LEFT$( A$ , LEN( CM$ ( C9 ) ) ) = CM$ ( C9 ) then 830
- 825 next C9 : goto 1640
- 830 on C9 goto 1020 , 1110 , 1680 , 1420 , 1830 , 2130 , 1490 , 1580 , 1550 , 1160 , 1230 , 1430 , 1330 , 2200
- 840 A1 = A1 - D1 + ( INT( RND( 1 ) * 7 ) - 3 ) : if A1 < 0 then print " A MISS!" : D1 = 0 : return
- 850 if P1 <> 5 then 890
- 860 print " SOLDIER--HIT AND KILLED!" : S8 = S8 + 1 : S9 = S9 - 1 : R ( P ( 1 , 1 ) , 9 ) = R ( P ( 1 , 1 ) , 9 ) + 1 : R ( P ( 1 , 1 ) , 8 ) = R ( P ( 1 , 1 ) , 8 ) + 1 : R ( P ( 1 , 1 ) , 7 ) = R ( P ( 1 , 1 ) , 7 ) - 1
- 870 if R ( P ( 1 , 1 ) , 7 ) < 0 then S9 = 0 : R ( P ( 1 , 1 ) , 7 ) = 0
- 880 gosub 2780 : goto 2710
- 890 D1 = INT( 4 * RND( 1 ) ) : P ( P1 , 2 ) = P ( P1 , 2 ) - D1 : print " A HIT!" : if P ( P1 , 2 ) <= 0 then print " A KILLING BLOW!" : P ( P1 , 1 ) = 0 : gosub 2780 : goto 2710
- 900 gosub 2790
- 910 if D1 = 0 or P ( P1 , 3 + D1 ) = 0 then return
- 920 print " A " ; W$ ( D1 ) ; " WAS DESTROYED" : P ( P1 , 3 + D1 ) = P ( P1 , 3 + D1 ) - 1 : goto 2710
- 930 rem GET S$
- 940 R2 = INT( R ( R1 , 5 ) / 100 ) : R3 = INT( R ( R1 , 5 ) / 10 ) - R2 * 10 : R4 = R ( R1 , 5 ) - ( 100 * R2 + 10 * R3 ) : on R4 goto 950 , 980 , 990 , 1000
- 950 if R3 = 2 then S$ = E$ ( R2 ) : goto 970
- 960 S$ = B$ ( R2 )
- 970 S$ = S$ + " " + R$ ( R3 ) + " ROOM" : return
- 980 S$ = O$ ( R2 ) + " OF THE " + C$ ( R3 + 1 ) + " CORRIDOR" : return
- 990 S$ = "JUNCTION OF " + C$ ( R2 + 1 ) + " AND " + C$ ( R3 + 1 ) + " CORRIDORS" : return
- 1000 if R1 = 1 then S$ = "HANGER DECK" : return
- 1010 S$ = "DETENTION CELL #" + STR$( INT( R ( R1 , 5 ) / 10 ) ) : return
- 1020 if R ( P ( 1 , 1 ) , 7 ) = 0 and P ( 1 , 1 ) <> P ( 4 , 1 ) then 1040
- 1030 print "YOU CAN'T DO THAT WHILE ENEMIES ARE IN THE ROOM!" : goto 820
- 1040 gosub 3000 : if A > 0 then A$ = MID$( A$ , A + 1 ) : goto 1045
- 1042 print "WHAT DO YOU WANT TO GET, A SHIELD, A" : input " BLASTER, OR ALL (S,B,OR A)?" ; A$
- 1045 C = 1 : if LEFT$( A$ , 1 ) = "B" then C = 2
- 1050 if LEFT$( A$ , 1 ) = "A" then 1090
- 1060 if R ( P ( 1 , 1 ) , 7 + C ) = 0 then print "THERE AREN'T ANY " ; W$ ( C ) ; "S" : print " TO PICK UP" : goto 820
- 1070 print "OK." : gosub 2820 : R ( P ( 1 , 1 ) , 7 + C ) = R ( P ( 1 , 1 ) , 7 + C ) - 1 : P ( 1 , 3 + C ) = P ( 1 , 3 + C ) + 1 : gosub 2820 : gosub 2710
- 1080 goto 820
- 1090 print "OK." : D = P ( 1 , 1 ) : for C = 1 to 2 : B = 7 + C : if R ( D , B ) > 0 then for A = 1 to R ( D , B ) : R ( D , B ) = R ( D , B ) - 1 : P ( 1 , 3 + C ) = P ( 1 , 3 + C ) + 1 : gosub 2820 : next A
- 1100 next C : gosub 2710 : goto 820
- 1110 if R ( P ( 1 , 1 ) , 7 ) <> 0 or P ( 1 , 1 ) = P ( 4 , 1 ) then 1030
- 1115 gosub 3000 : if A > 0 then A$ = MID$( A$ , A + 1 ) : goto 1125
- 1120 print "WHAT DO YOU WANT TO DROP, A SHIELD OR" : input " BLASTER (S OR B)?" ; A$
- 1125 C = 1 : if LEFT$( A$ , 1 ) = "B" then C = 2
- 1130 if P ( 1 , 3 + C ) = 0 then print "YOU AREN'T CARRYING A " ; W$ ( C ) : goto 820
- 1140 print "OK." : R ( P ( 1 , 1 ) , 7 + C ) = R ( P ( 1 , 1 ) , 7 + C ) + 1 : P ( 1 , 3 + C ) = P ( 1 , 3 + C ) - 1 : gosub 2820 : gosub 2710
- 1150 goto 820
- 1160 if R ( P ( 1 , 1 ) , 7 ) <> 0 or P ( 1 , 1 ) = P ( 4 , 1 ) then 1030
- 1170 if D ( 2 ) <> 0 then print "THE ROPE'S ALREADY UP!" : goto 820
- 1180 if P ( 1 , 1 ) <> 29 and P ( 1 , 1 ) <> 30 then print "HOW DO YOU EXPECT TO CONNECT THE ROPE FROM THE " ; S$ ; "?" : goto 820
- 1190 SPEED= 150 : print "THE ROPE SWINGS--FLIES--AND " ; : SPEED= 255 : if RND( 1 ) < .5 then print "MISSES." : print "BETTER LUCK NEXT TIME." : return
- 1200 print "CATCHES." : print "GOOD SHOT!" : D ( 2 ) = 1
- 1210 Y = PEEK( 37 ) : vtab 6
- 1220 gosub 2650 : vtab Y + 1 : return
- 1230 if R ( P ( 1 , 1 ) , 7 ) <> 0 or P ( 1 , 1 ) = P ( 4 , 1 ) then 1030
- 1240 if D ( 2 ) = 0 then print "THE ROPE ISN'T UP!" : goto 820
- 1250 if P ( 1 , 1 ) <> 29 and P ( 1 , 1 ) <> 30 then print "HOW DO YOU EXPECT TO SWING ON THE ROPE FROM THE " ; S$ ; "?" : goto 820
- 1260 J = 1 : print "THE PEOPLE SWINGING ARE--" : print " YOU" : for X = 1 to 2 : if P ( 1 , 1 ) = P ( X + 1 , 1 ) then print TAB( 4 ) ; N$ ( X + 1 ) : J = J + X
- 1270 next X : print "OKAY, NOW" : SPEED= 150 : print ". . . UP, UP, AND AWAY--" : SPEED= 255 : if J > INT( 4 * RND( 1 ) + 1 ) then inverse : print "EGAD, THE ROPE BROKE" : normal : goto 810
- 1280 print "THE ROPE HELD, LUCKY YOU" : if P ( 1 , 1 ) = 30 then M = 29 : goto 1300
- 1290 M = 30
- 1300 gosub 2720
- 1310 for X = 3 to 1 step - 1 : if P ( X , 1 ) = P ( 1 , 1 ) then P ( X , 1 ) = M
- 1320 next X : goto 1750
- 1330 if R ( P ( 1 , 1 ) , 7 ) <> 0 or P ( 1 , 1 ) = P ( 4 , 1 ) then 1030
- 1340 if R ( P ( 1 , 1 ) , 5 ) - 10 * INT( R ( P ( 1 , 1 ) , 5 ) / 10 ) <> 1 then print "THERE'S NOTHING TO SABOTAGE HERE" : goto 820
- 1350 if R ( P ( 1 , 1 ) , 6 ) = 2 and P ( 1 , 1 ) <> 28 then print "WHY? THE ROOM'S ALREADY IRREPAIRABLY DESTROYED." : goto 820
- 1360 gosub 2760
- 1370 R ( P ( 1 , 1 ) , 6 ) = R ( P ( 1 , 1 ) , 6 ) + INT( 3 * RND( 1 ) ) : if R ( P ( 1 , 1 ) , 6 ) > 2 then R ( P ( 1 , 1 ) , 6 ) = 2
- 1380 Y = PEEK( 37 ) : vtab 6
- 1390 gosub 2640 : vtab Y + 1
- 1400 if R ( P ( 1 , 1 ) , 6 ) = 2 and P ( 1 , 1 ) = 28 and RND( 1 ) < .25 then gosub 2770 : print "CONGRATULATIONS. YOU JUST STARTED THE DEATH STAR'S SELF-DESTRUCT DEVICE." : T8 = INT( 10 * RND( 1 ) + 3 ) : print "UH--YOU'D BETTER GET OUT OF HERE." : D ( 1 ) = 1
- 1410 return
- 1420 D ( 3 ) = not D ( 3 ) : gosub 2800 : goto 2710
- 1430 if P ( 1 , 1 ) <> 1 then print "HOW CAN YOU TAKE OFF FROM THE" : print TAB( 4 ) ; S$ ; "?" : goto 820
- 1440 gosub 2740
- 1450 SPEED= 150 : print "THE MILLENIUM FALCON IS TAKING OFF." : print "LEAVING HANGER NOW." : print "APPROACHING TRACTOR BEAM."
- 1460 SPEED= 255
- 1470 if R ( 9 , 6 ) = 0 and R ( 28 , 6 ) = 0 then inverse : print "THE TRACTOR BEAM LATCHES ON." : print "STRESSES TEAR THE MILLENIUM FALCON INTO ITSY-BITSY PIECES." : normal : goto 810
- 1480 print "TRACTOR BEAM IS INOPERABLE." : print "CONGRATULATIONS ON A REMARKABLE ESCAPE." : goto 2280
- 1490 gosub 3000 : if A > 0 then A$ = MID$( A$ , A + 1 ) : goto 1499
- 1498 print "DO YOU WANT TO GIVE TO THE PRINCESS OR" : input " THE WOOKIE (P OR W)?" ; A$
- 1499 C = 1 : if LEFT$( A$ , 1 ) = "W" then C = 2
- 1500 if P ( 1 , 1 ) <> P ( C + 1 , 1 ) then print : print N$ ( C + 1 ) ; " ISN'T HERE!" : goto 820
- 1505 gosub 3000 : if A > 1 then A$ = MID$( A$ , A + 1 ) : goto 1515
- 1510 print "DO YOU WANT TO GIVE A SHIELD OR A" : input " BLASTER (S OR B)?" ; A$
- 1515 if LEFT$( A$ , 4 ) = "LEIA" then gosub 3000 : A$ = MID$( A$ , A + 1 ) : if A = 0 then 1510
- 1517 C1 = 1 : if LEFT$( A$ , 1 ) = "B" then C1 = 2
- 1520 if P ( 1 , 3 + C1 ) = 0 then print "YOU DON'T HAVE ONE TO GIVE" : goto 820
- 1530 if P ( C + 1 , 3 + C1 ) > 0 then print "SORRY, BUT A FOLLOWER CAN ONLY CARRY ONE OF EACH WEAPON." : goto 820
- 1540 print "OK." : P ( 1 , 3 + C1 ) = P ( 1 , 3 + C1 ) - 1 : P ( C + 1 , 3 + C1 ) = 1 : goto 2710
- 1550 print "OK, SCATTER" : for X = 3 to 1 step - 1 : Y = INT( 4 * RND( 1 ) + 1 ) : if R ( P ( 1 , 1 ) , Y ) > 0 and P ( X , 1 ) = P ( 1 , 1 ) then P ( X , 1 ) = R ( P ( 1 , 1 ) , Y )
- 1560 next : for X = 2 to 3 : if P ( X , 1 ) <> P ( 1 , 1 ) and P ( X , 1 ) > 0 then P ( X , 1 ) = - P ( X , 1 )
- 1570 next : R1 = P ( 1 , 1 ) : goto 1750
- 1580 A$ = S$ : for X = 1 to 4 : if R ( P ( 1 , 1 ) , X ) = 0 then 1620
- 1590 if R ( P ( 1 , 1 ) , X ) < 0 then print "ACROSS A WIDE CHASM" : R1 = - R ( P ( 1 , 1 ) , X ) : goto 1610
- 1600 R1 = R ( P ( 1 , 1 ) , X )
- 1610 gosub 930 : print "TO THE " ; P$ ( X ) ; " IS THE" : print S$
- 1620 next X : S$ = A$
- 1630 return
- 1640 print "I AM THE FORCE. I WILL DO THESE THINGS--" : print " GET AN OBJECT" : print " DROP AN OBJECT" : print " MOVE NORTH, EAST, WEST, OR SOUTH" : print " SABRE ON OR OFF"
- 1650 print " ATTACK WITH SABRE, BLASTER, OR HANDS" : print " ORDER PRINCESS OR WOOKIE" : print " GIVE TO PRINCESS OR WOOKIE" : print " LOOK AROUND" : print " FLEE (EVERYBODY RUNS AWAY)"
- 1660 print " TOSS ROPE TO CROSS THE CHASM" : print " SWING ON THE ROPE ACROSS THE CHASM" : print " TAKE-OFF IN THE MILLENIUM FALCON" : print " SABOTAGE THE EQUIPMENT IN THE ROOM"
- 1670 print " CHARGE! ALL GOOD GUYS ATTACK"
- 1675 SPEED= 255 : goto 820
- 1680 if R ( P ( 1 , 1 ) , 7 ) <> 0 or P ( 1 , 1 ) = P ( 4 , 1 ) then 1030
- 1685 gosub 3000 : if A > 0 then A$ = MID$( A$ , A + 1 ) : goto 1695
- 1690 print "DO YOU WANT TO MOVE NORTH, EAST, WEST," : input " OR SOUTH (N,E,W,S)?" ; A$
- 1695 for C = 1 to 4 : if LEFT$( A$ , 1 ) = MID$( "NEWS" , C , 1 ) then 1710
- 1700 next C : goto 1690
- 1710 R1 = R ( P ( 1 , 1 ) , C ) : if R1 <= 0 then print "YOU CAN'T GO THAT WAY." : goto 820
- 1720 print "OK"
- 1730 for C = 3 to 1 step - 1 : if P ( C , 1 ) = P ( 1 , 1 ) then P ( C , 1 ) = R1
- 1740 next C
- 1750 if P ( 1 , 1 ) = - P ( 2 , 1 ) then print "YOU FOUND THE PRINCESS." : print "SHE THANKS YOU AND FOLLOWS YOU." : P ( 2 , 1 ) = P ( 1 , 1 ) : gosub 2720
- 1760 if P ( 1 , 1 ) <> - P ( 3 , 1 ) then 1800
- 1770 if P ( 3 , 7 ) then P ( 3 , 1 ) = P ( 1 , 1 ) : goto 1800
- 1780 print "YOU ARE GREETED BY A LARGE, EXTREMELY DANGEROUS-LOOKING WOOKIE." : if RND( 1 ) < .25 then inverse : print "HE CHARGES AND RIPS YOUR ARMS OUT." : normal : goto 810
- 1790 print "FORTUNATLEY, HE DECIDES TO JOIN UP WITH YOU." : P ( 3 , 1 ) = P ( 1 , 1 ) : P ( 3 , 7 ) = 1 : gosub 2720
- 1800 R1 = P ( 1 , 1 ) : gosub 930 : S9 = R ( P ( 1 , 1 ) , 7 )
- 1810 for S = 1 to S9 : S ( S , 1 ) = INT( 16 * RND( 1 ) ) : S ( S , 2 ) = INT( 16 * RND( 1 ) ) : next S
- 1820 for X = 1 to 100 : next : goto 2510
- 1830 F1 = 0
- 1840 P = 1
- 1845 gosub 3000 : if A = 0 then 1850
- 1846 A$ = MID$( A$ , A + 1 ) : if LEFT$( A$ , 1 ) = "W" then 1845
- 1847 goto 1855
- 1850 print "WANT TO ATTACK WITH BLASTER, SABRE, OR" : input " HAND-TO-HAND (B,S, OR H)?" ; A$
- 1855 for C = 1 to 3 : if LEFT$( A$ , 1 ) = MID$( "BSH" , C , 1 ) then on C goto 1860 , 1860 , 1890
- 1857 next C : goto 1850
- 1860 if P ( 1 , 4 + C ) > 0 then 1890
- 1870 print "YOU DON'T HAVE A " ; W$ ( C + 1 ) : if F1 then 1850
- 1880 goto 820
- 1890 if P ( 1 , 1 ) <> P ( 4 , 1 ) then 1910
- 1900 print "ATTACKING DARTH VADER" : P1 = 4 : D1 = P ( 4 , 2 ) : goto 1950
- 1910 if S9 > 0 then 1940
- 1920 print "NOBODY TO ATTACK" : if F1 then return
- 1930 goto 820
- 1940 print "ATTACKING AN IMPERIAL SOLDIER" : P1 = 5 : D1 = S ( S9 , 1 )
- 1950 on C goto 1960 , 2040 , 2120
- 1960 if P ( P , 5 ) > 0 then 1990
- 1970 print "YOU DON'T HAVE A BLASTER!" : if F1 then 1850
- 1980 goto 820
- 1990 gosub 2750
- 2000 if P ( 1 , 1 ) <> P ( 4 , 1 ) then 2020
- 2010 if P ( 4 , 4 ) = 0 then 2030
- 2020 D1 = D1 * 5 / 4
- 2030 A1 = P ( P , 3 ) : goto 840
- 2040 if P ( 1 , 6 ) > 0 then 2070
- 2050 print "YOU DON'T HAVE A LIGHT-SABRE!" : if F1 then 1850
- 2060 goto 820
- 2070 if D ( 3 ) <> 0 then 2100
- 2080 print "YOU KNOW, IT HELPS IF YOU TURN ON YOUR LIGHT-SABRE" : if F1 then 1850
- 2090 goto 820
- 2100 gosub 2800
- 2110 A1 = P ( P , 2 ) : goto 840
- 2120 A1 = P ( P , 2 ) / 2 : goto 840
- 2130 gosub 3000 : if A > 0 then A$ = MID$( A$ , A + 1 ) : goto 2137
- 2135 print "WHO ARE YOU ORDERING, PRINCESS LEIA" : input " OR THE WOOKIE (P OR W)?" ; A$
- 2137 C = 1 : if LEFT$( A$ , 1 ) = "W" then C = 2
- 2140 if P ( 1 , 1 ) <> P ( C + 1 , 1 ) then print "YOU CAN'T GIVE ORDERS TO" : print N$ ( C + 1 ) ; " RIGHT NOW." : goto 820
- 2143 gosub 3000 : if A > 0 then A$ = MID$( A$ , A + 1 ) : goto 2155
- 2150 print "IS THE ORDER TO SHOOT, ATTACK, OR WAIT" : input " (S,A, OR W)?" ; A$
- 2155 if LEFT$( A$ , 4 ) = "LEIA" then gosub 3000 : A$ = MID$( A$ , A + 1 ) : if A = 0 then 2150
- 2157 if LEFT$( A$ , 2 ) = "TO" then gosub 3000 : A$ = MID$( A$ , A + 1 ) : if A = 0 then 2150
- 2158 for C1 = 1 to 3 : if LEFT$( A$ , 1 ) = MID$( "SAW" , C1 , 1 ) then on C1 goto 2160 , 2180 , 2190
- 2159 next C1 : goto 2150
- 2160 if P ( C + 1 , 5 ) <> 1 then print N$ ( C + 1 ) ; " HAS NO BLASTER" : goto 820
- 2170 P = C + 1 : C = 1 : goto 1890
- 2180 P = C + 1 : C = 3 : goto 1890
- 2190 print "OK." : P ( C + 1 , 1 ) = - P ( C + 1 , 1 ) : return
- 2200 F1 = 1 : gosub 1840 : for P = 2 to 3 : if P ( 1 , 1 ) <> ABS( P ( P , 1 ) ) then 2270
- 2210 if S9 <> 0 then 2230
- 2220 if P ( 1 , 1 ) <> P ( 4 , 1 ) then print "NO ENEMIES" : goto 2270
- 2230 print "DO YOU WANT " ; N$ ( P ) : print " TO SHOOT, ATTACK OR DO NOTHING" : input " (S,A, OR N)?" ; A$ : for C = 1 to 3 : if LEFT$( A$ , 1 ) = MID$( "SAN" , C , 1 ) then on C goto 2240 , 2260 , 2270
- 2235 next : goto 2230
- 2240 if P ( P , 5 ) = 0 then print N$ ( P ) ; " HAS NO BLASTER" : goto 2230
- 2250 C = 1 : gosub 1890 : goto 2270
- 2260 C = 3 : gosub 1890
- 2270 next P : return
- 2280 print "LET'S SEE HOW YOU DID." : print "YOU KILLED " ; S8 ; " IMPERIAL SOLDIERS."
- 2290 if P ( 1 , 1 ) <> 1 then print "YOU DIDN'T MAKE IT OUT ALIVE." : S8 = S8 - 10 : goto 2320
- 2300 print "YOU ESCAPED " ; : S8 = S8 + 10 : if P ( 2 , 1 ) = 1 then print "WITH THE PRINCESS!" ; : S8 = S8 + 25
- 2310 if P ( 3 , 1 ) < 0 and P ( 3 , 7 ) then print : print "YOU ABANDONED THE WOOKIE, YOU CAD!" ; : S8 = S8 - 25
- 2320 print
- 2330 if P ( 4 , 1 ) = 0 then print "YOU KILLED DARTH VADER." : S8 = S8 + 25
- 2340 if D ( 1 ) = 1 then print "YOU DESTROYED THE DEATH STAR!" : S8 = S8 + 100 : goto 2400
- 2350 P ( 1 , 1 ) = 0 : P ( 2 , 1 ) = 0 : P ( 3 , 1 ) = 0 : for X = 1 to 30 : S9 = R ( X , 6 ) + 1 : P ( S9 , 1 ) = P ( S9 , 1 ) + 1 : next X
- 2360 print P ( 2 , 1 ) + P ( 3 , 1 ) ; " ROOMS WERE DAMAGED, HOWEVER," : print P ( 2 , 1 ) ; " OF THEM COULD BE REPAIRED." : S8 = S8 + 3 * P ( 2 , 1 ) + 5 * P ( 3 , 1 )
- 2370 for R = 1 to 3 : read R1 , A$ : data 7,WEAPONRY MACHINERY ROOM,13,COMMAND CONTROL ROOM,28,POWER MACHINERY ROOM
- 2380 if R ( R1 , 6 ) > 0 then print "THE " ; A$ ; " WAS DAMAGED" : S8 = S8 + 10
- 2390 next R
- 2400 print : print "YOUR FINAL SCORE WAS " ; S8 : on INT( ABS( S8 ) / 25 ) + 1 goto 2420 , 2430 , 2440 , 2450 , 2460 , 2470 , 2480
- 2410 goto 2480
- 2420 A$ = "TERRIBLE" : goto 2490
- 2430 A$ = "BAD" : goto 2490
- 2440 A$ = "FAIR" : goto 2490
- 2450 A$ = "GOOD" : goto 2490
- 2460 A$ = "VERY GOOD" : goto 2490
- 2470 A$ = "INCREDIBLY GOOD" : goto 2490
- 2480 A$ = "ABSOLUTELY UNBELIEVABLE"
- 2490 print "ALL IN ALL," : print "YOU WERE " ; A$
- 2500 text : vtab 23 : for X = 1 to 2000 : next X : print : print CHR$( 4 ) ; "RUN ADVENTURE HELLO"
- 2510 text : home
- 2520 vtab 1 : X = INT( ( 40 - LEN( S$ ) ) / 2 ) : if X < 1 then X = 1
- 2530 htab X : inverse : print S$ : normal
- 2540 print "DOORS OPEN TO" ; : for X = 1 to 4 : if R ( P ( 1 , 1 ) , X ) > 0 then print " " ; P$ ( X ) ;
- 2550 next : print : T$ = "OFF" : if D ( 3 ) then T$ = "ON"
- 2560 print "CARRYING--" ; : if P ( 1 , 6 ) > 0 then print "SABRE " ; : inverse : print T$ ; : normal : print " " ;
- 2570 print P ( 1 , 4 ) ; " SLD. " ; P ( 1 , 5 ) ; " BLST." ; : call - 868 : print
- 2580 for P = 2 to 4 : if P ( 1 , 1 ) = ABS( P ( P , 1 ) ) then print "P:" ; : for P = 2 to 4 : if P ( 1 , 1 ) = ABS( P ( P , 1 ) ) then print " " ; : inverse : print N$ ( P ) ; : normal
- 2590 next : call - 868 : print
- 2600 print "IN ROOM--" ; : if S9 then print S9 ; " SOLDIERS " ;
- 2610 if R ( P ( 1 , 1 ) , 8 ) or R ( P ( 1 , 1 ) , 9 ) then print R ( P ( 1 , 1 ) , 8 ) ; " SLD. " ; R ( P ( 1 , 1 ) , 9 ) ; " BLST." ;
- 2620 if not S9 and not R ( P ( 1 , 1 ) , 8 ) and not R ( P ( 1 , 1 ) , 9 ) then print "NOTHING" ;
- 2630 call - 868 : print
- 2640 if R ( P ( 1 , 1 ) , 5 ) - 10 * INT( R ( P ( 1 , 1 ) , 5 ) / 10 ) = 1 then print "EQUIPMENT--" ; D$ ( R ( P ( 1 , 1 ) , 6 ) + 1 ) ; : call - 868 : print
- 2650 if P ( 1 , 1 ) = 29 then print "CHASM TO SOUTH--" ;
- 2660 if P ( 1 , 1 ) = 30 then print "CHASM TO NORTH--" ;
- 2670 if P ( 1 , 1 ) = 29 or P ( 1 , 1 ) = 30 then if D ( 2 ) then print "ROPE IS UP" ; : call - 868 : print
- 2680 if P ( 1 , 1 ) = 29 or P ( 1 , 1 ) = 30 then if not D ( 2 ) then print "ROPE IS NOT UP"
- 2690 print "----------------------------------------" ; : poke 34 , PEEK( 37 )
- 2700 return
- 2710 Y = PEEK( 37 ) : P9 = P : gosub 2520 : vtab Y + 1 : P = P9 : return
- 2720 for CN = 1 to 250 : if PEEK( - 16384 ) > 127 then poke - 16368 , 0 : return
- 2730 next : return
- 2740 CF = 4 : AB = 1 : AE = 10 : DN = 5 : goto 160
- 2750 CF = 1 : AB = 5 : AE = 20 : DN = 3 : goto 160
- 2760 CF = 1 : AB = 25 : AE = 30 : DN = 5 : goto 160
- 2770 CF = 6 : AB = 20 : AE = 20 : DN = 50 : goto 160
- 2780 CF = 1 : AB = 75 : AE = 75 : DN = 30 : gosub 160
- 2790 CF = 4 : AB = 11 : AE = 15 : DN = 2 : goto 160
- 2800 CF = 1 : AB = 100 : AE = 115 : DN = 3 : goto 160
- 2810 CF = 5 : AB = 5 : AE = 5 : DN = 3 : goto 160
- 2820 CF = PEEK( - 16336 ) - PEEK( - 16336 ) + PEEK( - 16336 ) - PEEK( - 16336 ) : return
- 3000 for A = 1 to LEN( A$ ) : if MID$( A$ , A , 1 ) = " " then return
- 3010 next A : A = 0 : return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement