0 CLEAR SCREEN 9 'draw tank picture LINE (270, 66)-(280, 46), 8, BF LINE (270, 66)-(280, 62), 3, B: LINE (270, 62)-(280, 58), 3, B LINE (270, 58)-(280, 54), 3, B: LINE (270, 54)-(280, 50), 3, B LINE (270, 50)-(280, 46), 3, B LINE (320, 66)-(330, 46), 8, BF LINE (320, 66)-(330, 62), 3, B: LINE (320, 62)-(330, 58), 3, B LINE (320, 58)-(330, 54), 3, B: LINE (320, 54)-(330, 50), 3, B LINE (320, 50)-(330, 46), 3, B LINE (282, 60)-(318, 40), 2, B: LINE (282, 60)-(288, 46), 2 LINE (282, 40)-(288, 46), 2: LINE (288, 46)-(312, 46), 2 LINE (312, 46)-(318, 40), 2: LINE (312, 46)-(318, 60), 2 LINE (282, 38)-(318, 38), 2: LINE (282, 38)-(280, 36), 2 LINE (280, 36)-(280, 30), 2: LINE (280, 30)-(290, 26), 2 LINE (290, 26)-(310, 26), 2: LINE (310, 26)-(320, 30), 2 LINE (320, 30)-(320, 36), 2: LINE (320, 36)-(318, 38), 2 LINE (290, 39)-(310, 39), 2 LINE (281, 40)-(270, 40), 2: LINE (270, 40)-(264, 46), 2 LINE (264, 46)-(266, 48), 2: LINE (266, 48)-(271, 43), 2 LINE (271, 43)-(281, 43), 2 LINE (319, 40)-(330, 40), 2: LINE (330, 40)-(336, 46), 2 LINE (336, 46)-(334, 48), 2: LINE (334, 48)-(329, 43), 2 LINE (329, 43)-(319, 43), 2 LINE (292, 36)-(308, 28), 2, B: LINE (292, 36)-(296, 32), 2 LINE (296, 32)-(292, 28), 2: LINE (308, 28)-(304, 32), 2 LINE (304, 32)-(308, 36), 2 CIRCLE (300, 32), 4, 12: CIRCLE (300, 32), 3, 4: CIRCLE (300, 32), 2, 1 CIRCLE (294, 23), 3, 11: CIRCLE (300, 23), 3, 11 CIRCLE (306, 23), 3, 11 CIRCLE (308, 51), 3, 12 LINE (314, 28)-(314, 16), 8: LINE (318, 29)-(318, 20), 8 LINE (284, 32)-(291, 32), 1: LINE (309, 32)-(316, 32), 1 LINE (125, 67)-(475, 67), 6 'menu screen LOCATE 2, 8: COLOR 15 PRINT "Super JeffTank" LOCATE 2, 65: COLOR 7 PRINT "by Jeff Cizek" LOCATE 5, 1: COLOR 14: PRINT "-Game Speed-" LOCATE 6, 1: COLOR 3 PRINT " Higher is faster. This determines the speed at which this program will run." PRINT "Best values range between .01 and 3, depending on your computer's speed." PRINT : COLOR 15 LOCATE 9, 1: INPUT ; "Enter game speed > ", sf IF sf = 0 THEN sf = .1: LOCATE 9, 20: PRINT ".1" LOCATE 11, 1: COLOR 14: PRINT "-Starting Energy-" LOCATE 12, 1: COLOR 3 PRINT " 2000 units is the default setting." COLOR 15 LOCATE 14, 1: INPUT ; "Enter your starting energy > ", amo IF amo = 0 THEN amo = 2000: LOCATE 14, 30: PRINT "2000" IF amo > 30000 THEN amo = 30000: LOCATE 14, 30: PRINT "30000" LOCATE 16, 1: COLOR 14: PRINT "-Starting Level-": COLOR 15 LOCATE 18, 1: INPUT ; "Enter your starting level > ", level IF level = 0 THEN level = 1: LOCATE 18, 29: PRINT "1" COLOR 14 LOCATE 21, 14: PRINT "---- Make sure caps lock and number lock are off ----" COLOR 15 LOCATE 23, 25: PRINT "- Press any key to start game -" DO UNTIL INKEY$ > CHR$(0): LOOP 'music ball$ = "mbt255mll64o0ccddeeffggaabbo1cdefgabo2cdefgab" gun$ = "mbt255msl16o0f" laser$ = "mbt255msl64o6bagfedco5bagfedc" disrup$ = "mbt255mll64o3cdefgabo5cdo1cdefgabo1gabfedco2cdefgab" turhit$ = "mbt255mll64o2co4ac" tankhit$ = "mbt255msl64o2bagfed" tankdes$ = "mbt255msl32o1cecfegfagbabo2cdefgabo3cdefgab" turdes$ = "mbt255l64o1babgafgefdecdo0l32bagfedco1cdefgab" die$ = "mbt120o1mnl4cl8mlcl2fmnp4l4cmll8fl2amnp4l4cmll8fl4amnl4cmll8fl4al4cl8fl4a" start$ = "mbt150o1mnl16cccp16cccp16ccfmlp16gp16a" turshot$ = "mbt255l64mlo2gcgcgo0ag" SCREEN 0 lives = 3 'main program 1 PLAY start$ bdrcol = level IF level > 14 THEN bdrcol = 0 pi = 3.14159265359# sin45 = .707106781187# s = 2 * sf: x = 20: y = 20: gx = 6: gy = 0: b1x = 1000: b1y = 1000 x1 = 0: y1 = 0: ammo = amo RANDOMIZE TIMER sc = 12: dmg = 0 xt1 = 320: yt1 = (RND * 150) + 18: yt1d = .5 * sf: t1c = 10 xt2 = (RND * 280) + 18: yt2 = 190: xt2d = .5 * sf: t2c = 10 t1exist = 0: t2exist = 0: t1dmg = 0: t2dmg = 0 10 SCREEN 12 VIEW (510, 70)-(610, 10) WINDOW SCREEN (250, 70)-(350, 1) 'draw static tank picture on game screen LINE (270, 66)-(280, 46), 8, BF LINE (270, 66)-(280, 62), 3, B: LINE (270, 62)-(280, 58), 3, B LINE (270, 58)-(280, 54), 3, B: LINE (270, 54)-(280, 50), 3, B LINE (270, 50)-(280, 46), 3, B LINE (320, 66)-(330, 46), 8, BF LINE (320, 66)-(330, 62), 3, B: LINE (320, 62)-(330, 58), 3, B LINE (320, 58)-(330, 54), 3, B: LINE (320, 54)-(330, 50), 3, B LINE (320, 50)-(330, 46), 3, B LINE (282, 60)-(318, 40), 2, B: LINE (282, 60)-(288, 46), 2 LINE (282, 40)-(288, 46), 2: LINE (288, 46)-(312, 46), 2 LINE (312, 46)-(318, 40), 2: LINE (312, 46)-(318, 60), 2 LINE (282, 38)-(318, 38), 2: LINE (282, 38)-(280, 36), 2 LINE (280, 36)-(280, 30), 2: LINE (280, 30)-(290, 26), 2 LINE (290, 26)-(310, 26), 2: LINE (310, 26)-(320, 30), 2 LINE (320, 30)-(320, 36), 2: LINE (320, 36)-(318, 38), 2 LINE (290, 39)-(310, 39), 2 LINE (281, 40)-(270, 40), 2: LINE (270, 40)-(264, 46), 2 LINE (264, 46)-(266, 48), 2: LINE (266, 48)-(271, 43), 2 LINE (271, 43)-(281, 43), 2 LINE (319, 40)-(330, 40), 2: LINE (330, 40)-(336, 46), 2 LINE (336, 46)-(334, 48), 2: LINE (334, 48)-(329, 43), 2 LINE (329, 43)-(319, 43), 2 LINE (292, 36)-(308, 28), 2, B: LINE (292, 36)-(296, 32), 2 LINE (296, 32)-(292, 28), 2: LINE (308, 28)-(304, 32), 2 LINE (304, 32)-(308, 36), 2 CIRCLE (300, 32), 4, 12: CIRCLE (300, 32), 3, 4: CIRCLE (300, 32), 2, 1 CIRCLE (294, 23), 3, 11: CIRCLE (300, 23), 3, 11 CIRCLE (306, 23), 3, 11 CIRCLE (308, 51), 3, 12 LINE (314, 28)-(314, 16), 8: LINE (318, 29)-(318, 20), 8 LINE (284, 32)-(291, 32), 1: LINE (309, 32)-(316, 32), 1 VIEW (1, 475)-(635, 100), 0, bdrcol WINDOW (0, 0)-(320, 190) 20 KEY 15, CHR$(0) + CHR$(1) 'esc KEY 16, CHR$(0) + CHR$(57) 'space KEY 17, CHR$(0) + CHR$(76) 'center(5) KEY 18, CHR$(0) + CHR$(16) 'q KEY 19, CHR$(0) + CHR$(17) 'w KEY 20, CHR$(0) + CHR$(71) 'home(7) KEY 21, CHR$(0) + CHR$(73) 'pgup(9) KEY 22, CHR$(0) + CHR$(79) 'end(1) KEY 23, CHR$(0) + CHR$(81) 'pgdn(3) KEY 24, CHR$(0) + CHR$(15) 'tab KEY 25, CHR$(0) + CHR$(28) 'enter KEY(11) ON: KEY(12) ON: KEY(13) ON: KEY(14) ON KEY(15) ON: KEY(16) ON: KEY(17) ON: KEY(18) ON KEY(19) ON: KEY(20) ON: KEY(21) ON: KEY(22) ON KEY(23) ON: KEY(24) ON: KEY(25) ON: KEY(1) ON KEY(5) ON: KEY(6) ON 25 COLOR 9: LOCATE 1, 64: PRINT "Super Jefftank" COLOR 7: LOCATE 6, 63: PRINT "Press F1 for help" COLOR 3: LOCATE 2, 1: PRINT "Level : " LOCATE 2, 13: PRINT level LOCATE 2, 30: PRINT "Score :" COLOR 11 LOCATE 3, 1 PRINT "Armed :" LOCATE 3, 30: PRINT "Remaining Energy :" LOCATE 5, 30: PRINT "Speed :" LOCATE 4, 30: PRINT "Damage :" LOCATE 4, 1: PRINT "Shields :" LOCATE 5, 1: PRINT "Lives :" 30 'main loop COLOR 3: LOCATE 2, 48: PRINT CINT(score) COLOR 15 LOCATE 5, 13: PRINT lives LOCATE 5, 48: PRINT CINT(s * (4 / sf)) IF ammo < 1 THEN COLOR 7 LOCATE 3, 14: IF wep = 0 THEN PRINT "Gun " IF ammo < 25 THEN COLOR 7 LOCATE 3, 14: IF wep = 1 THEN PRINT "Laser " IF ammo < 50 THEN COLOR 7 LOCATE 3, 14: IF wep = 2 THEN PRINT "Disruptor " IF ammo < 200 THEN COLOR 7 LOCATE 3, 14: IF wep = 3 THEN PRINT "Bowling Ball " LOCATE 3, 48 IF ammo < 750 THEN COLOR 14 IF ammo < 200 THEN COLOR 12 IF ammo > 1 THEN PRINT CINT(ammo) IF ammo < 1 THEN PRINT " 0 " COLOR 15 LOCATE 4, 14 IF shld = 0 THEN COLOR 7: PRINT "Off" IF shld = 1 THEN COLOR 15: PRINT "On " COLOR 15 IF dmg > 50 THEN COLOR 14 IF dmg > 80 THEN COLOR 12 LOCATE 4, 48: PRINT ; CINT(dmg); "% " COLOR 15 ON KEY(11) GOSUB up: ON KEY(12) GOSUB left: ON KEY(13) GOSUB right ON KEY(14) GOSUB down: ON KEY(15) GOSUB esc: ON KEY(16) GOSUB shoot ON KEY(17) GOSUB hold: ON KEY(18) GOSUB gunl: ON KEY(19) GOSUB gunr ON KEY(20) GOSUB ul: ON KEY(21) GOSUB ur: ON KEY(22) GOSUB dl ON KEY(23) GOSUB dr: ON KEY(24) GOSUB weapons: ON KEY(1) GOSUB help ON KEY(25) GOSUB shield: ON KEY(5) GOSUB spddn: ON KEY(6) GOSUB spdup 40 'tank------------------------------------------------------------------- IF shld = 1 THEN sc = sc + 1 IF shld = 0 THEN sc = 12 IF sc = 16 THEN sc = 1 CIRCLE (x, y), 4, sc: LINE (x, y)-(x + gx, y + gy), 7 IF shld = 0 THEN SOUND 37, .05 IF shld = 1 THEN SOUND 700, .05 IF flash = 0 THEN GOTO 50 CIRCLE (x, y), 4, 0: LINE (x, y)-(x + gx, y + gy), 0 x = x + x1: y = y + y1 IF x < 20 THEN x = 20 IF y < 20 THEN y = 20 IF x > 300 THEN x = 300 IF y > 170 THEN y = 170 CIRCLE (x, y), 4, sc: LINE (x, y)-(x + gx, y + gy), 7 50 IF wep = 1 THEN 65 IF wep = 2 THEN 70 IF wep = 3 THEN 75 60 'gun LINE (b1x, b1y)-(b1x, b1y), 0 b1x = b1x + 1 * (bdx / sf): b1y = b1y + 1 * (bdy / sf) LINE (b1x, b1y)-(b1x, b1y), 15 IF b1x > 320 AND b1x < 500 THEN 61 IF b1y > 190 AND b1y < 500 THEN 62 GOTO 100 61 LINE (b1x, b1y)-(b1x, b1y), 0 DO UNTIL b1x < 320 b1x = b1x - bdx b1y = b1y - bdy IF b1x > 310 AND b1x < 330 AND b1y < yt1 + 10 AND b1y > yt1 - 10 THEN GOTO t1hit LOOP b1x = 1000 GOTO 100 62 LINE (b1x, b1y)-(b1x, b1y), 0 DO UNTIL b1y < 190 b1x = b1x - bdx b1y = b1y - bdy IF b1x > xt2 - 10 AND b1x < xt2 + 10 AND b1y < 200 AND b1y > 180 THEN GOTO t2hit LOOP b1y = 1000 GOTO 100 65 'laser LINE (b1x, b1y)-(b1x + ((5 * bdx) / sf), b1y + (5 * bdy) / sf), 0 b1x = b1x + 10 * bdx: b1y = b1y + 10 * bdy LINE (b1x, b1y)-(b1x + (5 * bdx) / sf, b1y + (5 * bdy) / sf), 12 IF b1x > 320 AND b1x < 500 THEN GOTO 66 IF b1y > 190 AND b1y < 500 THEN 67 GOTO 100 66 DO UNTIL b1x < 320 b1x = b1x - bdx b1y = b1y - bdy IF b1x > 310 AND b1x < 330 AND b1y < yt1 + 10 AND b1y > yt1 - 10 THEN GOTO t1hit LOOP b1x = 1000 GOTO 100 67 DO UNTIL b1y < 190 b1x = b1x - bdx b1y = b1y - bdy IF b1x > xt2 - 10 AND b1x < xt2 + 10 AND b1y < 200 AND b1y > 180 THEN GOTO t2hit LOOP b1y = 1000 GOTO 100 70 'disruptor CIRCLE (b1x, b1y), cr, 0 b1x = b1x + 4 * bdx: b1y = b1y + 4 * bdy cr = cr + 1: IF cr = 5 THEN cr = 1 col = col + 1: IF col > 15 THEN col = 1 CIRCLE (b1x, b1y), cr, col IF b1x > 320 AND b1x < 500 THEN 71 IF b1y > 190 AND b1y < 500 THEN 72 GOTO 100 71 CIRCLE (b1x, b1y), cr, 0 DO UNTIL b1x < 320 b1x = b1x - bdx b1y = b1y - bdy IF b1x > 310 AND b1x < 330 AND b1y < yt1 + 10 AND b1y > yt1 - 10 THEN GOTO t1hit LOOP b1x = 1000 GOTO 100 72 CIRCLE (b1x, b1y), cr, 0 DO UNTIL b1y < 190 b1x = b1x - bdx b1y = b1y - bdy IF b1x > xt2 - 10 AND b1x < xt2 + 10 AND b1y < 200 AND b1y > 180 THEN GOTO t2hit LOOP b1y = 1000 GOTO 100 75 'bowling ball CIRCLE (b1x, b1y), 2.5, 0: CIRCLE (b1x, b1y), 3, 0 CIRCLE (b1x, b1y), 3.5, 0: CIRCLE (b1x, b1y), 4, 0 b1x = b1x + (.01 * bdx) + gx * sf b1y = b1y + (.01 * bdy) + gy * sf CIRCLE (b1x, b1y), 2.5, 1: CIRCLE (b1x, b1y), 3, 9 CIRCLE (b1x, b1y), 3.5, 3: CIRCLE (b1x, b1y), 4, 11 IF b1x > 330 OR b1x < -5 THEN b1x = 1000 IF b1y > 200 OR b1y < -5 THEN b1y = 1000 IF b1x > 320 AND b1x < 500 THEN GOTO 76 IF b1y > 190 AND b1y < 500 THEN 77 GOTO 100 76 CIRCLE (b1x, b1y), 2.5, 0: CIRCLE (b1x, b1y), 3, 0 CIRCLE (b1x, b1y), 3.5, 0: CIRCLE (b1x, b1y), 4, 0 DO UNTIL b1x < 320 b1x = b1x - bdx b1y = b1y - bdy IF b1x > 310 AND b1x < 330 AND b1y < yt1 + 10 AND b1y > yt1 - 10 THEN GOTO t1hit LOOP b1x = 1000 GOTO 100 77 CIRCLE (b1x, b1y), 2.5, 0: CIRCLE (b1x, b1y), 3, 0 CIRCLE (b1x, b1y), 3.5, 0: CIRCLE (b1x, b1y), 4, 0 DO UNTIL b1y < 190 b1x = b1x - bdx b1y = b1y - bdy IF b1x > xt2 - 10 AND b1x < xt2 + 10 AND b1y < 200 AND b1y > 180 THEN GOTO t2hit LOOP b1y = 1000 GOTO 100 'turrets---------------------------------------------------------------- 100 IF t1exist = 1 AND t2exist = 1 THEN GOTO nextlev 101 'turret1 turret = 1 IF t1exist = 1 THEN 110 IF yt1 > 180 THEN yt1d = -.5 * sf IF yt1 < 10 THEN yt1d = .5 * sf LINE (gxt1s, gyt1s)-(gxt1f, gyt1f), 0 yt1 = yt1 + (yt1d) * level 'gun angle theta = ATN((yt1 - y) / (xt1 - x)) gxt1f = xt1 - 9 * COS(theta) gyt1f = yt1 - 9 * SIN(theta) gxt1s = xt1 - 6 * COS(theta) gyt1s = yt1 - 6 * SIN(theta) CIRCLE (xt1, yt1 - yt1d * level), 6, 0 CIRCLE (xt1, yt1), 6, t1c: LINE (gxt1s, gyt1s)-(gxt1f, gyt1f), 11 'shot IF bxt1 > -1 AND byt1 > -1 THEN 105 bxt1 = xt1: byt1 = yt1 PLAY turshot$ vel = theta 105 LINE (bxt1, byt1)-(bxt1, byt1), 0 bxt1 = bxt1 - (10 * sf * COS(vel)) byt1 = byt1 - (10 * sf * SIN(vel)) LINE (bxt1, byt1)-(bxt1, byt1), 11 IF bxt1 < x + 5 AND bxt1 > x - 5 AND byt1 > y - 5 AND byt1 < y + 5 THEN GOSUB tankhit 110 'turret2 turret = 2 IF t2exist = 1 THEN 120 IF xt2 > 310 THEN xt2d = -.5 * sf IF xt2 < 10 THEN xt2d = .5 * sf LINE (gxt2s, gyt2s)-(gxt2f, gyt2f), 0 xt2 = xt2 + (xt2d) * level 'gun angle theta2 = ATN((xt2 - x) / (yt2 - y)) gxt2f = xt2 - 9 * SIN(theta2) gyt2f = yt2 - 9 * COS(theta2) gxt2s = xt2 - 6 * SIN(theta2) gyt2s = yt2 - 6 * COS(theta2) CIRCLE (xt2 - xt2d * level, yt2), 6, 0 CIRCLE (xt2, yt2), 6, t2c: LINE (gxt2s, gyt2s)-(gxt2f, gyt2f), 11 'shot IF bxt2 > -1 AND byt2 > -1 THEN 115 bxt2 = xt2: byt2 = yt2 PLAY turshot$ vel2 = theta2 115 LINE (bxt2, byt2)-(bxt2, byt2), 0 bxt2 = bxt2 - (10 * sf * SIN(vel2)) byt2 = byt2 - (10 * sf * COS(vel2)) LINE (bxt2, byt2)-(bxt2, byt2), 11 IF bxt2 < x + 5 AND bxt2 > x - 5 AND byt2 > y - 5 AND byt2 < y + 5 THEN GOSUB tankhit 120 150 IF shld = 1 THEN ammo = ammo - 1 * sf IF ammo < 0 THEN shld = 0 IF t1exist = 1 AND t2exist = 2 THEN GOTO nextlev GOTO 30 'gosubs---------------------------------------------- tankhit: PLAY tankhit$ IF shld = 1 THEN dmg = dmg + level * (.2 * ((RND * 3) + 2)) IF shld = 0 THEN dmg = dmg + level * ((RND) * 3 + 2) LINE (bxt1, byt1)-(bxt1, byt1), 0 LINE (bxt2, byt2)-(bxt2, byt2), 0 IF turret = 2 THEN bxt2 = xt2: byt2 = yt2: vel2 = theta2 IF turret = 1 THEN bxt1 = xt1: byt1 = yt1: vel = theta IF dmg > 99.4 THEN GOTO 160 RETURN 160 'destruct c = 1 PLAY tankdes$ FOR z = 1 TO 100 CIRCLE (x, y), 2, c: CIRCLE (x, y), 3, c + 1: CIRCLE (x, y), 4, c + 2 CIRCLE (x, y), 5, c + 3: CIRCLE (x, y), 6, c: CIRCLE (x, y), 7, c + 4 c = c + 1 IF c = 12 THEN c = 1 NEXT lives = lives - 1 IF lives < 0 THEN GOTO ending FOR z = 1 TO 2 t$ = TIME$ DO UNTIL t$ < TIME$: LOOP NEXT z bxt1 = -10: byt1 = -10: bxt2 = -10: byt2 = -10 GOTO 1 t1hit: PLAY turhit$ CIRCLE (xt1, yt1), 6, 15 b1x = 500 IF wep = 0 THEN t1dmg = t1dmg + (RND * 5) + 5 IF wep = 1 THEN t1dmg = t1dmg + (RND * 20) + 30 IF wep = 2 THEN t1dmg = t1dmg + (RND * 75) + 50 IF wep = 3 THEN t1dmg = t1dmg + (RND * 50) + 100 IF t1dmg > 300 THEN t1c = 14: IF t1dmg > 425 THEN t1c = 12 IF t1dmg < 500 THEN GOTO 30 'destruct PLAY turdes$ FOR z = 1 TO 100 CIRCLE (xt1, yt1), 6, c CIRCLE (xt1, yt1), 12, c c = c + 1: IF c = 16 THEN c = 1 NEXT CIRCLE (xt1, yt1), 6, 0 CIRCLE (xt1, yt1), 12, 0 LINE (xt1 - 6, yt1)-(xt1 - 9, yt1), 0 LINE (gxt1s, gyt1s)-(gxt1f, gyt1f), 0 t1exist = 1 yt1 = 10000 score = score + 20 IF wep < 3 THEN GOTO 30 CIRCLE (b1x, b1y), 2.5, 0: CIRCLE (b1x, b1y), 3, 0 CIRCLE (b1x, b1y), 3.5, 0: CIRCLE (b1x, b1y), 4, 0 GOTO 30 t2hit: PLAY turhit$ CIRCLE (xt2, yt2), 6, 15 b1y = 500 IF wep = 0 THEN t2dmg = t2dmg + (RND * 5) + 5 IF wep = 1 THEN t2dmg = t2dmg + (RND * 20) + 30 IF wep = 2 THEN t2dmg = t2dmg + (RND * 75) + 50 IF wep = 3 THEN t2dmg = t2dmg + (RND * 50) + 100 IF t2dmg > 300 THEN t2c = 14: IF t2dmg > 425 THEN t2c = 12 IF t2dmg < 500 THEN GOTO 30 'destruct PLAY turdes$ FOR z = 1 TO 100 CIRCLE (xt2, yt2), 6, c CIRCLE (xt2, yt2), 12, c c = c + 1: IF c = 16 THEN c = 1 NEXT CIRCLE (xt2, yt2), 6, 0 CIRCLE (xt2, yt2), 12, 0 LINE (gxt2s, gyt2s)-(gxt2f, gyt2f), 0 t2exist = 1 xt2 = 10000 score = score + 20 IF wep < 3 THEN GOTO 30 CIRCLE (b2x, b2y), 2.5, 0: CIRCLE (b2x, b2y), 3, 0 CIRCLE (b2x, b2y), 3.5, 0: CIRCLE (b2x, b2y), 4, 0 GOTO 30 up: x1 = 0: y1 = s: flash = 1: RETURN left: x1 = -s: y1 = 0: flash = 1: RETURN right: x1 = s: y1 = 0: flash = 1: RETURN down: x1 = 0: y1 = -s: flash = 1: RETURN ul: x1 = -sin45 * s: y1 = sin45 * s flash = 1: RETURN ur: x1 = sin45 * s: y1 = sin45 * s flash = 1: RETURN dl: x1 = -sin45 * s: y1 = -sin45 * s flash = 1: RETURN dr: x1 = sin45 * s: y1 = -sin45 * s flash = 1: RETURN hold: x1 = 0: y1 = 0: flash = 0: RETURN spddn: IF s < .9 * sf THEN s = 1 * sf s = s - .5 * sf RETURN spdup: IF s > 2.1 * sf THEN s = 2 * sf s = s + .5 * sf RETURN esc: KEY(25) OFF LOCATE 9, 5 COLOR 15 INPUT ; "Quit game (y/n)"; q$ IF q$ = "y" OR q$ = "Y" THEN END KEY(25) ON RETURN 10 shoot: IF wep = 3 AND ammo < 200 THEN RETURN IF wep = 2 AND ammo < 50 THEN RETURN IF wep = 1 AND ammo < 25 THEN RETURN IF wep = 0 AND ammo < 1 THEN RETURN IF b1x > 0 AND b1x < 320 AND b1y > 0 AND b1y < 190 THEN RETURN b1x = b2x: b1y = b2y IF wep = 3 THEN 560 IF wep = 2 THEN 540 IF wep = 1 THEN 520 IF wep = 0 THEN 500 500 'gun ammo = ammo - 1: PLAY gun$ GOTO 580 520 'laser ammo = ammo - 25 PLAY laser$ GOTO 580 540 'disruptor ammo = ammo - 50 PLAY disrup$ GOTO 580 560 'ball ammo = ammo - 200 PLAY ball$ GOTO 580 580 b1x = gx + x: b1y = gy + y: bdx = gx * sf: bdy = gy * sf RETURN gunl: COLOR 0: LINE (x, y)-(x + gx, y + gy) gpos = gpos + (pi / 24) GOTO gun gunr: COLOR 0: LINE (x, y)-(x + gx, y + gy) gpos = gpos - (pi / 24) GOTO gun gun: gx = (COS(gpos)) * 6 gy = (SIN(gpos)) * 6 RETURN weapons: IF b1x > 0 AND b1x < 320 AND b1y > 0 AND b1y < 190 THEN RETURN wep = wep + 1 IF wep = 4 THEN wep = 0 RETURN shield: IF ammo < .5 THEN RETURN shld = shld + 1 IF shld = 2 THEN shld = 0 IF shld = 0 THEN sc = 12 RETURN help: KEY(15) OFF SCREEN 0: SCREEN 12 CLS COLOR 14: PRINT "--------------------------------- JeffHelp -----------------------------------" COLOR 12 PRINT "-Keyboard Commands-": PRINT : COLOR 7 PRINT " Numeric keypad controls direction.": COLOR 15 PRINT " [q]"; COLOR 7: PRINT " rotates gun counterclockwise.": COLOR 15 PRINT " [w]"; COLOR 7: PRINT " rotates gun clockwise.": COLOR 15 PRINT " [tab]"; COLOR 7: PRINT " selects weapons.": COLOR 15 PRINT " [spacebar]"; COLOR 7: PRINT " shoots.": COLOR 15 PRINT " [enter]"; COLOR 7: PRINT " toggles shields.": COLOR 15 PRINT " [F5]"; COLOR 7: PRINT " decreases speed.": COLOR 15 PRINT " [F6]"; COLOR 7: PRINT " increases speed.": COLOR 15 PRINT " [F1]"; COLOR 7: PRINT " brings up this screen.": COLOR 15 PRINT " [esc]"; COLOR 7: PRINT " pauses game or quits.": COLOR 15 PRINT : COLOR 15 PRINT " ---- Make sure number lock and caps lock are off ----" PRINT : COLOR 12 PRINT "-Energy consumption-": COLOR 7 PRINT PRINT " Gun ......... 1 unit Laser ........... 25 units" PRINT " Disruptor ... 50 units Bowling ball .... 200 units" PRINT PRINT " - Bowling ball can be steered by rotating the turret after firing." PRINT : PRINT : COLOR 13 PRINT " Shields consume energy but absorb 80 percent of sustained damage." KEY(25) OFF COLOR 15 jaws: KEY(15) OFF h0$ = "mbt200p1": h1$ = "mbt200mlo0l2dl4d#p1" h2$ = "t150msl8dd#dd#dd#cd#": h3$ = "t150o0msl16d#o1dl4o2d" PLAY h0$ + h1$ + h1$ + h2$ + h2$ + h3$ + h3$ LOCATE 28, 20: PRINT "Press [Esc] to continue game . . ." DO UNTIL INKEY$ = CHR$(27) LOOP KEY(15) ON SCREEN 0 RETURN 10 nextlev: LOCATE 20, 27 t$ = TIME$ DO UNTIL t$ < TIME$: LOOP PRINT "Press any key to continue" DO UNTIL INKEY$ > CHR$(0) LOOP score = score + 20 * (ammo / amo) + .2 * (100 - dmg) + 2 * level level = level + 1 GOTO 1 ending: t$ = TIME$ DO UNTIL t$ < TIME$: LOOP KEY(25) OFF COLOR 15 LOCATE 9, 5: PRINT "Game Over." LOCATE 11, 5 PLAY die$ LOCATE 13, 5 INPUT ; "Play again (y/n)"; a$ IF a$ = "y" OR a$ = "Y" THEN GOTO 0 IF a$ = "n" OR a$ = "N" THEN END