RANDOMIZE TIMER REM WASHAW GAMES GAMEPAD 1 BG 1 DIM GLOBAL XDIR(3) DIM GLOBAL YDIR(3) FOR I=0 TO 3 READ XDIR(I) READ YDIR(I) NEXT I DATA 0,-1,1,0,0,1,-1,0 RANDOMIZE TIMER ATTR(0,,,,) FOR IY=0 TO 28 STEP 6 FOR IX=0 TO 28 STEP 6 CELL IX,IY,1 IF INT(RND*2)=0 THEN FOR I=1 TO 3+INT(RND*3) CELL IX+I,IY,1 NEXT I ELSE FOR I=1 TO 3+INT(RND*3) CELL IX,IY+I,1 NEXT I END IF NEXT IX NEXT IY GLOBAL PX GLOBAL PY PX=10 PY=6 PD=0 PW=0 ATTR(2,,,,) REM CALL PUTIT(66) CALL PUTIT(70) CALL PUTIT(74) PLAY 3,74,30 SOUND 5 PLAY 2,70,30 SOUND 5 GLOBAL XSCR GLOBAL YSCR XSCR=0 YSCR=0 GLOBAL WFIRE WFIRE=0 GLOBAL WFIRE2 WFIRE2=0 DIM GLOBAL NEEDQUEEN(3) GLOBAL ILIFE ILIFE=5 INESTS=1 CALL PUTPLAYER DO BG 0 ATTR(1,,,,) FOR I=1 TO 5 IF ILIFE>=I THEN CELL I-1,0,33 ELSE CELL I-1,0,0 IF INESTS>=I THEN CELL 20-I,0,49 ELSE CELL 20-I,0,0 NEXT I BG 1 CALL DOPLAYER(PX,PY,PD,PW) FOR I=1 TO 3 IF NEEDQUEEN(I)=0 THEN NEEDQUEEN(I)=1 NEXT I INESTS=0 FOR IY=0 TO 31 FOR IX=0 TO 31 C=CELL.C(IX,IY) A=CELL.A(IX,IY) IF C>=66 AND C<=77 THEN CALL DONEST(IX,IY,C,A) INESTS=INESTS+1 END IF IF C>=18 AND C<=29 THEN CALL DOCOMPUTER(IX,IY,C,A,0) IF C>=34 AND C<=45 THEN CALL DOCOMPUTER(IX,IY,C,A,1) IF C>=50 AND C<=61 THEN CALL DOCOMPUTER(IX,IY,C,A,2) IF C>=6 AND C<=9 THEN CALL DOBULLETS(IX,IY,C,1) IF C>=82 AND C<=85 THEN CALL DOBULLETS(IX,IY,C,2) IF C>=10 AND C<=13 THEN CALL DOBULLETS2(IX,IY,C) NEXT IX NEXT IY FOR I=1 TO 3 IF NEEDQUEEN(I)=1 THEN NEEDQUEEN(I)=2 NEXT I VWAIT=(VWAIT+1) MOD 5 IF VWAIT=0 THEN WAIT VBL LOOP SUB DONEST(X,Y,C,A) IF C<70 THEN CB=66 RNEST=50 NEEDQUEEN(1)=0 ELSE IF C<74 THEN CB=70 RNEST=75 NEEDQUEEN(2)=0 ELSE CB=74 RNEST=100 NEEDQUEEN(3)=0 END IF RQUEEN=INT(RNEST/10) D=INT(RND*4) IF INT(RND*RNEST)<5 THEN CX=X+INT(RND*3)-1 CY=Y+INT(RND*3)-1 CALL WRAPAROUND(CX,CY) CC=CELL.C(CX,CY) IF INT(RND*RQUEEN)=0 THEN QUEEN=16 ELSE QUEEN=0 IF CC=0 THEN ATTR A IF INT(RND*50)=0 THEN CELL CX,CY,CB-(16*3)+32+D ELSE CELL CX,CY,CB-(16*3)+QUEEN+D END IF END IF END IF BNEST=C-CB IF BNEST>0 AND INT(RND*RNEST)=0 THEN ATTR A CELL X,Y,C-1 END IF END SUB SUB PUTIT(C) CC=C WHILE CC=C X=INT(RND*32) Y=INT(RND*32) CH=CELL.C(X,Y) IF CH=0 THEN CELL X,Y,C CC=0 END IF WEND END SUB SUB PUTPLAYER CC=999 WHILE CC=999 X=INT(RND*32) Y=INT(RND*32) CH=CELL.C(X,Y) IF CH=0 THEN ATTR (1,,,,) CELL X,Y,2 PX=X PY=Y XSCR=X*8-80 YSCR=Y*8-64 SCROLL 1,XSCR,YSCR CC=0 END IF WEND END SUB SUB DOPLAYER(X,Y,D,W) IF WFIRE>0 THEN WFIRE=WFIRE-1 IF WFIRE2>0 THEN WFIRE2=WFIRE2-1 W=(W+1) MOD 2 IF W=0 THEN DD=9 IF BUTTON(0,0) AND WFIRE=0 THEN ATTR(1,,,,) WFIRE=20 CX=X+XDIR(D) CY=Y+YDIR(D) CALL WRAPAROUND(CX,CY) CC=CELL.C(CX,CY) IF CC=0 THEN CELL CX,CY,82+D PLAY 2,60,5 SOUND 2 ELSE IF CC>=18 AND CC<=61 THEN CELL CX,CY,0 PLAY 2,60,5 SOUND 2 END IF END IF IF BUTTON(0,1) AND WFIRE2=0 THEN ATTR(1,,,,) FD=(D+2) MOD 4 WFIRE2=10 CX=X+XDIR(FD) CY=Y+YDIR(FD) CALL WRAPAROUND(CX,CY) CC=CELL.C(CX,CY) IF CC=0 THEN CELL CX,CY,6+FD PLAY 2,60,5 SOUND 2 ELSE IF CC>=18 AND CC<=61 THEN CELL CX,CY,0 PLAY 2,60,5 SOUND 2 END IF END IF IF LEFT(0) THEN DD=3 IF DOWN(0) THEN DD=2 IF RIGHT(0) THEN DD=1 IF UP(0) THEN DD=0 IF DD<9 THEN PLAY 0,30,5 SOUND 0 D=DD ATTR(1,,,,) CELL X,Y,2+D CX=X+XDIR(D) CY=Y+YDIR(D) CALL WRAPAROUND(CX,CY) IF CELL.C(CX,CY)=0 THEN CELL X,Y,0 X=CX Y=CY ATTR(1,,,,) CELL X,Y,2+D XSCR=XSCR+XDIR(D)*8 YSCR=YSCR+YDIR(D)*8 SCROLL 1,XSCR,YSCR END IF END IF END IF END SUB SUB WRAPAROUND(X,Y) IF X<0 THEN X=31 IF X>31 THEN X=0 IF Y<0 THEN Y=31 IF Y>31 THEN Y=0 END SUB SUB DOBULLETS(X,Y,C,T) ATTR(1,,,,) IF T=1 THEN D=C-6 ELSE D=C-82 IF INT(RND*2)=0 THEN CELL X,Y,0 CX=X+XDIR(D) CY=Y+YDIR(D) CALL WRAPAROUND(CX,CY) CC=CELL.C(CX,CY) IF CC=0 THEN CELL CX,CY,C ELSE IF CC>=18 AND CC<=61THEN PLAY 1,30,5 SOUND 1 CELL CX,CY,0 ELSE IF (CC>=66 AND CC<=77) AND T=2 THEN ATTR(2,,,,) IF CC<70 THEN CB=66 ELSE IF CC<74 THEN CB=70 ELSE CB=74 DD=CC-CB DD=DD+1 IF DD=4 THEN CELL CX,CY,0 PLAY 3,20,60 SOUND 3 ELSE CELL CX,CY,CB+DD PLAY 3,25,5 SOUND 3 END IF END IF END IF END SUB SUB DOBULLETS2(X,Y,C) ATTR(1,,,,) D=C-10 IF INT(RND*2)=0 THEN CELL X,Y,0 CX=X+XDIR(D) CY=Y+YDIR(D) CALL WRAPAROUND(CX,CY) CC=CELL.C(CX,CY) IF CC=0 THEN CELL CX,CY,C ELSE IF (CC>=2 AND CC<=5) THEN CELL CX,CY,0 ILIFE=ILIFE-1 PLAY 3,80,30 SOUND 6 WAIT 60 IF ILIFE>=0 THEN CALL PUTPLAYER ELSE END END IF END IF END SUB SUB DOCOMPUTER(X,Y,C,A,Q) IF Q=1 THEN C=C-16 IF Q=2 THEN C=C-32 IF Q<2 THEN QUEEN=Q*16 ELSE QUEEN=0 IF C<22 THEN CB=18 QQ=1 ELSE IF C<26 THEN CB=22 QQ=2 ELSE CB=26 QQ=3 END IF D=C-CB IF INT(RND*30)=0 AND Q=1 THEN ATTR (1,,,,) CX=X+XDIR(D) CY=Y+YDIR(D) CALL WRAPAROUND(CX,CY) CC=CELL.C(CX,CY) IF CC=0 THEN CELL CX,CY,10+D END IF END IF ATTR A IF INT(RND*3)=0 THEN IF Q=2 THEN DX=0 DY=0 IF INT(RND*2)=0 THEN DX=SGN(PX-X) ELSE DY=SGN(PY-Y) IF DY=-1 THEN D=0 ELSE IF DX=1 THEN D=1 ELSE IF DY=1 THEN D=2 ELSE D=3 CX=X+DX CY=Y+DY CALL WRAPAROUND(CX,CY) CC=CELL.C(CX,CY) IF CC=0 THEN CELL X,Y,0 CELL CX,CY,CB+D+32 ELSE IF CC>=2 AND CC<=5 THEN CELL CX,CY,0 ILIFE=ILIFE-1 PLAY 3,80,30 SOUND 6 WAIT 60 IF ILIFE>=0 THEN CALL PUTPLAYER ELSE END END IF ELSE IF INT(RND*5)=0 THEN IF INT(RND*10)=0 THEN D=D+INT(RND*3)-1 IF D>3 THEN D=0 IF D=-1 THEN D=3 END IF CX=X+XDIR(D) CY=Y+YDIR(D) CALL WRAPAROUND(CX,CY) IF CELL.C(CX,CY)=0 THEN CELL X,Y,0 X=CX Y=CY CELL X,Y,CB+D+QUEEN ELSE D=D+INT(RND*3)-1 IF D>3 THEN D=0 IF D=-1 THEN D=3 CELL X,Y,CB+D+QUEEN END IF END IF END IF IF NEEDQUEEN(QQ)=2 AND INT(RND*100)=0 AND Q=1 THEN ATTR A CELL X,Y,CB+(16*3) PLAY 3,CB+(16*3),30 SOUND 5 END IF END SUB #1:MAIN PALETTES+ 031B1707003F2A1A00303C0C003F3C00 0030253F000C193F0003163F0033263F #2:MAIN CHARACTERS 00000000000000000000000000000000 AA55AA55AA55AA55FFAAFFAAFFAAFFAA 0018183C5A180000000081A5C3818181 0010083E3E081000FC100800000810FC 0000185A3C181800818181C3A5810000 0008107E7E1008003F0810000010083F 00001824000000000000000000000000 00000804040800000000000000000000 00000000241800000000000000000000 00001020201000000000000000000000 00001028002800280000000000000000 0000A804A80000000000000000000000 14001400140800000000000000000000 00000015201500000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0816199E79986810485050BE7D0A0A14 001818183C66C3810000000000000000 C060301E1E3060C00000000000000000 81C3663C181818000000000000000000 03060C78780C06030000000000000000 0000000000000000001818183C66C381 0000000000000000C060301E1E3060C0 000000000000000081C3663C18181800 000000000000000003060C78780C0603 001818183C66C381001818183C66C381 C060301E1E3060C0C060301E1E3060C0 81C3663C1818180081C3663C18181800 03060C78780C060303060C78780C0603 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00001818180000000000002424240000 00183C5A992442810000000000000000 9048241E1E2448900000000000000000 814224995A3C18000000000000000000 09122478782412090000000000000000 000000000000000000183C5A99244281 00000000000000009048241E1E244890 0000000000000000814224995A3C1800 00000000000000000912247878241209 00183C5A9924428100183C5A99244281 9048241E1E2448909048241E1E244890 814224995A3C1800814224995A3C1800 09122478782412090912247878241209 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00001824241800000000183C3C180000 005ADBFFC3C342000000000000000000 3C7E080E0E087E3C0000000000000000 0042C3C3FFDB5A000000000000000000 3C7E107070107E3C0000000000000000 0000000000000000005ADBFFC3C34200 00000000000000003C7E080E0E087E3C 00000000000000000042C3C3FFDB5A00 00000000000000003C7E107070107E3C 005ADBFFC3C34200005ADBFFC3C34200 3C7E080E0E087E3C3C7E080E0E087E3C 0042C3C3FFDB5A000042C3C3FFDB5A00 3C3E107070107E3C3C3E107070107E3C 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3C7EFFE7E7FF7E3C0000000000000000 003C7E66667E3C000000000000000000 00183C66663C18000000000000000000 00001824241800000000000000000000 00000000000000003C7EFFE7E7FF7E3C 0000000000000000003C7E66667E3C00 000000000000000000183C66663C1800 00000000000000000000182424180000 3C7EFFE7E7FF7E3C3C7EFFE7E7FF7E3C 003C7E66667E3C00003C7E66667E3C00 00183C66663C180000183C66663C1800 00001824241800000000182424180000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00001824001824000000000000000000 00004824244800000000000000000000 00241800241800000000000000000000 00001224241200000000000000000000 #15:MAIN SOUND 30000EEE000000000D00F06600FE0C00 0800606614A900002800309901FF0000 2800209900FF0000080000CC13FF0F00 0800000F14F600000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000