RANDOMIZE TIMER GAMEPAD 2 REM WAS8BIT GLOBAL CANDLE,BOW,ARROW,HEALTH DIM GLOBAL Z(25) PAL 4 CLS PRINT "===================="; PRINT "DND CLOUDY MOUNTAIN "; PRINT "===================="; PRINT " "; PRINT " "; PRINT "(A) + (A) = NEW GAME"; PRINT " "; PRINT " "; PRINT "(B) + (B) = CONTINUE"; PRINT " "; PRINT " "; PRINT " "; PRINT " "; PRINT " "; PRINT " "; PRINT " "; VANI=0 PX=0 PY=0 ICOM=0 WHILE ICOM=0 IF BUTTON(0,0) AND BUTTON(1,0) THEN ICOM=1 IF BUTTON(0,1) AND BUTTON(1,1) THEN ICOM=2 WAIT VBL WEND CLS IF ICOM=2 THEN COPY $E000,$1000 TO $9000 FOR X=0 TO 25 C=CELL.C(X,0)-208 IF C<0 THEN C=0 Z(X)=C NEXT X HEALTH=Z(1)*100+Z(2)*10+Z(3) CANDLE=Z(6)*100+Z(7)*10+Z(8) BOW=Z(11)*100+Z(12)*10+Z(13) ARROW=Z(16)*100+Z(17)*10+Z(18) PX=Z(20)*10*8+Z(21)*8 PY=Z(22)*10*8+Z(23)*8 REM PX=(CELL.C(18,14)-208)*10*8+(CELL.C(19,14)-208)*8 REM PY=(CELL.C(18,15)-208)*10*8+(CELL.C(19,15)-208)*8 TRACE "R",PX\8,PY\8 PF=1 CALL STATS(PX,PY) GOTO GO_HOME END IF REM MAKE MAIN MAP... PX=8*2 PY=8*8 BG 1 PAL 0 FOR R=1 TO 16 STEP 0.5 FOR A=0 TO (2*PI) STEP 0.01 X=9+R*COS(A) Y=7+R*SIN(A) IF RND(50)=1 AND X>5 THEN CELL X,Y,16+RND(7) NEXT A NEXT R FOR R=1 TO 15 STEP 1 FOR A=0 TO (2*PI) STEP 0.025 X=9+R*COS(A) Y=7+R*SIN(A) IF RND(50)=1 AND X>1 THEN IF X<5 THEN CELL X,Y,24 ELSE CELL X,Y,24+RND(2) END IF NEXT A NEXT R FOR I=1 TO 33 X=RND(3) Y=RND(15) CELL X,Y,4+RND(1) NEXT I X=4+RND(3) C1=32+RND(1) C2=32+RND(1) FOR Y=2 TO 7 CELL X,Y,C1 NEXT Y FOR Y=8 TO 13 CELL X,Y,C2 NEXT Y X=9+RND(2) C1=32+RND(1) C2=32+RND(1) FOR Y=0 TO 6 CELL X,Y,C1 NEXT Y FOR Y=9 TO 15 CELL X,Y,C2 NEXT Y X=13+RND(3) C1=32+RND(1) C2=32+RND(1) FOR Y=2 TO 7 CELL X,Y,C1 NEXT Y FOR Y=8 TO 13 CELL X,Y,C2 NEXT Y CELL 2,7,3 CELL 2,8,0 PAL 3 CELL 17,7,9 WAIT VBL CANDLE=0 BOW=0 ARROW=0 HEALTH=300 CALL STATS(PX,PY) COPY $9000,$1000 TO $E000 CLS GO_HOME: COPY $E000,$1000 TO $9000 PF=1 SPRITE 0,PX,PY,PF SPRITE 1,PX,PY,31 MPX=0 MPY=0 DO REM GET MOVEMENT BG 1 PAL 0 IF MPX=0 AND MPY=0 THEN IF LEFT(0) AND PX\8>0 THEN MPX=-8 IF RIGHT(0) AND PX\8<19 THEN MPX=8 IF UP(0) AND PY\8>0 THEN MPY=-8 IF DOWN(0) AND PY\8<15 THEN MPY=8 IF MPX<>0 OR MPY<>0 THEN C=CELL.C((PX+MPX)\8,(PY+MPY)\8) IF C=0 OR C=6 THEN GO=1 ELSE GO=0 IF GO=1 THEN CALL STATS(PX+MPX,PY+MPY) END IF END IF REM DO MOVEMENT IF MPX<>0 OR MPY<>0 THEN XFLIP=(SGN(MPX)-1)/-2 SPRITE 0 FLIP XFLIP,0 PTIME=(PTIME+1) MOD 5 IF PTIME=0 THEN ADD PF,1,1 TO 2 PX=PX+SGN(MPX) PY=PY+SGN(MPY) SPRITE 0,PX,PY,PF IF MPX<0 THEN INC MPX ELSE IF MPX>0 THEN DEC MPX IF MPY<0 THEN INC MPY ELSE IF MPY>0 THEN DEC MPY IF MPX=0 AND MPY=0 THEN IF GO=0 THEN IF C=4 OR C=5 THEN PAL 1 CELL PX\8,PY\8,C+3 SPRITE OFF 0 IWAIT=0 BG 0 TEXT 0,0,"(A)ENTER (B)NO" WHILE IWAIT=0 IF BUTTON(0,0) THEN BG 1 PAL 0 CELL PX\8,PY\8,6 CALL STATS(PX,PY) FOR I=80 TO 60 STEP -1 PLAY 1,I,1 SOUND 1 WAIT VBL NEXT I CLS 0 OX=SPRITE.X(1) OY=SPRITE.Y(1) SPRITE OFF CALL SMALLCAVE(C) SPRITE 1,OX,OY, REM BG 1 REM PAL 0 REM CELL PX\8,PY\8,6 REM PLAY 1,70,9 SOUND 1 IWAIT=1 CLS 0 ELSE IF BUTTON(0,1) THEN BG 1 PAL 0 CELL PX\8,PY\8,C REM PLAY 1,70,9 SOUND 1 IWAIT=1 CLS 0 END IF PLAY 0,20,1 SOUND 0 WEND ELSE IF C=24 OR C=25 OR C=26 THEN PAL 2 CELL PX\8,PY\8,C+4 SPRITE OFF 0 IWAIT=0 BG 0 TEXT 0,0,"(A)ENTER (B)NO" WHILE IWAIT=0 IF BUTTON(0,0) THEN FOR I=80 TO 60 STEP -1 PLAY 1,I,1 SOUND 1 WAIT VBL NEXT I CLS 0 ELSE IF BUTTON(0,1) THEN BG 1 PAL 0 CELL PX\8,PY\8,C REM PLAY 1,70,9 SOUND 1 IWAIT=1 CLS 0 END IF REM PLAY 0,20,1 SOUND 0 WEND ELSE IF C=32 OR C=33 OR (C>=16 AND C<=23) THEN BG 0 IF C=32 THEN TEXT 0,0,"NO BOAT" IF C=33 THEN TEXT 0,0,"NO,KEYS" IF C>=16 AND C<=23 THEN TEXT 0,0,"NO AXE" WAIT 30 CLS 0 END IF PX=SPRITE.X(1) PY=SPRITE.Y(1) SPRITE 0,PX,PY, ELSE SPRITE 1,PX,PY, END IF END IF END IF END IF VTIME=(VTIME+1) MOD 60 IF VTIME=0 THEN ADD VANI,1,10 TO 15 COPY $8000+VANI*16,16 TO $8000+9*16 END IF WAIT VBL LOOP SUB SMALLCAVE(CTYPE) CGET=33+CTYPE MPX=0 MPY=0 PX=9*8 PY=7*8 PF=0 REM COPY $9000,$1000 TO $E000 PALETTE 0,21,,, CLS BG 1 PAL 1 BG FILL 0,1 TO 19,15 CHAR 35 FOR I=0 TO 5 IF I=0 THEN CX=9 CY=7 ELSE CX=RND(19) CY=RND(15) END IF FOR R=0 TO 7 FOR A=0 TO PI*2 STEP 0.1 IF RND(R*2)=0 THEN CELL CX+COS(A)*R,CY+SIN(A)*R,0 NEXT A NEXT R NEXT I BG FILL 0,1 TO 19,0 CHAR 35 PAL 1 FOR I=1 TO 10 CELL RND(17)+1,RND(13)+1,CGET NEXT I BG 0 PAL 0 BG FILL 0,0 TO 19,15 CHAR 34 CALL LIGHT(9,7) SPRITE 0,9*8,7*8, SPRITE 1,9*8,7*8, IEXIT=0 BG 1 C=99 CELL 9,6,36 CALL STAT WHILE IEXIT=0 REM DIG DIRT XDIG=0 YDIG=0 BG 1 IF LEFT(1) AND CELL.C(PX\8-1,PY\8)=35 THEN XDIG=-1 IF RIGHT(1) AND CELL.C(PX\8+1,PY\8)=35 THEN XDIG=1 IF UP(1) AND CELL.C(PX\8,PY\8-1)=35 AND PX\8>1 THEN YDIG=-1 IF DOWN(1) AND CELL.C(PX\8,PY\8+1)=35 THEN YDIG=1 IF XDIG<>0 OR YDIG<>0 THEN CELL PX\8+XDIG,PY\8+YDIG,0 PLAY 2,70,90 SOUND 2 DEC HEALTH CALL STAT WAIT 30 END IF REM GET MOVEMENT IF MPX=0 AND MPY=0 THEN IF LEFT(0) AND PX\8>0 THEN MPX=-8 IF RIGHT(0) AND PX\8<19 THEN MPX=8 IF UP(0) AND PY\8>1 THEN MPY=-8 IF DOWN(0) AND PY\8<15 THEN MPY=8 C=CELL.C((PX+MPX)\8,(PY+MPY)\8) IF C=0 THEN GO=1 ELSE GO=0 IF MPX<>0 OR MPY<>0 THEN CALL LIGHT((PX+MPX)\8,(PY+MPY)\8) END IF REM DO MOVEMENT IF MPX<>0 OR MPY<>0 THEN XFLIP=(SGN(MPX)-1)/-2 SPRITE 0 FLIP XFLIP,0 PTIME=(PTIME+1) MOD 5 IF PTIME=0 THEN ADD PF,1,1 TO 2 PX=PX+SGN(MPX) PY=PY+SGN(MPY) SPRITE 0,PX,PY,PF IF MPX<0 THEN INC MPX ELSE IF MPX>0 THEN DEC MPX IF MPY<0 THEN INC MPY ELSE IF MPY>0 THEN DEC MPY IF MPX=0 AND MPY=0 THEN REM CALL LIGHT((PX+MPX)\8,(PY+MPY)\8) IF GO=0 THEN IF C=CGET THEN PAL 0 CELL PX\8,PY\8,0 PLAY 1,70,1 IF CGET=37 THEN ADD CANDLE,1 CALL STAT ELSE ADD BOW,1 CALL STAT END IF END IF IF C=36 THEN PAL 1 CELL PX\8,PY\8,C SPRITE OFF 0 IWAIT=0 BG 0 PAL 4 TEXT 0,0,"(A)EXIT (B)NO " WHILE IWAIT=0 IF BUTTON(0,0) THEN IEXIT=1 IWAIT=1 ELSE IF BUTTON(0,1) THEN BG 1 PAL 0 CELL PX\8,PY\8,C PX=SPRITE.X(1) PY=SPRITE.Y(1) SPRITE 0,PX,PY, PLAY 0,70,90 IWAIT=1 END IF PLAY 0,20,1 WEND CALL STAT ELSE PX=SPRITE.X(1) PY=SPRITE.Y(1) SPRITE 0,PX,PY, END IF ELSE SPRITE 1,PX,PY, END IF END IF END IF END IF WAIT VBL WEND COPY $E000,$1000 TO $9000 PALETTE 0,12,,, END SUB SUB LIGHT(X,Y) BG 0 CR=CANDLE\5 IF CR>3 THEN CR=3 FOR A=0 TO PI*2 STEP PI/4 ILIGHT=2 FOR R=0 TO CR XX=X+R*COS(A) YY=Y+R*SIN(A) BG 0 IF ILIGHT>0 AND YY>=1 THEN CELL XX,YY,0 BG 1 IF YY>=1 THEN C=CELL.C(XX,YY) IF C>0 THEN DEC ILIGHT NEXT R NEXT A END SUB SUB STAT BG 0 PAL 4 TEXT 0,0,"#--- $--- %--- &--- " NUMBER 1,0,HEALTH,3 NUMBER 6,0,CANDLE,3 NUMBER 11,0,BOW,3 NUMBER 16,0,ARROW,3 BG 1 END SUB SUB STATS(PX,PY) BG 0 PAL 4 TEXT 0,0,"#--- $--- %--- &--- " NUMBER 1,0,HEALTH,3 NUMBER 6,0,CANDLE,3 NUMBER 11,0,BOW,3 NUMBER 16,0,ARROW,3 NUMBER 20,0,PX\8,2 NUMBER 22,0,PY\8,2 REM NUMBER 18,14,PX\8,2 REM NUMBER 18,15,PY\8,2 COPY $9000,$1000 TO $E000 WAIT VBL PLAY 3,30,1 SOUND 5 TRACE "S",PX\8,PY\8 END SUB #1:MAIN PALETTES 0C080B0000082429002A3027003F3000 002A003F003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 80000000000000000000000000000000 00001018102800000000101810280000 00001018101000000000101810100000 001C3E7F3E3E0000001C3E7F2A3A0000 0000081C3E0000000000081C36000000 0000081C3E0000000000081C36000000 00000800220000000000080022000000 0000081C3E0000000000081C36000000 00000000080000000000081C36000000 0000183E7FFFFFF70000181C3E7FFFF7 0000002E7FFFFFF70000181C3E7FFFF7 0000002667CFDFB70000181C3E7FFFF7 0000183E7FFFFFF70000181C3E7FFFF7 000000367FFFFFF70000181C3E7FFFF7 000000367BFBFDF60000181C3E7FFFF7 0000183E7FFFFFF70000181C3E7FFFF7 0070702E0EE4E0400000000000000000 0E0E7470270702000000000000000000 38381707727020000000000000000000 001C1CE8E04E0E040000000000000000 00E0EE4E043838100000000000000000 077772201C1C08000000000000000000 000EEEE4403838100000000000000000 707727021C1C08000000000000000000 0000081C3E7FF7000000081C3E7FF700 0000081C3E7FF7000000081C3E7FF700 0000081C3E7FF7000000081C3E7FF700 001028000042A500001028000042A500 0000081C3E7FF7000000000000000000 0000081C3E7FF7000000081C3E7FF700 00000000000000000000081C3E7FF700 3C4281818181423C0000000000000000 200410100424080018180C0C18183030 181C3C300C3C3818181C3C300C3C3818 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0000000000000000FFFFFFFFFFFFFFFF 00243C243C243C2400243C243C243C24 000018243C3C1800000018243C3C1800 00000000000000000008101010100800 00000010281000000000001028100000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000000FFFFFFFFFFFFFFFF 0018181818001800FFE7E7E7E7FFE7FF 006C6C2400000000FF9393DBFFFFFFFF 0000287C7C381000FFFFFFFFFFFFFFFF 000018243C3C1800FFFFFFFFFFFFFFFF 0008101010100800FFFFFFFFFFFFFFFF 0010387C10101000FFFFFFD7FFFFFFFF 0018183000000000FFE7E7CFFFFFFFFF 000C183030180C00FFF3E7CFCFE7F3FF 0030180C0C183000FFCFE7F3F3E7CFFF 000024187E182400FFFFDBE781E7DBFF 000018187E181800FFFFE7E781E7E7FF 0000000018183000FFFFFFFFE7E7CFFF 000000007E000000FFFFFFFF81FFFFFF 0000000000181800FFFFFFFFFFE7E7FF 00060C1830604000FFF9F3E7CF9FBFFF 003C666E76663C00FFC399918999C3FF 0018381818187E00FFE7C7E7E7E781FF 003C660C18307E00FFC399F3E7CF81FF 003C660C06663C00FFC399F3F999C3FF 0066667E06060600FF999981F9F9F9FF 007E607C06067C00FF819F83F9F983FF 001C307C66663C00FFE3CF839999C3FF 007E060C18303000FF81F9F3E7CFCFFF 003C663C66663C00FFC399C39999C3FF 003C663E06663C00FFC399C1F999C3FF 0000001800180000FFFFFFE7FFE7FFFF 0000001800183000FFFFFFE7FFE7CFFF 00000C1830180C00FFFFF3E7CFE7F3FF 0000007E007E0000FFFFFF81FF81FFFF 000030180C183000FFFFCFE7F3E7CFFF 003C660C18001800FFC399F3E7FFE7FF 003C666E6E603C00FFC39991919FC3FF 00183C667E666600FFE7C399819999FF 007C667C66667C00FF839983999983FF 003C666060663C00FFC3999F9F99C3FF 00786C66666C7800FF879399999387FF 007E607860607E00FF819F879F9F81FF 007E607860606000FF819F879F9F9FFF 003C606E66663C00FFC39F919999C3FF 0066667E66666600FF999981999999FF 003C181818183C00FFC3E7E7E7E7C3FF 001E060606663C00FFE1F9F9F999C3FF 00666C78786C6600FF999387879399FF 0060606060607E00FF9F9F9F9F9F81FF 0042667E7E666600FFBD9981819999FF 0066767E6E666600FF998981919999FF 003C666666663C00FFC399999999C3FF 007C667C60606000FF8399839F9F9FFF 003C66666A6C3E00FFC399999593C1FF 007C667C786C6600FF839983879399FF 003E603C06067C00FFC19FC3F9F983FF 007E181818181800FF81E7E7E7E7E7FF 0066666666663C00FF9999999999C3FF 00666666663C1800FF99999999C3E7FF 0066667E7E664200FF9999818199BDFF 00663C183C666600FF99C3E7C39999FF 0066663C18181800FF9999C3E7E7E7FF 007E0C1830607E00FF81F3E7CF9F81FF 003C303030303C00FFC3CFCFCFCFC3FF 006030180C060200FF9FCFE7F3F9FDFF 003C0C0C0C0C3C00FFC3F3F3F3F3C3FF 00183C6600000000FFE7C399FFFFFFFF 0000000000007E00FFFFFFFFFFFF81FF #15:MAIN SOUND 0800303A00FF00000800303A00000000 3800606000FF00002800303019FE0000 38002020000000000800F19901FC0000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000