REM By Matthew Hartley 2001 GOTO setup LABEL after_setup GOTO intro LABEL after_intro GOTO mainmenu LABEL after_mainmenu REM ====================================================== LABEL setup up = 16 right = 32 down = 64 left = 128 fire = 16384 cleansel1a = 0 cleansel1b = 0 cleansel1c = 0 limit1 = 20 diff = 0 GOTO after_setup REM ====================================================== REM ====================================================== LABEL intro open window 400,400 setrgb 0,0,0,0 clear window setrgb 1,0,255,0 text 50,50,"Telemetry from long-range patrol vessel" wait 1 text 50,75,"Recovered 07:00, 10th October 2249" wait 3 clear window setrgb 1,255,255,255 for g = 1 to 85 dx = ran(640) dy = ran(480) dot dx,dy next g setrgb 1,0,0,255 fill rectangle 20,20 to 80,25 fill rectangle 20,20 to 25,80 fill rectangle 620,20 to 560,25 fill rectangle 620,20 to 615,80 fill rectangle 20,480 to 80,475 fill rectangle 20,480 to 25,420 fill rectangle 620,480 to 560,475 fill rectangle 620,480 to 615,420 beep setrgb 1,0,255,0 text 50,50,"INCOMING TRANSMISSION" wait 1.5 setrgb 1,0,0,0 fill rectangle 50,50 to 320,26 beep setrgb 1,0,255,0 text 50,50,"INCOMING TRANSMISSION" wait 1.5 setrgb 1,0,0,0 fill rectangle 50,50 to 320,26 beep setrgb 1,0,255,0 text 50,50,"INCOMING TRANSMISSION" wait 2 text 50,100,"\"This is now our territory\"" wait 2 text 50,125,"\"Surrender your vessel or prepare to be boarded\"" wait 1 text 50,175,"TRANSMISSION ENDS" setrgb 1,255,0,0 ix = 340 iy = 240 ir = 1 fill circle ix,iy,ir for t = 1 to 60 clear fill circle ix,iy,ir ir = ir+1 fill circle ix,iy,ir wait 0.2 if t = 25 then setrgb 1,0,255,0 text 50,425,"Enemy vessel detected" setrgb 1,255,0,0 end if if t = 35 then setrgb 1,0,255,0 text 50,450,"Weapons charge detected" setrgb 1,255,0,0 end if next t wait 0.3 GOTO after_intro REM ====================================================== REM ====================================================== LABEL mainmenu clear window setrgb 1,255,0,0 fill rectangle 25,25 to 75,75 setrgb 1,0,0,0 fill triangle 40,75 to 40,50 to 65,75 fill triangle 50,50 to 75,75 to 75,50 fill rectangle 50,30 to 70,45 wait 0.1 setrgb 1,255,0,0 fill rectangle 100,25 to 150,75 setrgb 1,0,0,0 fill rectangle 115,30 to 150,50 fill rectangle 115,54 to 150,70 wait 0.1 setrgb 1,255,0,0 fill rectangle 175,25 to 225,75 setrgb 1,0,0,0 fill rectangle 190,30 to 215,70 dot 225,75 dot 224,75 dot 225,74 dot 225,73 dot 223,75 dot 224,74 dot 225,25 dot 224,25 dot 225,24 dot 225,23 dot 223,25 dot 224,24 wait 0.1 setrgb 1,0,255,0 fill rectangle 150,100 to 175,150 wait 0.1 fill rectangle 200,100 to 250,150 setrgb 1,0,0,0 fill rectangle 215,110 to 235,150 wait 0.1 setrgb 2,255,0,0 setrgb 1,0,255,0 setrgb 3,0,255,0 gtriangle 240,25 to 290,150 to 340,25 setrgb 1,0,0,0 fill triangle 260,25 to 290,130 to 320,25 wait 0.1 setrgb 1,0,255,0 fill rectangle 325,100 to 375,150 setrgb 1,0,0,0 fill rectangle 340,115 to 360,150 setrgb 1,0,255,0 fill rectangle 325,125 to 375,140 wait 0.1 setrgb 1,0,255,0 fill rectangle 400,100 to 450,150 setrgb 1,0,0,0 fill rectangle 415,105 to 450,125 fill rectangle 400,130 to 435,145 wait 0.1 setrgb 1,0,255,0 fill rectangle 470,100 to 490,150 wait 0.1 setrgb 1,0,255,0 fill rectangle 512,100 to 562,150 setrgb 1,0,0,0 fill rectangle 527,115 to 547,135 wait 0.1 setrgb 1,0,255,0 fill rectangle 580,100 to 630,150 setrgb 1,0,0,0 fill rectangle 595,110 to 615,150 wait 0.3 setrgb 1,0,0,255 rectangle 50,200 to 590,225 setrgb 1,0,255,0 text 190,215,"S T A R T N E W G A M E" setrgb 1,0,0,255 wait 0.2 rectangle 50,250 to 590,275 setrgb 1,0,255,0 text 200,265,"E N T E R P A S S W O R D" setrgb 1,0,0,255 wait 0.2 rectangle 50,300 to 590,325 setrgb 1,0,255,0 text 230,315,"C O N T R O L L E R" setrgb 1,0,0,255 wait 0.2 rectangle 50,350 to 590,375 setrgb 1,0,255,0 text 228,365,"V I E W I N T R O" setrgb 1,0,0,255 wait 0.2 rectangle 50,400 to 590,425 setrgb 1,0,255,0 text 222,415,"V I E W C R E D I T S" setrgb 1,0,0,255 wait 0.2 rectangle 50,450 to 590,475 setrgb 1,0,255,0 text 232,465,"E X I T G A M E" setrgb 1,140,80,80 rectangle 49,199 to 591,226 rxa = 49 rya = 199 rxb = 591 ryb = 226 pos = 1 2 wait 0.1 k = peek("port1") l = peek("port2") if k=64 or l=64 or k=128 or l=128 then REM down if pos = 1 then pos = 2 clear rectangle 49,199 to 591,226 rectangle 49,249 to 591,276 elseif pos = 2 then pos = 3 clear rectangle 49,249 to 591,276 rectangle 49,299 to 591,326 elseif pos = 3 then pos = 4 clear rectangle 49,299 to 591,326 rectangle 49,349 to 591,376 elseif pos = 4 then pos = 5 clear rectangle 49,349 to 591,376 rectangle 49,399 to 591,426 elseif pos = 5 then pos = 6 clear rectangle 49,399 to 591,426 rectangle 49,449 to 591,476 elseif pos = 6 then pos = 1 clear rectangle 49,449 to 591,476 rectangle 49,199 to 591,226 end if elseif k=16 or l=16 or k=32 or l=32 then REM up if pos = 1 then pos = 6 clear rectangle 49,199 to 591,226 rectangle 49,449 to 591,476 elseif pos = 2 then pos = 1 clear rectangle 49,249 to 591,276 rectangle 49,199 to 591,226 elseif pos = 3 then pos = 2 clear rectangle 49,299 to 591,326 rectangle 49,249 to 591,276 elseif pos = 4 then pos = 3 clear rectangle 49,349 to 591,376 rectangle 49,299 to 591,326 elseif pos = 5 then pos = 4 clear rectangle 49,399 to 591,426 rectangle 49,349 to 591,376 elseif pos = 6 then pos = 5 clear rectangle 49,449 to 591,476 rectangle 49,399 to 591,426 end if elseif k=16384 or l=16384 then REM ok if pos = 1 then REM start new game wait 0.1 GOTO modebox LABEL after_modebox elseif pos = 2 then REM enter password wait 0.1 GOTO codebox LABEL after_codebox elseif pos = 3 then REM controller wait 0.1 GOTO configmenu LABEL after_configmenu elseif pos = 4 then REM view intro GOTO intro elseif pos = 5 then REM view credits wait 0.1 GOTO credits LABEL after_credits elseif pos = 6 then REM exit game wait 0.1 clear rectangle 49,449 to 591,476 GOTO exitbox LABEL after_exitbox end if end if goto 2 wait 54 GOTO after_mainmenu REM ====================================================== REM ====================================================== LABEL modebox setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 120,135,"1 player or 2 player?" setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 285,185,"1 Player" text 285,255,"2 Player" setrgb 1,140,80,80 rectangle 159,159 to 481,201 mopos=1 6 wait 0.1 i = peek("port1") s = peek("port2") if i=16 or s=16 or i=128 or s=128 then REM up if mopos=1 then mopos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif mopos=2 then mopos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 or i=32 or s=32 then REM up if mopos=1 then mopos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif mopos=2 then mopos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=16384 or s=16384 then REM ok if mopos=1 then GOTO progress elseif mopos=2 then GOTO multi end if end if goto 6 GOTO after_modebox REM ====================================================== REM ====================================================== LABEL codebox setrgb 1,0,0,0 fill rectangle 100,50 to 540,300 setrgb 1,0,0,255 rectangle 99,49 to 540,300 setrgb 1,0,255,0 text 120,100,"Enter level code " setrgb 1,0,0,255 rectangle 310,75 to 360,125 setrgb 1,0,255,0 text 327,105,"1" ano = 1 setrgb 1,0,0,255 rectangle 380,75 to 430,125 setrgb 1,0,255,0 text 397,105,"1" bno = 1 setrgb 1,0,0,255 rectangle 450,75 to 500,125 setrgb 1,0,255,0 text 467,105,"1" cno = 1 setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 285,185," O K " text 285,255," Cancel " setrgb 1,140,80,80 rectangle 309,74 to 361,126 mopos=3 7 wait 0.1 i = peek("port1") s = peek("port2") setrgb 1,140,80,80 if i=16 or s=16 then REM up if mopos=1 then mopos = 3 clear rectangle 159,159 to 481,201 rectangle 309,74 to 361,126 elseif mopos=2 then mopos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 then REM down if mopos=1 then mopos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif mopos=2 then mopos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 elseif mopos=3 then mopos = 1 clear rectangle 309,74 to 361,126 rectangle 159,159 to 481,201 elseif mopos=4 then mopos = 1 clear rectangle 379,74 to 431,126 rectangle 159,159 to 481,201 elseif mopos=5 then mopos = 1 clear rectangle 449,74 to 501,126 rectangle 159,159 to 481,201 end if elseif i=32 or s=32 then REM right if mopos=3 then mopos = 4 clear rectangle 309,74 to 361,126 rectangle 379,74 to 431,126 elseif mopos=4 then mopos = 5 clear rectangle 379,74 to 431,126 rectangle 449,74 to 501,126 elseif mopos=5 then mopos = 3 clear rectangle 449,74 to 501,126 rectangle 309,74 to 361,126 end if elseif i=128 or s=128 then REM left if mopos=3 then mopos = 5 clear rectangle 309,74 to 361,126 rectangle 449,74 to 501,126 elseif mopos=4 then mopos = 3 clear rectangle 379,74 to 431,126 rectangle 309,74 to 361,126 elseif mopos=5 then mopos = 4 clear rectangle 449,74 to 501,126 rectangle 379,74 to 431,126 end if elseif i=16384 or s=16384 then REM ok if mopos=1 then if ano = 1 and bno = 8 and cno = 5 then GOTO level2_brief elseif ano = 9 and bno = 6 and cno = 4 then GOTO level3_brief end if elseif mopos=2 then GOTO mainmenu elseif mopos=3 then ano = ano + 1 if ano = 10 then ano = 1 end if setrgb 1,0,0,0 fill rectangle 311,76 to 359,124 setrgb 1,0,255,0 text 327,105,str$(ano) elseif mopos=4 then bno = bno + 1 if bno = 10 then bno = 1 end if setrgb 1,0,0,0 fill rectangle 381,76 to 429,124 setrgb 1,0,255,0 text 397,105,str$(bno) elseif mopos=5 then cno = cno + 1 if cno = 10 then cno = 1 end if setrgb 1,0,0,0 fill rectangle 451,76 to 499,124 setrgb 1,0,255,0 text 467,105,str$(cno) end if end if goto 7 GOTO after_codebox REM ====================================================== REM ====================================================== LABEL level1 open window 640,400 101 dim arr(6,2) dim done(6,1) dim dps(150,2) diff = 6 score = 0 lives = 3 for k = 1 to diff arr(k,1)=0 arr(k,2)=0 done(k,1)=0 next k clear window setrgb 1,0,0,255 x=300 y=300 r=50 fill circle x,y,r setrgb 1,255,255,255 for k = 1 to 150 dx = ran(640) dy = ran(510) dot dx,dy dps(k,1) = dx dps(k,2) = dy next k setrgb 1,100,0,0 for k = 1 to diff px = ran(620) py = ran(480) fill rectangle px,py to px+20,py+20 arr(k,1) = px arr(k,2) = py next k setrgb 1,0,0,255 string$ = time$ if right$(left$(string$,2),1) = "-" then term1 = 1 if right$(left$(string$,4),1) = "-" then term2 = 1 if right$(left$(string$,6),1) = "-" then term3 = 1 elseif right$(left$(string$,7),1) = "-" then term3 = 2 end if elseif right$(left$(string$,5),1) = "-" then term2 = 2 if right$(left$(string$,7),1) = "-" then term3 = 1 elseif right$(left$(string$,8),1) = "-" then term3 = 2 end if end if elseif right$(left$(string$,3),1) = "-" then term1 = 2 if right$(left$(string$,5),1) = "-" then term2 = 1 if right$(left$(string$,7),1) = "-" then term3 = 1 elseif right$(left$(string$,8),1) = "-" then term3 = 2 end if elseif right$(left$(string$,6),1) = "-" then term2 = 2 if right$(left$(string$,8),1) = "-" then term3 = 1 elseif right$(left$(string$,9),1) = "-" then term3 = 2 end if end if end if start$=right$(string$,len(string$)-(3+term1+term2+term3)) time1 = val(start$) 10 wait 0.1 a = peek("port1") if clrl = 1 then clrl = 0 clear line sx+10,sy+10 to tx,ty end if for k = 1 to 150 setrgb 1,0,0,0 dx = dps(k,1) dy = dps(k,2) dot dx,dy setrgb 1,255,255,255 dot dx,dy next k setrgb 1,100,0,0 for tint = 1 to 6 clear fill rectangle arr(tint,1),arr(tint,2) to arr(tint,1)+20,arr(tint,2)+20 arr(tint,1) = arr(tint,1) + ((ran(2)-1)*30) if arr(tint,1)>=640 then arr(tint,1)=590 elseif arr(tint,1)<=0 then arr(tint,1)=0 end if arr(tint,2) = arr(tint,2) + ((ran(2)-1)*30) if arr(tint,2)>=480 then arr(tint,2)=430 elseif arr(tint,2)<=0 then arr(tint,2)=0 end if fill rectangle arr(tint,1),arr(tint,2) to arr(tint,1)+20,arr(tint,2)+20 next tint stf = ran(6) sx = arr(stf,1) sy = arr(stf,2) if int(ran(5)) = 1 then setrgb 1,255,0,255 tx = ran(250) + (x-125) ty = y line sx+10,sy+10 to tx,ty setrgb 1,0,0,255 if tx > x-r and tx < x+r and ty > y-r and ty < y+r then aq = peek("port1") clrl = 1 if aq = left then : goto 44441 elseif aq = right then : goto 44442 elseif aq = up then : goto 44443 elseif aq = down then : goto 44444 elseif aq = up+left then : goto 44445 elseif aq = up+right then : goto 44446 elseif aq = down+left then : goto 44447 elseif aq = down+right then : goto 44448 end if clear fill circle x,y,r beep:beep:beep lives = lives - 1 if lives = 0 then goto 105 end if x=300 y=300 r=r-10 end if clrl = 1 end if setrgb 1,0,0,255 if a = left then REM left 44441 clear fill circle x,y,r x = x-50 for k = 1 to diff if arr(k,1) > (x-r) and arr(k,1) < (x+r) then if arr(k,2)>(y-r) and arr(k,2) < (y+r) then if not done(k,1) = 1 then beep score = score + 1 done(k,1) = 0 arr(k,1) = ran(620) arr(k,2) = ran(480) end if end if end if next k if x <= 0 then beep:beep:beep lives = lives - 1 if lives = 0 then goto 105 end if x=300 y=300 r=r-10 end if fill circle x,y,r elseif a = right then REM right 44442 clear fill circle x,y,r x = x+50 for k = 1 to diff if arr(k,1) > (x-r) and arr(k,1) < (x+r) then if arr(k,2)>(y-r) and arr(k,2) < (y+r) then if not done(k,1) = 1 then beep score = score + 1 done(k,1) = 0 arr(k,1) = ran(620) arr(k,2) = ran(480) end if end if end if next k if x >= 640 then beep:beep:beep lives = lives - 1 if lives = 0 then goto 105 end if x=300 y=300 r=r-10 end if fill circle x,y,r elseif a = up then REM up 44443 clear fill circle x,y,r y = y-50 for k = 1 to diff if arr(k,1) > (x-r) and arr(k,1) < (x+r) then if arr(k,2) > (y-r) and arr(k,2) < (y+r) then if not done(k,1) = 1 then beep score = score + 1 done(k,1) = 0 arr(k,1) = ran(620) arr(k,2) = ran(480) end if end if end if next k if y <= 0 then beep:beep:beep lives = lives - 1 if lives = 0 then goto 105 end if x=300 y=300 r=r-10 end if fill circle x,y,r elseif a = down then REM down 44444 clear fill circle x,y,r y = y+50 for k = 1 to diff if arr(k,1) > (x-r) and arr(k,1) < (x+r) then if arr(k,2) > (y-r) and arr(k,2) < (y+r) then if not done(k,1) = 1 then beep score = score + 1 done(k,1) = 0 arr(k,1) = ran(620) arr(k,2) = ran(480) end if end if end if next k if y >= 640 then beep:beep:beep lives = lives - 1 if lives = 0 then goto 105 end if x=300 y=300 r=r-10 end if fill circle x,y,r elseif a = up+left then REM upleft 44445 clear fill circle x,y,r y = y-50 x = x-50 for k = 1 to diff if arr(k,1) > (x-r) and arr(k,1) < (x+r) then if arr(k,2) > (y-r) and arr(k,2) < (y+r) then if not done(k,1) = 1 then beep score = score + 1 done(k,1) = 0 arr(k,1) = ran(620) arr(k,2) = ran(480) end if end if end if next k if y <= 0 or x <= 0 then beep:beep:beep lives = lives - 1 if lives = 0 then goto 105 end if x=300 y=300 r=r-10 end if fill circle x,y,r elseif a = up+right then REM upright 44446 clear fill circle x,y,r y = y-50 x = x+50 for k = 1 to diff if arr(k,1) > (x-r) and arr(k,1) < (x+r) then if arr(k,2) > (y-r) and arr(k,2) < (y+r) then if not done(k,1) = 1 then beep score = score + 1 done(k,1) = 0 arr(k,1) = ran(620) arr(k,2) = ran(480) end if end if end if next k if y <= 0 or x >= 640 then beep:beep:beep lives = lives - 1 if lives = 0 then goto 105 end if x=300 y=300 r=r-10 end if fill circle x,y,r elseif a = down+left then REM downleft 44447 clear fill circle x,y,r y = y+50 x = x-0 for k = 1 to diff if arr(k,1) > (x-r) and arr(k,1) < (x+r) then if arr(k,2) > (y-r) and arr(k,2) < (y+r) then if not done(k,1) = 1 then beep score = score + 1 done(k,1) = 0 arr(k,1) = ran(620) arr(k,2) = ran(480) end if end if end if next k if y >= 640 or x <= 0 then beep:beep:beep lives = lives - 1 if lives = 0 then goto 105 end if x=300 y=300 r=r-10 end if fill circle x,y,r elseif a = down+right then REM downright 44448 clear fill circle x,y,r y = y+50 x = x+50 for k = 1 to diff if arr(k,1) > (x-r) and arr(k,1) < (x+r) then if arr(k,2) > (y-r) and arr(k,2) < (y+r) then if not done(k,1) = 1 then beep score = score + 1 done(k,1) = 0 arr(k,1) = ran(620) arr(k,2) = ran(480) end if end if end if next k if y >= 640 or x >= 640 then beep:beep:beep lives = lives - 1 if lives = 0 then goto 105 end if x=300 y=300 r=r-10 end if elseif a = 8 then wait 0.1 7771 wait 0.1 sp = peek("port1") if sp = 8 then goto 7772 else goto 7771 end if 7772 wait 0.1 end if fill circle x,y,r if score = 40 then goto 104 end if fill circle x,y,r goto 10 104 string$ = time$ if right$(left$(string$,2),1) = "-" then term1 = 1 if right$(left$(string$,4),1) = "-" then term2 = 1 if right$(left$(string$,6),1) = "-" then term3 = 1 elseif right$(left$(string$,7),1) = "-" then term3 = 2 end if elseif right$(left$(string$,5),1) = "-" then term2 = 2 if right$(left$(string$,7),1) = "-" then term3 = 1 elseif right$(left$(string$,8),1) = "-" then term3 = 2 end if end if elseif right$(left$(string$,3),1) = "-" then term1 = 2 if right$(left$(string$,5),1) = "-" then term2 = 1 if right$(left$(string$,7),1) = "-" then term3 = 1 elseif right$(left$(string$,8),1) = "-" then term3 = 2 end if elseif right$(left$(string$,6),1) = "-" then term2 = 2 if right$(left$(string$,8),1) = "-" then term3 = 1 elseif right$(left$(string$,9),1) = "-" then term3 = 2 end if end if end if end$=right$(string$,len(string$)-(3+term1+term2+term3)) time2 = val(end$) time = time2 - time1 if time >= 28 then clear fill circle x,y,r setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 120,120,"You were too late!" text 120,140,"The capital has been destroyed!" setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 285,185,"Restart" text 285,255," Quit " setrgb 1,140,80,80 rectangle 159,159 to 481,201 l1pos=1 49 wait 0.1 i = peek("port1") s = peek("port2") if i=16 or s=16 or i=128 or s=128 then REM up if l1pos=1 then l1pos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif l1pos=2 then l1pos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 or i=32 or s=32 then REM up if l1pos=1 then l1pos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif l1pos=2 then l1pos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=16384 or s=16384 then REM ok if l1pos=1 then GOTO level1 elseif l1pos=2 then GOTO mainmenu end if end if goto 49 elseif time < 28 then clear fill circle x,y,r setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 120,135,"Well Done! Now get back to the capital!" setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 285,185,"Continue" text 285,255," Quit " setrgb 1,140,80,80 rectangle 159,159 to 481,201 l1pos=1 50 wait 0.1 i = peek("port1") s = peek("port2") if i=16 or s=16 or i=128 or s=128 then REM up if l1pos=1 then l1pos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif l1pos=2 then l1pos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 or i=32 or s=32 then REM up if l1pos=1 then l1pos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif l1pos=2 then l1pos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=16384 or s=16384 then REM ok if l1pos=1 then GOTO after_level1 elseif l1pos=2 then GOTO mainmenu end if end if goto 50 end if 105 clear fill circle x,y,r setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 120,120,"Your ship is too badly damaged!" text 120,140,"The station will be destroyed!" setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 285,185,"Restart" text 285,255," Quit " setrgb 1,140,80,80 rectangle 159,159 to 481,201 l1pos=1 51 wait 0.1 i = peek("port1") s = peek("port2") if i=16 or s=16 or i=128 or s=128 then REM up if l1pos=1 then l1pos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif l1pos=2 then l1pos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 or i=32 or s=32 then REM up if l1pos=1 then l1pos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif l1pos=2 then l1pos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=16384 or s=16384 then REM ok if l1pos=1 then GOTO level1 elseif l1pos=2 then GOTO mainmenu end if end if goto 51 GOTO after_level1 REM ====================================================== REM ====================================================== LABEL progress LABEL after_progress GOTO level1_brief LABEL after_level1_brief GOTO level1 LABEL after_level1 GOTO level1_code LABEL after_level1_code clear window wait 2 GOTO level2_brief LABEL after_level2_brief GOTO level2 LABEL after_level2 GOTO level2_code LABEL after_level2_code clear window wait 2 GOTO level3_brief LABEL after_level3_brief GOTO level3 LABEL after_level3 clear window wait 2 GOTO end_brief LABEL after_end_brief GOTO mainmenu GOTO after_progress REM ====================================================== REM ====================================================== LABEL level2_code clear window setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 140,120," CONGRATULATIONS ! " text 140,145,"You have completed Level 2. To jump" text 140,165,"straight to this point of the game," text 140,185,"enter the following code at the main" text 140,205,"menu." text 140,225," 9 6 4 " setrgb 1,0,0,255 rectangle 160,240 to 480,280 setrgb 1,0,255,0 text 285,260,"Continue" setrgb 1,140,80,80 rectangle 159,239 to 481,281 742 wait 0.1 i = peek("port1") s = peek("port2") if i=16384 or s=16384 then REM ok GOTO after_level2_code end if goto 742 GOTO after_level2_code REM ====================================================== REM ====================================================== LABEL level1_code clear window setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 140,120," CONGRATULATIONS ! " text 140,145,"You have completed Level 1. To jump" text 140,165,"straight to this point of the game," text 140,185,"enter the following code at the main" text 140,205,"menu." text 140,225," 1 8 5 " setrgb 1,0,0,255 rectangle 160,240 to 480,280 setrgb 1,0,255,0 text 285,260,"Continue" setrgb 1,140,80,80 rectangle 159,239 to 481,281 741 wait 0.1 i = peek("port1") s = peek("port2") if i=16384 or s=16384 then REM ok GOTO after_level1_code end if goto 741 GOTO after_level1_code REM ====================================================== REM ====================================================== LABEL multi LABEL after_multi GOTO multibox LABEL after_multibox GOTO multi_level LABEL after_multi_level GOTO after_multi REM ====================================================== REM ====================================================== LABEL multibox clear window setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 line 320,100 to 320,300 setrgb 1,0,255,0 text 120,120," Player 1 " text 340,120," Player 2 " text 120,145," Select handicap" text 340,145," Select handicap" setrgb 1,0,0,255 rectangle 170,155 to 250,220 setrgb 1,0,255,0 text 205,190,"0" no1 = 0 setrgb 1,0,0,255 rectangle 390,155 to 470,220 setrgb 1,0,255,0 text 425,190,"0" no2 = 0 setrgb 1,0,0,255 rectangle 160,240 to 260,280 setrgb 1,0,255,0 text 170,260,"Continue" setrgb 1,0,0,255 rectangle 380,240 to 480,280 setrgb 1,0,255,0 text 390,260,"Continue" setrgb 1,140,80,80 rectangle 169,154 to 251,221 setrgb 1,140,80,80 rectangle 389,154 to 471,221 pos1 = 1 pos2 = 1 cont1 = 0 cont2 = 0 748 wait 0.1 i = peek("port1") s = peek("port2") if i=16 and not cont1=1 or i=64 and not cont1=1 then REM up / down if pos1 = 1 then pos1 = 2 clear rectangle 169,154 to 251,221 setrgb 1,140,80,80 rectangle 159,239 to 261,281 elseif pos1 = 2 then pos1 = 1 clear rectangle 159,239 to 261,281 setrgb 1,140,80,80 rectangle 169,154 to 251,221 end if elseif i=16384 and not cont1=1 then REM ok if pos1 = 1 then no1 = no1 + 1 if no1 = 4 then no1 = 0 end if setrgb 1,0,0,0 fill rectangle 171,156 to 249,219 setrgb 1,0,255,0 text 205,190,str$(no1) elseif pos1 = 2 then beep cont1 = 1 if cont2 = 1 then hcap1 = no1 hcap2 = no2 GOTO after_multibox end if end if end if if s=16 and not cont2=1 or s=64 and not cont2=1 then REM up / down if pos2 = 1 then pos2 = 2 clear rectangle 389,154 to 471,221 setrgb 1,140,80,80 rectangle 379,239 to 481,281 elseif pos2 = 2 then pos2 = 1 clear rectangle 379,239 to 481,281 setrgb 1,140,80,80 rectangle 389,154 to 471,221 end if elseif s=16384 and not cont2=1 then REM ok if pos2 = 1 then no2 = no2 + 1 if no2 = 4 then no2 = 0 end if setrgb 1,0,0,0 fill rectangle 391,156 to 469,219 setrgb 1,0,255,0 text 425,190,str$(no2) elseif pos2 = 2 then beep cont2 = 1 if cont1 = 1 then hcap1 = no1 hcap2 = no2 GOTO after_multibox end if end if end if goto 748 GOTO after_multibox REM ====================================================== REM ====================================================== LABEL multi_level open window 640,400 setrgb 0,0,180,180 clear window speed = 4 setrgb 1,100,100,15 fill rectangle 1,440 to 640,520 setrgb 1,255,100,15 for t = 1 to 1000 dtfx = ran(640) dtfy = ran(80) + 440 dot dtfx,dtfy next setrgb 1,120,120,127 fill rectangle 1,420 to 640,440 setrgb 1,255,255,255 fill rectangle 310,1 to 330,640 setrgb 1,0,0,255 fill rectangle 120,390 to 170,420 setrgb 1,100,0,0 fill rectangle 460,390 to 510,420 goto 901 901 mex1 = 120 mex2 = 460 sc1 = 0 sc2 = 0 dim n1(5,2) dim nd1(5,1) dif = 5 dim n2(5,2) dim nd2(5,1) for d = 1 to dif setrgb 1,100,0,0 n1(d,1) = ran(285) n1(d,2) = 1 nd1(d,1) = 0 fill rectangle n1(d,1),n1(d,2) to n1(d,1)+25,n1(d,2)+25 setrgb 1,0,0,255 n2(d,1) = ran(285) + 330 n2(d,2) = 1 nd2(d,1) = 0 fill rectangle n2(d,1),n2(d,2) to n2(d,1)+25,n2(d,2)+25 next cll = 0 69 wait 0.1 if cll1 = 1 then cll1 = 0 clear line mex1+25,389 to mex1+25,1 end if if cll2 = 1 then cll2 = 0 clear line mex2+25,389 to mex2+25,1 end if e1 = peek("port1") e2 = peek("port2") setrgb 1,0,0,255 fill rectangle mex1,390 to mex1+50,420 setrgb 1,100,0,0 fill rectangle mex2,390 to mex2+50,420 for d = 1 to dif setrgb 1,100,0,0 fill rectangle n1(d,1),n1(d,2) to n1(d,1)+25,n1(d,2)+25 setrgb 1,0,0,255 fill rectangle n2(d,1),n2(d,2) to n2(d,1)+25,n2(d,2)+25 setrgb 1,100,0,0 clear fill rectangle n1(d,1),n1(d,2) to n1(d,1)+25,n1(d,2)+25 n1(d,2) = n1(d,2) + ran(speed) + (hcap1/2) fill rectangle n1(d,1),n1(d,2) to n1(d,1)+25,n1(d,2)+25 if n1(d,2) >= 390 then beep:beep:beep goto 902 end if setrgb 1,0,0,255 clear fill rectangle n2(d,1),n2(d,2) to n2(d,1)+25,n2(d,2)+25 n2(d,2) = n2(d,2) + ran(speed) + (hcap2/2) fill rectangle n2(d,1),n2(d,2) to n2(d,1)+25,n2(d,2)+25 if n2(d,2) >= 390 then beep:beep:beep goto 903 end if next setrgb 1,0,0,255 if e1=left then clear fill rectangle mex1,390 to mex1+50,420 mex1 = mex1 - 25 if mex1 < 0 then mex1 = 0 end if fill rectangle mex1,390 to mex1+50,420 elseif e1=right then clear fill rectangle mex1,390 to mex1+50,420 mex1 = mex1 + 25 if mex1+50 > 310 then mex1 = 260 end if fill rectangle mex1,390 to mex1+50,420 elseif e1=up or e1=fire then setrgb 1,0,255,0 line mex1+25,389 to mex1+25,1 for f= 1 to dif if mex1+25>n1(f,1) and mex1+25 640 then mex2 = 590 end if fill rectangle mex2,390 to mex2+50,420 elseif e2=up or e2=fire then setrgb 1,0,255,0 line mex2+25,389 to mex2+25,1 for f= 1 to dif if mex2+25>n2(f,1) and mex2+25= 390 then beep:beep:beep goto 203 end if next setrgb 1,0,0,255 if e=left then clear fill rectangle mex,390 to mex+50,420 mex = mex - 25 if mex < 0 then mex = 0 end if fill rectangle mex,390 to mex+50,420 elseif e=right then clear fill rectangle mex,390 to mex+50,420 mex = mex + 25 if mex > 640 then mex = 615 end if fill rectangle mex,390 to mex+50,420 elseif e=up or e=fire then setrgb 1,0,255,0 line mex+25,389 to mex+25,1 for f= 1 to diff2 if mex+25>n(f,1) and mex+25= ret then goto 202 end if goto 63 202 repeat for d = 1 to diff2 clear fill rectangle n(d,1),n(d,2) to n(d,1)+25,n(d,2)+25 n(d,2) = n(d,2) - ran(50) fill rectangle n(d,1),n(d,2) to n(d,1)+25,n(d,2)+25 wait 0.1 next until (n(1,2)+25<=0 and n(2,2)+25<=0 and n(3,2)+25<=0 and n(4,2)+25<=0 and n(5,2)+25<=0) setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 120,120,"Congratulations!" text 120,140,"The enemy has retreated!" setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 285,185,"Continue" text 285,255," Quit " setrgb 1,140,80,80 rectangle 159,159 to 481,201 l2pos=1 572 wait 0.1 i = peek("port1") s = peek("port2") if i=16 or s=16 or i=128 or s=128 then REM up if l2pos=1 then l2pos = 2 setrgb 1,0,0,0 rectangle 159,159 to 481,201 setrgb 1,140,80,80 rectangle 159,229 to 481,271 elseif l2pos=2 then l2pos = 1 setrgb 1,0,0,0 rectangle 159,229 to 481,271 setrgb 1,140,80,80 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 or i=32 or s=32 then REM up if l2pos=1 then l2pos = 2 setrgb 1,0,0,0 rectangle 159,159 to 481,201 setrgb 1,140,80,80 rectangle 159,229 to 481,271 elseif l2pos=2 then l2pos = 1 setrgb 1,0,0,0 rectangle 159,229 to 481,271 setrgb 1,140,80,80 rectangle 159,159 to 481,201 end if elseif i=16384 or s=16384 then REM ok if l2pos=1 then setrgb 0,0,0,0 clear window GOTO after_level2 elseif l2pos=2 then setrgb 0,0,0,0 clear window GOTO mainmenu end if end if goto 572 203 setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 120,120,"You failed!" text 120,140,"The capital is about to fall!" setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 285,185,"Restart" text 285,255," Quit " setrgb 1,140,80,80 rectangle 159,159 to 481,201 l2pos=1 571 wait 0.1 i = peek("port1") s = peek("port2") if i=16 or s=16 or i=128 or s=128 then REM up if l2pos=1 then l2pos = 2 setrgb 1,0,0,0 rectangle 159,159 to 481,201 setrgb 1,140,80,80 rectangle 159,229 to 481,271 elseif l2pos=2 then l2pos = 1 setrgb 1,0,0,0 rectangle 159,229 to 481,271 setrgb 1,140,80,80 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 or i=32 or s=32 then REM up if l2pos=1 then l2pos = 2 setrgb 1,0,0,0 rectangle 159,159 to 481,201 setrgb 1,140,80,80 rectangle 159,229 to 481,271 elseif l2pos=2 then l2pos = 1 setrgb 1,0,0,0 rectangle 159,229 to 481,271 setrgb 1,140,80,80 rectangle 159,159 to 481,201 end if elseif i=16384 or s=16384 then REM ok if l2pos=1 then setrgb 0,0,0,0 clear window GOTO level2 elseif l2pos=2 then setrgb 0,0,0,0 clear window GOTO mainmenu end if end if goto 571 GOTO after_level2 REM ====================================================== REM ====================================================== LABEL level3 open window 640,400 clear window setrgb 1,0,0,255 fill rectangle 580,1 to 640,510 fill rectangle 560,100 to 580,150 fill rectangle 560,250 to 580,300 fill rectangle 560,400 to 580,450 setrgb 1,0,0,0 fill rectangle 580,20 to 600,85 fill circle 599,52,10 fill rectangle 580,165 to 600,235 fill circle 599,200,10 fill rectangle 580,315 to 600,385 fill circle 599,350,10 fill rectangle 580,465 to 600,510 fill circle 599,500,10 fill rectangle 625,1 to 630,510 fill rectangle 600,122 to 640,127 fill rectangle 600,272 to 640,277 fill rectangle 600,422 to 640,427 setrgb 1,0,255,0 fill rectangle 530,115 to 560,135 dim dot3(150,2) setrgb 1,255,255,255 for tok = 1 to 150 dot3(tok,1) = ran(530) dot3(tok,2) = ran(510) dot dot3(tok,1),dot3(tok,2) next goto 301 301 gun = 1 score2 = 0 setrgb 1,100,0,0 dim c(2,3) dim cd(2,1) diff3 = 2 ret = 75 speed = 11 for d = 1 to diff3 c(d,1) = ran(510) c(d,2) = 1 c(d,3) = 0 cd(d,1) = 0 fill rectangle c(d,1),c(d,2) to c(d,1)+25,c(d,2)+60 next g1 = 1 : g2 = 1 : g3 = 1 : g1f = 0 : g2f = 0 : g3f = 0 633 wait 0.1 e = peek("port1") setrgb 1,0,0,0 if cfl = 1 then cfl = 0 clear line cfx1,cfy1 to cfx2,cfy2 end if for tok = 1 to 150 setrgb 1,0,0,0 dot dot3(tok,1),dot3(tok,2) setrgb 1,255,255,255 dot dot3(tok,1),dot3(tok,2) next for d = 1 to diff3 setrgb 1,100,0,0 fill rectangle c(d,1),c(d,2) to c(d,1)+25,c(d,2)+60 next d = int(ran(2)) setrgb 1,140,80,80 if gun = 1 then ong1 = 1 ong2 = 0 ong3 = 0 elseif gun = 2 then ong1 = 0 ong2 = 1 ong3 = 0 elseif gun = 3 then ong1 = 0 ong2 = 0 ong3 = 1 end if if int(ran(5)) = 1 then if c(d,2)>10 and c(d,2)<150 then if not g1 =0 then tarx = 560 tary = ran(100+(ong1*14))+75 line c(d,1)+12,c(d,2)+30 to tarx,tary if tary > 100 and tary < 150 and not peek("port1")=right then beep g1f = g1f + 1 if g1f = 6 then g1 = 0 setrgb 1,0,0,0 fill circle 560,ran(50)+100,ran(20)+10 fill circle 560,ran(50)+100,ran(20)+10 beep:beep if gun = 1 then if gun2 = 1 then e = down else e = up end if end if end if end if cfx1 = c(d,1) + 12 cfy1 = c(d,2) + 30 cfx2 = tarx cfy2 = tary cfl = 1 end if elseif c(d,2)>150 and c(d,2)<300 and not peek("port1")=right then if not g2 =0 then tarx = 560 tary = ran(100+(ong2*14))+225 line c(d,1)+12,c(d,2)+30 to tarx,tary if tary > 250 and tary < 300 then beep g2f = g2f + 1 if g2f = 6 then g2 = 0 setrgb 1,0,0,0 fill circle 560,ran(50)+250,ran(20)+10 fill circle 560,ran(50)+250,ran(20)+10 beep:beep if gun = 2 then if gun3 = 1 then e = down else e = up end if end if end if end if cfx1 = c(d,1) + 12 cfy1 = c(d,2) + 30 cfx2 = tarx cfy2 = tary cfl = 1 end if elseif c(d,2)>300 and not peek("port1")=right then if not g3 =0 then tarx = 560 tary = ran(100+(ong3*14))+375 line c(d,1)+12,c(d,2)+30 to tarx,tary if tary > 400 and tary < 450 then beep g2f = g2f + 1 if g2f = 6 then g2 = 0 setrgb 1,0,0,0 fill circle 560,ran(50)+400,ran(20)+10 fill circle 560,ran(50)+400,ran(20)+10 beep:beep if gun = 3 then if gun1 = 1 then e = down else e = up end if end if end if end if cfx1 = c(d,1) + 12 cfy1 = c(d,2) + 30 cfx2 = tarx cfy2 = tary cfl = 1 end if end if end if 46465 if g1 = 0 and g2 = 0 and g3 =0 then goto 303 end if setrgb 1,100,0,0 for d = 1 to diff3 clear fill rectangle c(d,1),c(d,2) to c(d,1)+25,c(d,2)+60 c(d,2) = c(d,2) + ran(speed) + (d*2.5) fill rectangle c(d,1),c(d,2) to c(d,1)+25,c(d,2)+60 if c(d,2) >= 460 then beep:beep:beep goto 303 end if next setrgb 1,0,0,255 if e=down then if gun = 1 then if not g2 = 0 then gun = 2 setrgb 1,0,255,0 clear fill rectangle 530,115 to 560,135 fill rectangle 530,265 to 560,285 end if elseif gun = 2 then if not g3 = 0 then gun = 3 setrgb 1,0,255,0 clear fill rectangle 530,265 to 560,285 fill rectangle 530,415 to 560,435 end if elseif gun = 3 then if not g1 = 0 then gun = 1 setrgb 1,0,255,0 clear fill rectangle 530,415 to 560,435 fill rectangle 530,115 to 560,135 end if end if elseif e=up then if gun = 1 then if not g3 = 0 then gun = 3 setrgb 1,0,255,0 clear fill rectangle 530,115 to 560,135 fill rectangle 530,415 to 560,435 end if elseif gun = 2 then if not g1 = 0 then gun = 1 setrgb 1,0,255,0 clear fill rectangle 530,265 to 560,285 fill rectangle 530,115 to 560,135 end if elseif gun = 3 then if not g2 = 0 then gun = 2 setrgb 1,0,255,0 clear fill rectangle 530,415 to 560,435 fill rectangle 530,265 to 560,285 end if end if elseif e=left or e=fire then if gun = 1 then if g1 =0 then goto 36963 else mide = 125 end if elseif gun = 2 then if g2 =0 then goto 36963 else mide = 275 end if elseif gun = 3 then if g3 =0 then goto 36963 else mide = 425 end if end if setrgb 1,0,255,0 line 530,mide to 1,mide for f= 1 to diff3 if mide>c(f,2) and mide= ret then goto 302 end if goto 633 302 repeat for d = 1 to diff3 clear fill rectangle c(d,1),c(d,2) to c(d,1)+25,c(d,2)+60 c(d,2) = c(d,2) - ran(50) fill rectangle c(d,1),c(d,2) to c(d,1)+25,c(d,2)+60 wait 0.1 next until (c(1,2)+60<=0 and c(2,2)+60<=0) setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 120,120,"Congratulations!" text 120,140,"You destroyed the convoy!" setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 285,185,"Continue" text 285,255," Quit " setrgb 1,140,80,80 rectangle 159,159 to 481,201 l2pos=1 576 wait 0.1 i = peek("port1") s = peek("port2") if i=16 or s=16 or i=128 or s=128 then REM up if l2pos=1 then l2pos = 2 setrgb 1,0,0,0 rectangle 159,159 to 481,201 setrgb 1,140,80,80 rectangle 159,229 to 481,271 elseif l2pos=2 then l2pos = 1 setrgb 1,0,0,0 rectangle 159,229 to 481,271 setrgb 1,140,80,80 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 or i=32 or s=32 then REM up if l2pos=1 then l2pos = 2 setrgb 1,0,0,0 rectangle 159,159 to 481,201 setrgb 1,140,80,80 rectangle 159,229 to 481,271 elseif l2pos=2 then l2pos = 1 setrgb 1,0,0,0 rectangle 159,229 to 481,271 setrgb 1,140,80,80 rectangle 159,159 to 481,201 end if elseif i=16384 or s=16384 then REM ok if l2pos=1 then setrgb 0,0,0,0 clear window GOTO after_level3 elseif l2pos=2 then setrgb 0,0,0,0 clear window GOTO mainmenu end if end if goto 576 303 setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 120,120,"You failed!" text 120,140,"The government remains!" setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 285,185,"Restart" text 285,255," Quit " setrgb 1,140,80,80 rectangle 159,159 to 481,201 l2pos=1 577 wait 0.1 i = peek("port1") s = peek("port2") if i=16 or s=16 or i=128 or s=128 then REM up if l2pos=1 then l2pos = 2 setrgb 1,0,0,0 rectangle 159,159 to 481,201 setrgb 1,140,80,80 rectangle 159,229 to 481,271 elseif l2pos=2 then l2pos = 1 setrgb 1,0,0,0 rectangle 159,229 to 481,271 setrgb 1,140,80,80 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 or i=32 or s=32 then REM up if l2pos=1 then l2pos = 2 setrgb 1,0,0,0 rectangle 159,159 to 481,201 setrgb 1,140,80,80 rectangle 159,229 to 481,271 elseif l2pos=2 then l2pos = 1 setrgb 1,0,0,0 rectangle 159,229 to 481,271 setrgb 1,140,80,80 rectangle 159,159 to 481,201 end if elseif i=16384 or s=16384 then REM ok if l2pos=1 then setrgb 0,0,0,0 clear window GOTO level3 elseif l2pos=2 then setrgb 0,0,0,0 clear window GOTO mainmenu end if end if goto 577 GOTO after_level3 REM ====================================================== REM ====================================================== LABEL level3_brief clear window setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,69 to 540,300 setrgb 1,0,255,0 text 125,90," LEVEL 3 : Convoy crisis" text 125,110,"The enemy government is travelling to" text 125,130,"Rigel,in lightly-armed convoy ships far" text 125,150,"behind their lines. They will soon pass" text 125,170,"by a once-thought crippled vessel. Take" text 125,190,"control of its gunports and destroy the" text 125,210,"convoy. This could win the war for us." setrgb 1,0,0,0 fill rectangle 100,400 to 540,450 setrgb 1,0,0,255 rectangle 99,399 to 540,461 setrgb 1,0,255,0 text 125,420,"Shoot the convoy ships as they pass by" text 125,435,"-you have to switch between guns so you" text 125,450,"only have three chances." setrgb 1,0,0,255 rectangle 160,240 to 480,280 setrgb 1,0,255,0 text 285,260,"Continue" setrgb 1,140,80,80 rectangle 159,239 to 481,281 52 wait 0.1 i = peek("port1") s = peek("port2") if i=16384 or s=16384 then REM ok GOTO after_level3_brief end if goto 52 GOTO after_level3_brief REM ====================================================== REM ====================================================== LABEL end_brief clear window setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,69 to 540,300 setrgb 1,0,255,0 text 125,90," CONGRATULATIONS !" text 125,130,"Without leadership the enemy lines have" text 125,150,"crumbled. We are picking them off one" text 125,170,"by one. In a week the war will be over." text 125,210,"Well done." setrgb 1,0,0,255 rectangle 160,240 to 480,280 setrgb 1,0,255,0 text 285,260,"Continue" setrgb 1,140,80,80 rectangle 159,239 to 481,281 29 wait 0.1 i = peek("port1") s = peek("port2") if i=16384 or s=16384 then REM ok GOTO after_end_brief end if goto 29 GOTO after_end_brief REM ====================================================== REM ====================================================== LABEL level2_brief clear window setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 140,120," LEVEL 2 : Sand Assault" text 140,145,"We managed to repel the first invasion" text 140,165,"of the capital, but a second wave of" text 140,185,"enemy ships are on their way.They will" text 140,205,"land their troops in a desert clearing" text 140,225,"nearby ~ engage them there. Good luck." setrgb 1,0,0,0 fill rectangle 100,400 to 540,450 setrgb 1,0,0,255 rectangle 99,399 to 540,461 setrgb 1,0,255,0 text 125,420,"Shoot the enemy ships as they try to " text 125,435,"land. They will get faster and faster," text 125,450,"and if one of them lands, you've failed" setrgb 1,0,0,255 rectangle 160,240 to 480,280 setrgb 1,0,255,0 text 285,260,"Continue" setrgb 1,140,80,80 rectangle 159,239 to 481,281 124 wait 0.1 i = peek("port1") s = peek("port2") if i=16384 or s=16384 then REM ok GOTO after_level2_brief end if goto 124 GOTO after_level2_brief REM ====================================================== REM ====================================================== LABEL level1_brief clear window setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 140,120," LEVEL 1 : Collision Course" text 140,145,"The enemy has launched small fighters" text 140,165,"against Habitat Station 4 in the void." text 140,185,"The capital city is also under attack." text 140,205,"Quickly ram the raiders and get back" text 140,225,"here to help defend the city." setrgb 1,0,0,0 fill rectangle 100,400 to 540,450 setrgb 1,0,0,255 rectangle 99,399 to 540,461 setrgb 1,0,255,0 text 125,420,"Destroy the enemy ships by passing your" text 125,435,"craft over them as they move. You will" text 125,450,"be attacked - and you have only 3 lives" setrgb 1,0,0,255 rectangle 160,240 to 480,280 setrgb 1,0,255,0 text 285,260,"Continue" setrgb 1,140,80,80 rectangle 159,239 to 481,281 53 wait 0.1 i = peek("port1") s = peek("port2") if i=16384 or s=16384 then REM ok GOTO after_level1_brief end if goto 53 GOTO after_level1_brief REM ====================================================== REM ====================================================== LABEL credits clear window setrgb 1,255,0,0 fill rectangle 25,325 to 75,375 setrgb 1,0,0,0 fill triangle 40,375 to 40,350 to 65,375 fill triangle 50,350 to 75,375 to 75,350 fill rectangle 50,330 to 70,345 wait 0.1 setrgb 1,255,0,0 fill rectangle 100,325 to 150,375 setrgb 1,0,0,0 fill rectangle 115,330 to 150,350 fill rectangle 115,354 to 150,370 wait 0.1 setrgb 1,255,0,0 fill rectangle 175,325 to 225,375 setrgb 1,0,0,0 fill rectangle 190,330 to 215,370 dot 225,75 dot 224,75 dot 225,74 dot 225,73 dot 223,75 dot 224,74 dot 225,25 dot 224,25 dot 225,24 dot 225,23 dot 223,25 dot 224,24 wait 0.1 setrgb 1,0,255,0 fill rectangle 150,400 to 175,450 wait 0.1 fill rectangle 200,400 to 250,450 setrgb 1,0,0,0 fill rectangle 215,410 to 235,450 wait 0.1 setrgb 2,255,0,0 setrgb 1,0,255,0 setrgb 3,0,255,0 gtriangle 240,325 to 290,450 to 340,325 setrgb 1,0,0,0 fill triangle 260,325 to 290,430 to 320,325 wait 0.1 setrgb 1,0,255,0 fill rectangle 325,400 to 375,450 setrgb 1,0,0,0 fill rectangle 340,415 to 360,450 setrgb 1,0,255,0 fill rectangle 325,425 to 375,440 wait 0.1 setrgb 1,0,255,0 fill rectangle 400,400 to 450,450 setrgb 1,0,0,0 fill rectangle 415,405 to 450,425 fill rectangle 400,430 to 435,445 wait 0.1 setrgb 1,0,255,0 fill rectangle 470,400 to 490,450 wait 0.1 setrgb 1,0,255,0 fill rectangle 512,400 to 562,450 setrgb 1,0,0,0 fill rectangle 527,415 to 547,435 wait 0.1 setrgb 1,0,255,0 fill rectangle 580,400 to 630,450 setrgb 1,0,0,0 fill rectangle 595,410 to 615,450 setrgb 1,255,255,255 text 250,150," PROGRAMMER " text 250,175,"Matthew Hartley" 76 wait 0.1 op = peek("port1") po = peek("port2") if op > 0 or po > 0 then GOTO mainmenu end if goto 76 GOTO after_credits REM ====================================================== REM ====================================================== LABEL configmenu clear window setrgb 1,255,0,0 fill rectangle 25,25 to 75,75 setrgb 1,0,0,0 fill rectangle 35,35 to 75,65 wait 0.1 setrgb 1,255,0,0 fill rectangle 100,25 to 150,75 setrgb 1,0,0,0 fill rectangle 110,35 to 140,65 wait 0.1 setrgb 1,255,0,0 fill rectangle 175,25 to 225,75 setrgb 1,0,0,0 fill rectangle 185,35 to 215,75 setrgb 1,255,0,0 fill rectangle 250,25 to 300,35 fill rectangle 270,35 to 280,75 setrgb 1,255,0,0 fill rectangle 325,25 to 375,75 setrgb 1,0,0,0 fill triangle 340,75 to 340,50 to 365,75 fill triangle 350,50 to 375,75 to 375,50 fill rectangle 350,30 to 370,45 setrgb 1,255,0,0 fill rectangle 400,25 to 450,75 setrgb 1,0,0,0 fill rectangle 410,35 to 440,65 setrgb 1,255,0,0 fill rectangle 475,25 to 525,75 setrgb 1,0,0,0 fill rectangle 485,25 to 525,65 wait 0.1 setrgb 1,0,255,0 fill rectangle 150,100 to 200,150 setrgb 1,0,0,0 fill rectangle 160,110 to 190,140 wait 0.1 setrgb 1,0,255,0 fill rectangle 225,100 to 275,150 setrgb 1,0,0,0 fill rectangle 240,130 to 275,150 fill rectangle 240,110 to 260,120 wait 0.1 setrgb 1,0,255,0 fill rectangle 300,100 to 350,110 fill rectangle 320,100 to 330,150 wait 0.1 setrgb 1,0,255,0 fill rectangle 375,100 to 385,150 wait 0.1 setrgb 1,0,255,0 fill rectangle 410,100 to 460,150 setrgb 1,0,0,0 fill rectangle 420,110 to 450,140 wait 0.1 setrgb 1,0,255,0 fill rectangle 485,100 to 535,150 setrgb 1,0,0,0 fill rectangle 495,110 to 525,150 wait 0.1 setrgb 1,0,255,0 fill rectangle 550,100 to 600,150 setrgb 1,0,0,0 fill rectangle 565,105 to 600,125 fill rectangle 550,130 to 585,145 wait 0.3 cu = up cd = down cl = left cr = right cf = fire setrgb 1,0,0,255 rectangle 50,200 to 400,225 setrgb 1,0,255,0 text 150,215,"M O V E U P" setrgb 1,0,0,255 rectangle 450,200 to 590,225 setrgb 1,0,255,0 if up=1 then text$="Select Button" elseif up=2 then text$="L3 Button" elseif up=4 then text$="R3 Button" elseif up=8 then text$="Start Button" elseif up=16 then text$="Up Button" elseif up=32 then text$="Right Button" elseif up=64 then text$="Down Button" elseif up=128 then text$="Left Button" elseif up=256 then text$="L2 Button" elseif up=512 then text$="R2 Button" elseif up=1024 then text$="L1 Button" elseif up=2048 then text$="R1 Button" elseif up=4096 then text$="TRIANGLE" elseif up=8192 then text$="CIRCLE" elseif up=16384 then text$="CROSS" elseif up=32768 then text$="SQUARE" end if text 455,215,text$ setrgb 1,0,0,255 rectangle 50,250 to 400,275 setrgb 1,0,255,0 text 150,265,"M O V E D O W N" setrgb 1,0,0,255 rectangle 450,250 to 590,275 setrgb 1,0,255,0 if down=1 then text$="Select Button" elseif down=2 then text$="L3 Button" elseif down=4 then text$="R3 Button" elseif down=8 then text$="Start Button" elseif down=16 then text$="Up Button" elseif down=32 then text$="Right Button" elseif down=64 then text$="Down Button" elseif down=128 then text$="Left Button" elseif down=256 then text$="L2 Button" elseif down=512 then text$="R2 Button" elseif down=1024 then text$="L1 Button" elseif down=2048 then text$="R1 Button" elseif down=4096 then text$="TRIANGLE" elseif down=8192 then text$="CIRCLE" elseif down=16384 then text$="CROSS" elseif down=32768 then text$="SQUARE" end if text 455,265,text$ setrgb 1,0,0,255 rectangle 50,300 to 400,325 setrgb 1,0,255,0 text 150,315,"M O V E L E F T" setrgb 1,0,0,255 rectangle 450,300 to 590,325 setrgb 1,0,255,0 if left=1 then text$="Select Button" elseif left=2 then text$="L3 Button" elseif left=4 then text$="R3 Button" elseif left=8 then text$="Start Button" elseif left=16 then text$="Up Button" elseif left=32 then text$="Right Button" elseif left=64 then text$="Down Button" elseif left=128 then text$="Left Button" elseif left=256 then text$="L2 Button" elseif left=512 then text$="R2 Button" elseif left=1024 then text$="L1 Button" elseif left=2048 then text$="R1 Button" elseif left=4096 then text$="TRIANGLE" elseif left=8192 then text$="CIRCLE" elseif left=16384 then text$="CROSS" elseif left=32768 then text$="SQUARE" end if text 455,315,text$ setrgb 1,0,0,255 rectangle 50,350 to 400,375 setrgb 1,0,255,0 text 150,365,"M O V E R I G H T" setrgb 1,0,0,255 rectangle 450,350 to 590,375 setrgb 1,0,255,0 if right=1 then text$="Select Button" elseif right=2 then text$="L3 Button" elseif right=4 then text$="R3 Button" elseif right=8 then text$="Start Button" elseif right=16 then text$="Up Button" elseif right=32 then text$="Right Button" elseif right=64 then text$="Down Button" elseif right=128 then text$="Left Button" elseif right=256 then text$="L2 Button" elseif right=512 then text$="R2 Button" elseif right=1024 then text$="L1 Button" elseif right=2048 then text$="R1 Button" elseif right=4096 then text$="TRIANGLE" elseif right=8192 then text$="CIRCLE" elseif right=16384 then text$="CROSS" elseif right=32768 then text$="SQUARE" end if text 455,365,text$ setrgb 1,0,0,255 rectangle 50,400 to 400,425 setrgb 1,0,255,0 text 150,415,"F I R E" setrgb 1,0,0,255 rectangle 450,400 to 590,425 setrgb 1,0,255,0 if fire=1 then text$="Select Button" elseif fire=2 then text$="L3 Button" elseif fire=4 then text$="R3 Button" elseif fire=8 then text$="Start Button" elseif fire=16 then text$="Up Button" elseif fire=32 then text$="Right Button" elseif fire=64 then text$="Down Button" elseif fire=128 then text$="Left Button" elseif fire=256 then text$="L2 Button" elseif fire=512 then text$="R2 Button" elseif fire=1024 then text$="L1 Button" elseif fire=2048 then text$="R1 Button" elseif fire=4096 then text$="TRIANGLE" elseif fire=8192 then text$="CIRCLE" elseif fire=16384 then text$="CROSS" elseif fire=32768 then text$="SQUARE" end if text 455,415,text$ setrgb 1,0,0,255 rectangle 50,450 to 590,475 setrgb 1,0,255,0 text 300,465,"D O N E" setrgb 1,140,80,80 rectangle 49,199 to 401,226 rxa = 49 rya = 199 rxb = 401 ryb = 226 pos = 1 3 wait 0.1 k = peek("port1") l = peek("port2") if k=64 or l=64 or k=128 or l=128 then REM down if pos = 1 then pos = 2 clear rectangle 49,199 to 401,226 rectangle 49,249 to 401,276 elseif pos = 2 then pos = 3 clear rectangle 49,249 to 401,276 rectangle 49,299 to 401,326 elseif pos = 3 then pos = 4 clear rectangle 49,299 to 401,326 rectangle 49,349 to 401,376 elseif pos = 4 then pos = 5 clear rectangle 49,349 to 401,376 rectangle 49,399 to 401,426 elseif pos = 5 then pos = 6 clear rectangle 49,399 to 401,426 rectangle 49,449 to 591,476 elseif pos = 6 then pos = 1 clear rectangle 49,449 to 591,476 rectangle 49,199 to 401,226 end if elseif k=16 or l=16 or k=32 or l=32 then REM up if pos = 1 then pos = 6 clear rectangle 49,199 to 401,226 rectangle 49,449 to 591,476 elseif pos = 2 then pos = 1 clear rectangle 49,249 to 401,276 rectangle 49,199 to 401,226 elseif pos = 3 then pos = 2 clear rectangle 49,299 to 401,326 rectangle 49,249 to 401,276 elseif pos = 4 then pos = 3 clear rectangle 49,349 to 401,376 rectangle 49,299 to 401,326 elseif pos = 5 then pos = 4 clear rectangle 49,399 to 401,426 rectangle 49,349 to 401,376 elseif pos = 6 then pos = 5 clear rectangle 49,449 to 591,476 rectangle 49,399 to 401,426 end if elseif k=16384 or l=16384 then REM ok wait 0.5 if pos = 1 then clear rectangle 49,199 to 401,226 rectangle 449,199 to 591,226 41 wait 0.1 m = peek("port1") cu = m if m=0 then goto 41 end if setrgb 1,0,0,0 fill rectangle 451,201 to 589,224 setrgb 1,140,80,80 if cu=1 then text$="Select Button" elseif cu=2 then text$="L3 Button" elseif cu=4 then text$="R3 Button" elseif cu=8 then text$="Start Button" elseif cu=16 then text$="Up Button" elseif cu=32 then text$="Right Button" elseif cu=64 then text$="Down Button" elseif cu=128 then text$="Left Button" elseif cu=256 then text$="L2 Button" elseif cu=512 then text$="R2 Button" elseif cu=1024 then text$="L1 Button" elseif cu=2048 then text$="R1 Button" elseif cu=4096 then text$="TRIANGLE" elseif cu=8192 then text$="CIRCLE" elseif cu=16384 then text$="CROSS" elseif cu=32768 then text$="SQUARE" end if text 455,215,text$ clear rectangle 449,199 to 591,226 rectangle 49,199 to 401,226 elseif pos = 2 then clear rectangle 49,249 to 401,276 rectangle 449,249 to 591,276 42 wait 0.1 m = peek("port1") cd = m if m=0 then goto 42 end if setrgb 1,0,0,0 fill rectangle 451,251 to 589,274 setrgb 1,140,80,80 if cd=1 then text$="Select Button" elseif cd=2 then text$="L3 Button" elseif cd=4 then text$="R3 Button" elseif cd=8 then text$="Start Button" elseif cd=16 then text$="Up Button" elseif cd=32 then text$="Right Button" elseif cd=64 then text$="Down Button" elseif cd=128 then text$="Left Button" elseif cd=256 then text$="L2 Button" elseif cd=512 then text$="R2 Button" elseif cd=1024 then text$="L1 Button" elseif cd=2048 then text$="R1 Button" elseif cd=4096 then text$="TRIANGLE" elseif cd=8192 then text$="CIRCLE" elseif cd=16384 then text$="CROSS" elseif cd=32768 then text$="SQUARE" end if text 455,265,text$ clear rectangle 449,249 to 591,276 rectangle 49,249 to 401,276 elseif pos = 3 then clear rectangle 49,299 to 401,326 rectangle 449,299 to 591,326 43 wait 0.1 m = peek("port1") cl = m if m=0 then goto 43 end if setrgb 1,0,0,0 fill rectangle 451,301 to 589,324 setrgb 1,140,80,80 if cl=1 then text$="Select Button" elseif cl=2 then text$="L3 Button" elseif cl=4 then text$="R3 Button" elseif cl=8 then text$="Start Button" elseif cl=16 then text$="Up Button" elseif cl=32 then text$="Right Button" elseif cl=64 then text$="Down Button" elseif cl=128 then text$="Left Button" elseif cl=256 then text$="L2 Button" elseif cl=512 then text$="R2 Button" elseif cl=1024 then text$="L1 Button" elseif cl=2048 then text$="R1 Button" elseif cl=4096 then text$="TRIANGLE" elseif cl=8192 then text$="CIRCLE" elseif cl=16384 then text$="CROSS" elseif cl=32768 then text$="SQUARE" end if text 455,315,text$ clear rectangle 449,299 to 591,326 rectangle 49,299 to 401,326 elseif pos = 4 then clear rectangle 49,349 to 401,376 rectangle 449,349 to 591,376 44 wait 0.1 m = peek("port1") cr = m if m=0 then goto 44 end if setrgb 1,0,0,0 fill rectangle 451,351 to 589,374 setrgb 1,140,80,80 if cr=1 then text$="Select Button" elseif cr=2 then text$="L3 Button" elseif cr=4 then text$="R3 Button" elseif cr=8 then text$="Start Button" elseif cr=16 then text$="Up Button" elseif cr=32 then text$="Right Button" elseif cr=64 then text$="Down Button" elseif cr=128 then text$="Left Button" elseif cr=256 then text$="L2 Button" elseif cr=512 then text$="R2 Button" elseif cr=1024 then text$="L1 Button" elseif cr=2048 then text$="R1 Button" elseif cr=4096 then text$="TRIANGLE" elseif cr=8192 then text$="CIRCLE" elseif cr=16384 then text$="CROSS" elseif cr=32768 then text$="SQUARE" end if text 455,365,text$ clear rectangle 449,349 to 591,376 rectangle 49,349 to 401,376 elseif pos = 5 then clear rectangle 49,399 to 401,426 rectangle 449,399 to 591,426 45 wait 0.1 m = peek("port1") cf = m if m=0 then goto 45 end if setrgb 1,0,0,0 fill rectangle 451,401 to 589,424 setrgb 1,140,80,80 if cf=1 then text$="Select Button" elseif cf=2 then text$="L3 Button" elseif cf=4 then text$="R3 Button" elseif cf=8 then text$="Start Button" elseif cf=16 then text$="Up Button" elseif cf=32 then text$="Right Button" elseif cf=64 then text$="Down Button" elseif cf=128 then text$="Left Button" elseif cf=256 then text$="L2 Button" elseif cf=512 then text$="R2 Button" elseif cf=1024 then text$="L1 Button" elseif cf=2048 then text$="R1 Button" elseif cf=4096 then text$="TRIANGLE" elseif cf=8192 then text$="CIRCLE" elseif cf=16384 then text$="CROSS" elseif cf=32768 then text$="SQUARE" end if text 455,415,text$ rectangle 49,399 to 401,426 clear rectangle 449,399 to 591,426 elseif pos = 6 then up = cu down = cd left = cl right = cr fire = cf GOTO mainmenu end if end if goto 3 GOTO after_config REM ====================================================== REM ====================================================== LABEL exitbox setrgb 1,0,0,0 fill rectangle 100,100 to 540,300 setrgb 1,0,0,255 rectangle 99,99 to 540,300 setrgb 1,0,255,0 text 120,135,"Are you sure you want to exit?" setrgb 1,0,0,255 rectangle 160,160 to 480,200 rectangle 160,230 to 480,270 setrgb 1,0,255,0 text 295,185,"Y E S" text 305,255,"N O" setrgb 1,140,80,80 rectangle 159,229 to 481,271 expos=2 5 wait 0.1 i = peek("port1") s = peek("port2") if i=16 or s=16 or i=128 or s=128 then REM up if expos=1 then expos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif expos=2 then expos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=64 or s=64 or i=32 or s=32 then REM up if expos=1 then expos = 2 clear rectangle 159,159 to 481,201 rectangle 159,229 to 481,271 elseif expos=2 then expos = 1 clear rectangle 159,229 to 481,271 rectangle 159,159 to 481,201 end if elseif i=16384 or s=16384 then REM ok if expos=1 then END elseif expos=2 then GOTO mainmenu end if end if goto 5 GOTO after_exitbox REM ======================================================