' NATAC ISLAND ' ============ ' BASED ON SETTLERS OF CATAN ' BY WAS8BIT ' POWERED BY LOWRES NX ' ' COST CHART ' ========== ' ROAD = 1EA. CLAY+WOOD ' VILL = 1EA. CLAY+WOOD+WOOL+HAY ' TOWN = VILL + 3HAY+3ROCK ' CITY = TOWN + 2CLAY+2WOOD+3WOOL+1ROCK ' ' YIELD CHART ' =========== ' ROAD = 0 PER FARM ' VILL = 1 PER FARM ' TOWN = 2 PER FARM ' CITY = 3 PER FARM ' ' BUILD RULES '============ ' ROADS = ANY SQUARE ' BUILDINGS = ANY SQUARE, NOT BESIDE ANOTHER BUILDING ' ' [INITIALIZE] ' ____________ FONT 64 RANDOMIZE TIMER TOUCHSCREEN BG 1 BG COPY 0,0,20,16 TO 0,0 BG 0 SCROLL 0,-4,-4 DIM GLOBAL FARMGRID(4,4),BUILDGRID(5,5),ACTIONGRID(5,5) DIM GLOBAL BUILDING(4) GLOBAL XPLAYER,YPLAYER,IMODE BG 1 PAL 0 TEXT 0,5,"WIN:3CITY " BG 0 REPLAY: ' [PLACE FARMS] ' _____________ 'CLEAR FOR Y=1 TO 4 FOR X=1 TO 4 FARMGRID(X,X)=0 NEXT X NEXT Y 'ADD FARMS 1-5 FOR ICHAR=1 TO 5 C=9 WHILE C<>0 X=RND(3)+1 Y=RND(3)+1 C=FARMGRID(X,Y) WEND FARMGRID(X,Y)=ICHAR NEXT ICHAR 'FILL FARMS FOR Y=1 TO 4 FOR X=1 TO 4 IF FARMGRID(X,Y)=0 THEN FARMGRID(X,Y)=1+RND(4) NEXT X NEXT Y 'DRAW FARMS PAL 1 FOR Y=1 TO 4 FOR X=1 TO 4 PX=(X-1)*2+1 PY=(Y-1)*2+7 CELL PX,PY,FARMGRID(X,Y)+54 NEXT X NEXT Y '[CLEAR BUILDS] FOR X=1 TO 5 FOR Y=1 TO 5 BUILDGRID(X,Y)=0 NEXT Y NEXT X BUILDING(1)=2 BUILDING(2)=2 CALL SHOWBUILDS CALL MODEMOVE XPLAYER=3 YPLAYER=3 CALL MOVEPLAYER(0) PAL 4 REM TEXT 10,4,"PUT VILL" ' '[GET MATCH ON ACTION PAD] ' ITOUCH=0 PAL 0 DO IF TOUCH THEN TX=TOUCH.X\16-4 TY=TOUCH.Y\16-2 IF TX<1 OR TY<1 THEN ITOUCH=0 CALL CLEARACTIONS REM TX=1 3 5 REM TY=0 REM MODE BUTTONS IF TY=0 AND TX=1 THEN CALL MODEMOVE IF TY=0 AND TX=3 THEN CALL MODEBUILD ELSE IF ITOUCH=0 THEN PLAY 0,49,1 SOUND 0 ITOUCH=1 CTOUCH=ACTIONGRID(TX,TY) TX1=TX TY1=TY CALL SETACTIONS(TX,TY) ELSE IF ITOUCH=1 THEN IF TX<>TX1 OR TY<>TY1 THEN IF CTOUCH=ACTIONGRID(TX,TY) THEN PLAY 1,56,1 SOUND 0 ITOUCH=2 TX2=TX TY2=TY CALL SETACTIONS(TX,TY) ELSE ITOUCH=0 CALL CLEARACTIONS END IF END IF ELSE IF ITOUCH=2 THEN IF NOT ((TX=TX1 AND TY=TY1) OR (TX=TX2 AND TY=TY2)) THEN IF CTOUCH=ACTIONGRID(TX,TY) THEN PLAY 2,61,1 SOUND 0 ITOUCH=3 TX3=TX TY3=TY CALL SETACTIONS(TX,TY) GOSUB FLASHMATCH ACTIONGRID(TX,TY)=0 ACTIONGRID(TX1,TY1)=0 ACTIONGRID(TX2,TY2)=0 CALL CLEARACTIONS IF IMODE=1 THEN CALL FILLMOVE IF IMODE=2 THEN CALL FILLBUILD IF CTOUCH>9 THEN CALL MOVEPLAYER(CTOUCH-9) REM DO ACTION ELSE ITOUCH=0 CALL CLEARACTIONS END IF END IF END IF END IF ELSE IF ITOUCH>0 THEN ITOUCH=0 CALL CLEARACTIONS END IF END IF LOOP FLASHMATCH: PLAY 0,49,10 SOUND 0 PLAY 1,56,10 SOUND 0 PLAY 2,61,10 SOUND 0 FOR IFLASH=1 TO 3 WAIT 5 CALL CLEARACTIONS WAIT 5 CALL SETACTIONS(TX1,TY1) CALL SETACTIONS(TX2,TY2) CALL SETACTIONS(TX3,TY3) NEXT IFLASH WAIT 5 RETURN SUB CLEARMODE BG 1 PAL 6 CELL 10,4,12 CELL 11,4,13 CELL 10,5,28 CELL 11,5,29 CELL 10+4,4,14 CELL 11+4,4,15 CELL 10+4,5,30 CELL 11+4,5,31 CELL 10+8,4,2 CELL 11+8,4,3 CELL 10+8,5,18 CELL 11+8,5,19 END SUB SUB SETMODE I=IMODE BG 1 PAL 5 IF I=1 THEN CELL 10,4,12 CELL 11,4,13 CELL 10,5,28 CELL 11,5,29 ELSE IF I=2 THEN CELL 10+4,4,14 CELL 11+4,4,15 CELL 10+4,5,30 CELL 11+4,5,31 ELSE IF I=3 THEN CELL 10+8,4,2 CELL 11+8,4,3 CELL 10+8,5,18 CELL 11+8,5,19 END IF END SUB SUB MODEMOVE IMODE=1 CALL CLEARMODE CALL SETMODE PLAY 0,49,10 SOUND 0 PLAY 1,56,10 SOUND 0 PLAY 2,61,10 SOUND 0 CALL CLEARACTIONS CALL HIDEACTIONS WAIT 15 CALL MOVEACTIONS WAIT 15 END SUB SUB MODEBUILD IMODE=2 CALL CLEARMODE CALL SETMODE PLAY 0,49,10 SOUND 0 PLAY 1,56,10 SOUND 0 PLAY 2,61,10 SOUND 0 CALL CLEARACTIONS CALL HIDEACTIONS WAIT 15 CALL BUILDACTIONS WAIT 15 END SUB SUB MOVEPLAYER(I) CALL CLEARPLAYER BG 1 IF I=1 THEN ADD YPLAYER,-1,1 TO 5 IF I=2 THEN ADD XPLAYER,1,1 TO 5 IF I=3 THEN ADD YPLAYER,1,1 TO 5 IF I=4 THEN ADD XPLAYER,-1,1 TO 5 PX=(XPLAYER-1)*2 PY=(YPLAYER+2)*2 CELL PX,PY,4 CELL PX+1,PY,5 CELL PX,PY+1,20 CELL PX+1,PY+1,21 BG 0 END SUB SUB CLEARPLAYER BG 1 PAL 0 FOR X=1 TO 5 FOR Y=1 TO 5 PX=(X-1)*2 PY=(Y-1)*2+6 CELL PX,PY,6 CELL PX+1,PY,7 CELL PX,PY+1,22 CELL PX+1,PY+1,23 NEXT Y NEXT X BG 0 END SUB SUB SHOWBUILDS BG 1 PAL 4 FOR I=1 TO 4 NUMBER 16,I-1,BUILDING(I),2 NEXT I END SUB SUB SETACTIONS(IX,IY) X=(IX+4)*2 Y=(IY+2)*2 BG 1 PAL 3 PX=(IX-1)*2+1+9 PY=(IY-1)*2+6 CELL PX,PY,8 CELL PX+1,PY,9 CELL PX,PY+1,24 CELL PX+1,PY+1,25 BG 0 END SUB SUB CLEARACTIONS BG 1 PAL 3 FOR X=1 TO 5 FOR Y=1 TO 5 PX=(X-1)*2+1+9 PY=(Y-1)*2+6 CELL PX,PY,10 CELL PX+1,PY,11 CELL PX,PY+1,26 CELL PX+1,PY+1,27 NEXT Y NEXT X BG 0 END SUB SUB HIDEACTIONS FOR X=1 TO 5 FOR Y=1 TO 5 ACTIONGRID(X,Y)=0 NEXT Y NEXT X PAL 2 FOR X=1 TO 5 FOR Y=1 TO 5 PX=(X-1)*2+1+9 PY=(Y-1)*2+6 CELL PX,PY,0 NEXT Y NEXT X END SUB SUB MOVEACTIONS FOR X=1 TO 5 FOR Y=1 TO 5 ACTIONGRID(X,Y)=0 NEXT Y NEXT X FOR X=1 TO 5 FOR Y=1 TO 5 ACTIONGRID(X,Y)=RND(3)+10 NEXT Y NEXT X CALL DRAWACTIONS END SUB SUB FILLMOVE BG 0 PAL 2 FOR X=1 TO 5 FOR Y=1 TO 5 IF ACTIONGRID(X,Y)=0 THEN ACTIONGRID(X,Y)=RND(3)+10 PX=(X-1)*2+1+9 PY=(Y-1)*2+6 CELL PX,PY,ACTIONGRID(X,Y)+31 END IF NEXT Y NEXT X END SUB SUB BUILDACTIONS FOR X=1 TO 5 FOR Y=1 TO 5 ACTIONGRID(X,Y)=0 NEXT Y NEXT X FOR X=1 TO 5 FOR Y=1 TO 5 T=0 WHILE T=0 R=RND(3) T=BUILDING(R+1) WEND ACTIONGRID(X,Y)=R+6 NEXT Y NEXT X CALL DRAWACTIONS END SUB SUB FILLBUILD FOR X=1 TO 5 FOR Y=1 TO 5 IF ACTIONGRID(X,Y)=0 THEN T=0 WHILE T=0 R=RND(3) T=BUILDING(R+1) WEND ACTIONGRID(X,Y)=R+6 END IF NEXT Y NEXT X CALL DRAWACTIONS END SUB SUB DRAWACTIONS BG 0 PAL 2 FOR X=1 TO 5 FOR Y=1 TO 5 PX=(X-1)*2+1+9 PY=(Y-1)*2+6 CELL PX,PY,ACTIONGRID(X,Y)+31 NEXT Y NEXT X END SUB #1:MAIN PALETTES 2A3F0D08003F3830003F2A00003F0B03 00003F150000073F0000062A003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FF80808080808888007F7F7F7F7F7F7F FF0101F989898DFD00FEFEFEFEFEFEFE FFF0EFDFBFBFBFBFFFFFF0E0C0C0C0C0 FF0FF7FBFDFDFDFDFFFF0F0703030303 FFF0E0C080808080FFFFFFFFFFFFFFFF FF0F070301010101FFFFFFFFFFFFFFFF 007F7F7F7F7F7F7FFF80808080808080 00FEFEFEFEFEFEFEFF01010101010101 7F80808080808080FFFFFFFFFFFFFFFF FE01010101010101FFFFFFFFFFFFFFFF FF8183878191B1FF007F7F7F7F7F7F7F FF81C1E181898DFF00FEFEFEFEFEFEFE FF8080848E9C8A81007F7F7F7F7F7F7F FF010111391D294100FEFEFEFEFEFEFE 00000000000000000000000000000000 00000000000000000000000000000000 BFBFA1AC8C8080FF7F7F7F7F7F7F7F00 87337B79310101FFFEFEFEFEFEFEFE00 BFBFBFBFDFEFF0FFC0C0C0C0E0F0FFFF FDFDFDFDFBF70FFF03030303070FFFFF 80808080C0E0F0FFFFFFFFFFFFFFFFFF 0101010103070FFFFFFFFFFFFFFFFFFF 7F7F7F7F7F7F7F0080808080808080FF FEFEFEFEFEFEFE0001010101010101FF 808080808080807FFFFFFFFFFFFFFFFF 01010101010101FEFFFFFFFFFFFFFFFF FFB19181878381FF7F7F7F7F7F7F7F00 FF8D8981E1C181FFFEFEFEFEFEFEFE00 80818284888080FF7F7F7F7F7F7F7F00 81412111090101FFFEFEFEFEFEFEFE00 54FEFE7CFEFE540054AA825482AA5400 54FE7CFE7C38381054AA44826C282810 004CFE7E7C7C2800004CB24244542800 001C3E7F7F3F1A00001C225D55251A00 1038FCFEFEFE7C001028C48282827C00 0010387CFE7C38100010286C826C2810 0000003C7E7E7E240000003C42425A24 00183C3C7E7E7E3C001824244242423C 005AFFFFFFFFFF66005AA58181819966 183C7EFF7E3C3C181824428166242418 081C7EFFFF7E1C080814728181721408 183C3C7EFF7E3C181824246681422418 10387EFFFF7E381010284E81814E2810 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00547C287C540000007C007C007C0000 00000028101010000054387C10101000 00004C3C380000000000000000280000 000000000000000000001C222A1A0000 00102844007C0000000010387C7C0000 000010107C101000000010107C101000 000000003C3C2400000000003C3C2400 000018183C3C3C00000018183C3C3C00 00005A7E7E7E660000005A7E7E7E6600 00000000000000000000000000000000 00181818180018000000000000000000 006C6C24000000000000000000000000 00247E24247E24000000000000000000 00083E380E3E08000000000000000000 00626408102646000000000000000000 001C34386E643A000000000000000000 00181830000000000000000000000000 000C183030180C000000000000000000 0030180C0C1830000000000000000000 000024187E1824000000000000000000 000018187E1818000000000000000000 00000000181830000000000000000000 000000007E0000000000000000000000 00000000001818000000000000000000 00060C18306040000000000000000000 1C22222222221C000000000000000000 00080808080800000000000000000000 1C02021C20203C000000000000000000 1C02021E02021C000000000000000000 0022221C020200000000000000000000 3C20201C02021C000000000000000000 1C20203C22221C000000000000000000 1E020202020200000000000000000000 1C22221C22221C000000000000000000 1C22221E02021C000000000000000000 00000018001800000000000000000000 00000018001830000000000000000000 00000C1830180C000000000000000000 0000007E007E00000000000000000000 000030180C1830000000000000000000 003C660C180018000000000000000000 003C666E6E603C000000000000000000 1C22223E222222000000000000000000 3C22223C22223C000000000000000000 1C20202020201C000000000000000000 3C22222222223C000000000000000000 3C20203C20203C000000000000000000 3C20203C202020000000000000000000 1C20202C22221C000000000000000000 2222223E222222000000000000000000 1C08080808081C000000000000000000 1E02020222221C000000000000000000 22242820282422000000000000000000 0020202020203C000000000000000000 1C2A2A22222200000000000000000000 0022322A262200000000000000000000 1C22222222221C000000000000000000 3C22223C202020000000000000000000 1C2222222A261E000000000000000000 3C22223C282422000000000000000000 1C20201C02021C000000000000000000 3E080808080808000000000000000000 0022222222221C000000000000000000 00222222221408000000000000000000 002222222A2A1C000000000000000000 00221408142200000000000000000000 0022221C080808000000000000000000 1E02040810203C000000000000000000 003C303030303C000000000000000000 006030180C0602000000000000000000 003C0C0C0C0C3C000000000000000000 00183C66000000000000000000000000 0000000000007E000000000000000000 #3:MAIN BG 00001410370163046C04610479040000 50045004500400003C0272046F046104 64040000000000000000000038017704 6F046F04640400005004500450040000 3D02760469046C046C04000000000000 00000000390177046F046F046C040000 50045004500400003E0274046F047704 6E04000000000000000000003A016804 61047904000000005004500450040000 3F026304690474047904000000000000 000000003B0172046F0463046B040000 50045004500400030C050D0500000005 0E060F06000500050206030600000000 00000000000000000000000000000000 1C051D05110300051E061F0600050005 12061306060007000600070006000700 06000700060007000A030B030A030B03 0A030B030A030B030A030B0316001700 16001700160017001600170016001700 1A031B031A031B031A031B031A031B03 1A031B03060007000600070006000700 06000700060007000A030B030A030B03 0A030B030A030B030A030B0316001700 16001700160017001600170016001700 1A031B031A031B031A031B031A031B03 1A031B03060007000600070006000700 06000700060007000A030B030A030B03 0A030B030A030B030A030B0316001700 16001700160017001600170016001700 1A031B031A031B031A031B031A031B03 1A031B03060007000600070006000700 06000700060007000A030B030A030B03 0A030B030A030B030A030B0316001700 16001700160017001600170016001700 1A031B031A031B031A031B031A031B03 1A031B03060007000600070006000700 06000700060007000A030B030A030B03 0A030B030A030B030A030B0316001700 16001700160017001600170016001700 1A031B031A031B031A031B031A031B03 1A031B03 #15:MAIN SOUND 0800318910000C001800846C003A0000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000