DISCLAIMER: The source code of our game has been posted for personal use only, and so every member of the team can easily update to the newest version. Reproducing, selling, or plagarizing any or all of the following code is ILLEGAL.
'Latest version of the Engine '12 JAN 2004 ' ' 'MAP CODE | Type of tile (quick reference sheet--you may want to print) '========================================================================= 'Tempterate Tile Set '-------------------------------- 'GR | grass 'WA | WATER* (I) 'SA | SAND 'MT | MOUNTAIN (I) 'DF | DECIDUOUS FOREST (THE FIRST FOREST TILE) (I) 'RF | RED FOREST (I) 'DP | Dirt Path* 'LF | Light forest 'Winter Tile Set '--------------------------------- 'SP | SMALL PINE FOREST (I) 'LP | LARGE PINE FOREST (I) 'SN | Snow ' ' ' '* = can be used in either tile set '** = needs edited '(I) = impassable DECLARE SUB encounter () DECLARE SUB gfxsetup () DECLARE SUB drawscreen () DECLARE SUB moveup () DECLARE SUB moveright () DECLARE SUB movedown () DECLARE SUB moveleft () COMMON SHARED cactus(), snowpath(), snow(), lightwoods(), iterrain$(), pineforest(), redpine(), largepine(), grass(), Water(), mx, my, map$(), px, py, gx, gy, i, j, sand(), tree(), mountain(), hp, maxhp, weapon$, armor$, dirtpath() SCREEN 7, 0, 1, 0 CLS 'graphics setup LOCATE 20, 5 PRINT "Loading, Please Wait" PCOPY 1, 0 DIM Water(2048) DIM grass(2048) DIM sand(2048) DIM tree(2048) DIM mountain(2048) DIM largepine(2048) DIM redpine(2048) DIM pineforest(2048) DIM dirtpath(2048) DIM lightwoods(2048) DIM snow(2048) DIM snowpath(2048) DIM cactus(2048) DATA 02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02 DATA 02,02,02,10,02,02,02,02 DATA 02,02,10,02,02,02,02,02 DATA 02,10,10,02,02,10,02,02 DATA 02,10,02,02,10,10,02,02 DATA 02,02,02,02,10,02,02,02 DATA 02,02,02,02,02,02,02,02 GOSUB readdata DIM grass8(64) GET (1, 1)-(8, 8), grass8 CLS FOR yy = 0 TO 32 STEP 8 FOR xx = 0 TO 64 STEP 8 PUT (xx, yy), grass8 NEXT xx NEXT yy GET (1, 1)-(64, 32), grass CLS DIM clist(3) clist(1) = 0 clist(2) = 1 clist(3) = 9 FOR y = 1 TO 32 FOR x = 1 TO 64 RANDOMIZE TIMER c = INT(RND * 3) + 1 PRESET (x, y), clist(c) NEXT x NEXT y GET (1, 1)-(64, 32), Water 'W = water CLS DATA 15,14,15,14,15,14,15,14 DATA 14,15,14,15,14,15,14,15 DATA 15,14,15,14,15,14,15,14 DATA 14,15,14,15,14,15,14,15 DATA 15,14,15,14,15,14,15,14 DATA 14,15,14,15,14,15,14,15 DATA 15,14,15,14,15,14,15,14 DATA 14,15,14,15,14,15,14,15 GOSUB readdata DIM sand8(64) GET (1, 1)-(8, 8), sand8 CLS FOR yy = 0 TO 32 STEP 8 FOR xx = 0 TO 64 STEP 8 PUT (xx, yy), sand8 NEXT xx NEXT yy GET (1, 1)-(64, 32), sand CLS DATA 02,02,02,02,02,02,02,02 DATA 02,02,10,10,10,10,02,02 DATA 02,10,10,10,10,10,10,02 DATA 02,10,10,10,10,10,10,02 DATA 02,02,10,10,10,10,02,02 DATA 02,02,02,06,06,02,02,02 DATA 02,02,02,06,06,02,02,02 DATA 02,02,06,06,06,06,02,02 GOSUB readdata DIM tree8(64) GET (1, 1)-(8, 8), tree8 CLS FOR yy = 0 TO 32 STEP 8 FOR xx = 0 TO 64 STEP 8 PUT (xx, yy), tree8 NEXT xx NEXT yy GET (1, 1)-(64, 32), tree CLS DATA 15,15,15,15,15,15,15,15 DATA 15,15,07,15,15,15,15,15 DATA 15,09,09,09,15,15,15,15 DATA 06,06,06,06,06,07,15,15 DATA 15,15,15,15,09,09,09,15 DATA 15,15,07,06,06,06,06,06 DATA 15,09,09,09,15,15,15,15 DATA 06,06,06,06,06,15,15,15 GOSUB readdata DIM mountain8(64) GET (1, 1)-(8, 8), mountain8 CLS FOR yy = 0 TO 32 STEP 8 FOR xx = 0 TO 64 STEP 8 PUT (xx, yy), mountain8 NEXT xx NEXT yy GET (1, 1)-(64, 32), mountain CLS DATA 15,15,15,15,15,15,15,15 DATA 15,15,15,02,02,15,15,15 DATA 15,15,02,02,02,02,15,15 DATA 15,02,02,02,02,02,02,15 DATA 15,15,02,02,02,02,15,15 DATA 15,02,02,02,02,02,02,15 DATA 15,15,15,06,06,15,15,15 DATA 15,15,06,06,06,06,15,15 GOSUB readdata DIM pine8(64) GET (1, 1)-(8, 8), pine8 CLS FOR yy = 1 TO 32 STEP 8 FOR xx = 1 TO 64 STEP 8 PUT (xx, yy), pine8 NEXT xx NEXT yy GET (1, 1)-(64, 32), pineforest CLS DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 DATA 15,15,15,15,15,15,15,02,02,15,15,15,15,15,15,15 DATA 15,15,15,15,15,15,02,02,02,02,15,15,15,15,15,15 DATA 15,15,15,15,15,02,02,02,02,02,02,15,15,15,15,15 DATA 15,15,15,15,02,02,02,02,02,02,02,02,15,15,15,15 DATA 15,15,15,02,02,02,02,02,02,02,02,02,02,15,15,15 DATA 15,15,02,02,02,02,02,02,02,02,02,02,02,02,15,15 DATA 15,02,02,02,02,02,02,02,02,02,02,02,02,02,02,15 DATA 15,15,15,15,15,15,06,06,06,06,15,15,15,15,15,15 DATA 15,15,15,15,15,15,06,06,06,06,15,15,15,15,15,15 DATA 15,15,15,15,15,06,06,06,06,06,06,15,15,15,15,15 DATA 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 GOSUB readdata16 DIM lpine16(256) GET (1, 1)-(16, 16), lpine16 CLS FOR yy = 1 TO 32 STEP 16 FOR xx = 1 TO 64 STEP 16 PUT (xx, yy), lpine16 NEXT xx NEXT yy GET (1, 1)-(64, 32), largepine CLS DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,12,12,12,12,12,12,02,02,02,02,02 DATA 02,02,02,02,12,12,12,12,12,12,12,12,02,02,02,02 DATA 02,02,02,12,12,12,12,12,12,12,12,12,12,02,02,02 DATA 02,02,12,12,12,12,12,12,12,12,12,12,12,12,02,02 DATA 02,02,12,12,12,12,12,12,12,12,12,12,12,12,02,02 DATA 02,02,02,12,12,12,12,12,12,12,12,12,12,02,02,02 DATA 02,02,02,02,12,12,12,12,12,12,12,12,02,02,02,02 DATA 02,02,02,02,02,12,12,12,12,12,12,02,02,02,02,02 DATA 02,02,02,02,02,02,12,12,12,12,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,06,06,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,06,06,06,06,02,02,02,02,02,02 DATA 02,02,02,02,02,06,06,06,06,06,06,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 GOSUB readdata16 DIM rpine16(256) GET (1, 1)-(16, 16), rpine16 CLS FOR yy = 1 TO 32 STEP 16 FOR xx = 1 TO 64 STEP 16 PUT (xx, yy), rpine16 NEXT xx NEXT yy GET (1, 1)-(64, 32), redpine CLS DATA 02,06,06,06,06,02,06,06 DATA 06,06,06,02,06,06,06,06 DATA 06,02,06,06,06,06,06,06 DATA 02,06,06,06,06,06,02,06 DATA 06,06,06,02,06,06,06,06 DATA 02,06,06,06,06,02,06,06 DATA 06,06,02,06,02,06,06,06 DATA 06,06,06,02,06,06,02,06 GOSUB readdata DIM path8(64) GET (1, 1)-(8, 8), path8 CLS FOR yy = 1 TO 32 STEP 8 FOR xx = 1 TO 64 STEP 8 PUT (xx, yy), path8 NEXT xx NEXT yy GET (1, 1)-(64, 32), dirtpath CLS DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 DATA 02,02,02,02,02,10,10,10,10,10,10,02,02,02,02,02 DATA 02,02,02,02,10,10,10,10,10,10,10,10,02,02,02,02 DATA 02,02,02,10,10,10,10,10,10,10,10,10,10,02,02,02 DATA 02,02,10,10,10,10,10,10,10,10,10,10,10,10,02,02 DATA 02,10,10,10,10,10,10,10,10,10,10,10,10,10,10,02 DATA 02,10,10,10,10,10,10,10,10,10,10,10,10,10,10,02 DATA 02,02,10,10,10,10,10,10,10,10,10,10,10,10,02,02 DATA 02,02,02,10,10,10,10,10,10,10,10,10,10,02,02,02 DATA 02,02,02,02,10,10,10,10,10,10,10,10,02,02,02,02 DATA 02,02,02,02,02,10,10,10,10,10,10,02,02,02,02,02 DATA 02,02,02,02,02,02,06,06,06,06,02,02,02,02,02,02 DATA 02,02,02,02,02,02,06,06,06,06,02,02,02,02,02,02 DATA 02,02,02,02,02,06,06,06,06,06,06,02,02,02,02,02 DATA 02,02,02,02,02,02,02,02,02,02,02,02,02,02,02,02 GOSUB readdata16 DIM lwoods16(256) GET (1, 1)-(16, 16), lwoods16 CLS PUT (1, 1), grass xx = 5 yy = 10 PUT (xx, yy), lwoods16, PSET xx = 20 yy = 17 PUT (xx, yy), lwoods16, PSET xx = 40 yy = 4 PUT (xx, yy), lwoods16, PSET GET (1, 1)-(64, 32), lightwoods CLS DIM clist2(4) clist2(1) = 15 clist2(2) = 7 clist2(3) = 15 clist2(4) = 15 FOR y = 1 TO 32 FOR x = 1 TO 64 RANDOMIZE TIMER c = INT(RND * 4) + 1 PRESET (x, y), clist2(c) NEXT x NEXT y GET (1, 1)-(64, 32), snow CLS DATA 07,15,15,15,15,07,15,15 DATA 15,15,15,07,15,15,15,15 DATA 15,07,15,15,15,15,15,15 DATA 15,15,15,15,15,15,07,15 DATA 15,15,15,07,15,15,15,15 DATA 15,15,15,15,15,07,15,15 DATA 15,15,07,15,07,15,15,15 DATA 15,15,15,07,15,15,07,15 GOSUB readdata DIM spath8(64) GET (1, 1)-(8, 8), spath8 CLS FOR yy = 1 TO 32 STEP 8 FOR xx = 1 TO 64 STEP 8 PUT (xx, yy), spath8 NEXT xx NEXT yy GET (1, 1)-(64, 32), snowpath CLS DATA 15,14,15,14,15,14,15,14 DATA 14,02,14,02,02,15,14,15 DATA 15,02,15,02,02,14,15,14 DATA 14,02,02,02,02,15,02,15 DATA 15,02,02,02,02,02,02,14 DATA 14,15,14,02,02,02,02,15 DATA 15,14,15,02,02,14,15,14 DATA 14,15,14,02,02,15,14,15 GOSUB readdata DIM cactus8(64) GET (1, 1)-(8, 8), cactus8 CLS FOR yy = 0 TO 32 STEP 8 FOR xx = 0 TO 64 STEP 8 PUT (xx, yy), cactus8 NEXT xx NEXT yy GET (1, 1)-(64, 32), cactus CLS DIM map$(60, 60) DATA WA,WA,WA,WA,WA,WA,WA,WA,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT DATA WA,WA,WA,WA,WA,WA,WA,WA,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT DATA WA,WA,SA,SA,SA,SA,SA,DF,DF,DP,DP,DP,DP,DP,SA,SA,SA,SA,WA,DF,LF,DF,LF,LF,LF,LF,DF,DF,MT,MT,SR,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,MT,SR,MT,MT,SR,MT,MT,SR,SR,SR,MT,MT,SR,SR,SR,SR,SR,MT,MT DATA WA,WA,SA,SA,SA,SA,SA,DF,DF,DP,DF,DF,DP,DF,WA,WA,SA,SA,WA,DF,LF,DF,DF,DF,LF,DF,DF,DF,MT,MT,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,SR,SR,SR,MT,SR,SR,MT,MT,SR,MT,SR,SR,MT,SR,SR,SR,SR,SR,MT,MT DATA DF,DF,DF,GR,GR,DF,DF,DF,DF,DP,DF,DF,DP,DF,WA,WA,WA,WA,WA,DF,LF,LF,DF,DF,LF,LF,DF,DF,MT,MT,MT,MT,MT,SR,SR,SR,MT,SR,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT DATA DF,DF,DF,GR,GR,DF,DF,DF,DP,DP,DP,DP,DP,DP,DP,SA,SA,WA,WA,DF,DF,LF,DF,DF,LF,LF,DF,DF,MT,MT,SR,MT,MT,SR,MT,SR,SR,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT DATA DF,DF,DF,GR,GR,GR,GR,GR,DP,DF,LF,LF,LF,DF,WA,WA,SA,SA,WA,DF,LF,LF,DF,DF,DF,LF,DF,DF,MT,MT,SR,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT DATA DF,DF,DF,GR,GR,GR,GR,GR,DF,LF,LF,LF,LF,DF,WA,WA,WA,WA,WA,DF,LF,DF,DF,DF,LF,LF,DF,DF,MT,MT,SR,MT,MT,SR,MT,MT,MT,SR,MT,MT,MT,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT DATA DF,DF,DF,GR,GR,GR,GR,GR,DF,LF,LF,DF,LF,DF,DF,DF,DF,DF,DF,DF,LF,DF,DF,LF,LF,LF,DF,DF,MT,MT,SR,SR,MT,MT,MT,MT,MT,SR,MT,MT,SR,SR,MT,SR,MT,MT,MT,MT,SR,MT,MT,MT,SR,MT,MT,SR,MT,MT,MT,MT DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,MT,MT,MT,SR,MT,MT,SR,SR,SR,SR,MT,SR,SR,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,SR,SR,MT,MT,MT,MT DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,LF,LF,LF,DF,DF,DF,DF,LF,DF,DF,DF,DF,DF,LF,LF,LF,DF,DF,MT,MT,MT,SR,MT,MT,SR,MT,MT,SR,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT,SR,MT,MT,SR,MT,SR,MT,SR,SR,MT,MT DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,DF,DF,LF,LF,DF,DF,DF,LF,DF,DF,DF,WA,WA,WA,WA,DF,DF,DF,MT,MT,MT,SR,MT,MT,SR,MT,MT,SR,SR,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT,SR,MT,MT,SR,MT,SR,SR,SR,MT,MT,MT DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,SA,SA,WA,WA,WA,DF,DF,DF,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT,SR,SR,MT,SR,SR,MT,SR,MT,MT,MT,MT,SR,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,DF,DF,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,DF,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,SR,MT,MT,MT,SR,SR,SR,SR,SR,SR,SR,SR,SR,SR,MT,MT DATA DF,DF,GR,GR,GR,GR,GR,GR,DF,LF,DF,DP,DP,DP,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT,SR,MT,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,SR,MT,MT,MT,MT,SR,MT,MT,MT DATA DF,DF,DF,DF,DF,DF,DF,DF,DF,LF,LF,LF,DP,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT,MT,SR,MT,MT,MT,MT,SR,SR,SR,SR,SR,MT,MT,SR,SR,SR,MT,MT,SR,SR,MT,MT DATA DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,MT,MT,MT,SR,MT,MT,MT,DP,MT,MT,SR,SR,MT,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT,SR,MT,MT,MT,MT,MT,MT DATA DF,DF,SA,WA,SA,WA,WA,WA,DF,LF,DF,DF,DF,DF,DF,LF,LF,LF,LF,LF,LF,LF,LF,DF,DF,DF,DF,DF,MT,MT,SR,SR,MT,MT,MT,DP,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT DATA WA,WA,SA,WA,SA,SA,WA,WA,DF,LF,DF,DF,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DF,DF,DF,DF,DF,MT,MT,SR,MT,MT,MT,MT,DP,DP,DP,DP,MT,MT,SR,SR,SR,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT DATA WA,WA,SA,WA,SA,SA,WA,WA,DF,LF,DF,DF,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,SR,SR,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT DATA WA,WA,SA,GR,GR,GR,GR,WA,DF,DF,DF,DF,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,SR,SR,MT,DP,DP,DP,MT,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT DATA WA,WA,SA,WA,WA,GR,GR,WA,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,DP,MT,SR,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,SR,SR,SR,MT,MT,MT,MT DATA WA,WA,SA,WA,WA,WA,WA,WA,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,SR,DP,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,MT,MT DATA WA,WA,SA,WA,WA,WA,WA,WA,WA,GR,GR,GR,GR,WA,WA,SP,DP,SP,SP,SP,LP,LP,LP,LP,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,DP,DP,DP,DP,MT,MT,MT,MT,MT,MT,MT,MT,DP,DP,MT,MT,MT,MT DATA WA,WA,SA,SA,SA,SA,WA,SA,WA,GR,GR,GR,GR,WA,WA,SP,DP,DP,DP,SP,DP,LP,LP,LP,DF,DF,DF,DF,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,DP,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,MT DATA WA,WA,WA,WA,WA,SA,WA,WA,WA,GR,GR,GR,GR,WA,WA,SP,SP,SP,DP,SP,DP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,MT,MT,MT,MT,MT,DP,DP,MT,MT,DP,DP,MT,DP,MT,MT,MT,MT,MT,MT,MT,DP,DP,MT,MT,MT DATA WA,SA,WA,WA,SA,SA,SA,SA,SA,GR,GR,GR,GR,WA,WA,SP,SP,DP,DP,DP,DP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,DP,MT,DP,MT,MT,MT,MT,MT,DP,MT,MT,DP,MT,MT,MT DATA WA,WA,WA,WA,SA,WA,WA,WA,WA,GR,GR,GR,GR,WA,WA,SP,SP,DP,SP,LP,DP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,MT,MT,MT,MT,MT,MT,DP,DP,MT,MT,DP,MT,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,MT,MT DATA WA,WA,SA,WA,SA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SA,DP,DP,SP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,LP,LP,LP,MT,MT,MT,MT,MT,MT,MT,DP,DP,DP,DP,DP,DP,MT,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT DATA WA,WA,SA,SA,SA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SA,SP,SP,SP,DP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,LP,LP,LP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT DATA WA,WA,SA,WA,WA,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,SP,LP,WA,WA,LP,LP,LP,DP,DP,LP,LP,LP,LP,LP,LP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,DP,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT,MT DATA LP,LP,DP,LP,LP,LP,DP,SP,LP,SP,SP,DP,DP,DP,DP,DP,DP,DP,DP,SP,LP,WA,DP,DP,DP,DP,SP,DP,LP,LP,LP,LP,LP,LP,SP,SP,RF,RF,RF,RF,RF,RF,RF,RF,CA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA LP,LP,DP,LP,LP,LP,DP,SP,LP,SP,SP,DP,SP,WA,WA,DP,LP,LP,DP,SP,LP,WA,WA,WA,WA,DP,SP,DP,LP,LP,LP,SP,DP,SP,SP,SP,RF,RF,RF,RF,RF,RF,RF,RF,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA LP,LP,DP,SP,SP,SP,DP,SP,LP,DP,DP,DP,SP,WA,WA,DP,LP,LP,DP,SP,LP,LP,LP,LP,LP,DP,SP,DP,LP,LP,LP,SP,DP,DP,SP,SP,RF,RF,RF,RF,DP,RF,RF,RF,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,CA,SA,WA,WA DATA LP,LP,DP,DP,DP,DP,DP,SP,LP,DP,LP,LP,LP,DP,DP,DP,DP,LP,DP,DP,LP,LP,LP,LP,LP,DP,SP,DP,LP,LP,LP,SP,SP,DP,SP,SP,RF,RF,DP,DP,DP,RF,RF,RF,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA LP,LP,DP,SP,SP,SP,DP,SP,LP,DP,DP,DP,DP,LP,LP,LP,LP,LP,DP,SP,LP,LP,LP,DP,DP,DP,SP,DP,LP,LP,LP,SP,DP,DP,SP,SP,RF,RF,DP,RF,RF,RF,RF,RF,SP,SP,SP,SP,SA,SA,SA,CA,SA,SA,SA,SA,CA,SA,WA,WA DATA SP,SP,DP,DP,LP,DP,DP,LP,LP,DP,LP,LP,LP,LP,LP,LP,LP,DP,DP,SP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,DP,DP,SP,SP,DP,DP,DP,DP,RF,RF,DP,DP,RF,SP,SP,SP,SP,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA SP,LP,LP,DP,LP,SP,DP,LP,LP,DP,DP,SP,SP,SP,SP,SP,DP,DP,SP,SP,LP,LP,DP,DP,LP,LP,LP,DP,SP,SP,DP,DP,SP,SP,SP,DP,DP,DP,RF,RF,RF,RF,DP,RF,SP,SP,SP,SP,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,WA,WA DATA LP,LP,LP,DP,DP,LP,DP,LP,LP,SP,DP,SP,SP,SP,SP,SP,DP,LP,LP,LP,LP,LP,DP,SP,LP,LP,LP,DP,SP,SP,DP,SP,SP,SP,SP,DP,DP,DP,RF,RF,RF,RF,DP,DP,DP,DP,SP,SP,CA,SA,SA,SA,SA,CA,SA,SA,SA,SA,WA,WA DATA LP,LP,LP,LP,DP,SP,DP,DP,DP,DP,DP,DP,LP,SP,SP,SP,DP,LP,LP,LP,LP,LP,DP,SP,DP,DP,DP,DP,DP,DP,DP,SP,SP,SP,SP,DP,DP,DP,RF,RF,RF,RF,RF,RF,RF,DP,SP,SP,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,WA,WA DATA LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,SP,DP,DP,DP,DP,LP,DP,DP,DP,SP,SP,SP,DP,SP,DP,LP,LP,LP,DP,SP,DP,DP,DP,DP,DP,DP,DP,DP,RF,RF,RF,RF,RF,RF,RF,DP,SP,SP,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA SP,SP,SP,SP,DP,DP,DP,DP,DP,DP,SP,SP,SP,SP,SP,SP,SP,SP,DP,SP,SP,SP,DP,DP,DP,DP,LP,LP,LP,DP,DP,SP,SP,SP,SP,DP,DP,DP,RF,RF,RF,RF,RF,RF,DP,DP,SP,SP,SA,CA,SA,CA,SA,SA,SA,SA,CA,SA,WA,WA DATA SP,SP,DP,DP,DP,DP,LP,DP,LP,DP,DP,SA,SA,SA,SA,SA,SA,LP,DP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,DP,RF,RF,RF,RF,RF,RF,RF,RF,DP,SP,SP,SP,SA,SA,SA,SA,SA,CA,CA,SA,SA,SA,WA,WA DATA SP,SP,SP,SP,SP,DP,LP,DP,DP,DP,SP,SA,WA,WA,WA,SA,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,SP,SP,SP,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA SP,SP,SP,SP,SP,DP,SP,SP,SP,SP,SP,SA,WA,WA,WA,SA,SA,LP,DP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SA,SA,SA,CA,SA,CA,SA,SA,CA,SA,WA,WA DATA SP,SP,SP,SP,SP,SP,SP,LP,LP,LP,SA,SA,WA,WA,WA,WA,SA,LP,DP,DP,DP,DP,DP,DP,DP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA SP,SP,SP,SP,SP,SP,SP,LP,LP,LP,SA,SA,SA,SA,SA,SA,SA,LP,DP,LP,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,SP,SP,SP,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,SA,SA,LP,LP,LP,DP,LP,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,SP,SP,SP,CA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,DP,LP,LP,DP,DP,DP,DP,SP,SP,SP,CA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,DP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,CA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,DP,DP,DP,DP,DP,DP,DP,DP,LP,LP,DP,DP,SP,DP,DP,DP,DP,DP,DP,DP,SP,SP,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,CA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,DP,SP,SP,SP,CA,SA,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,DP,LP,LP,LP,LP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,DP,SP,SP,SP,CA,SA,CA,SA,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,DP,DP,DP,LP,DP,DP,DP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,SA,SA,LP,DP,LP,DP,LP,LP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,SP,CA,CA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,WA,WA,LP,DP,LP,DP,LP,LP,DP,SP,SP,SP,CA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SP,DP,SP,DP,DP,DP,DP,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,CA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SP,DP,SP,SP,SP,SP,SP,SP,SP,SP,SA,CA,SA,SA,SA,SA,CA,SA,SA,SA,CA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,CA,SA,SA,SA,SA,SA,SA,SA,SA,SA,SA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,SP,LP,SP,SP,SP,SP,SP,SP,SP,SP,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,WA,WA DATA WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,WA,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,SA,SA,CA,SA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,CA,WA,WA FOR my = 1 TO 60 'mx and my are for this loop FOR mx = 1 TO 60 READ map$(mx, my) NEXT mx NEXT my px = 4 'px and py are player x and player y py = 4 DIM iterrain$(7) iterrain$(1) = "MT" iterrain$(2) = "WA" iterrain$(3) = "DF" iterrain$(4) = "RF" iterrain$(5) = "SP" iterrain$(6) = "LP" iterrain$(7) = "CA" weapon$ = "Fists" armor$ = "None" hp = 15 maxhp = 15 CALL drawscreen DO a$ = INKEY$ IF a$ = "8" OR a$ = "w" OR a$ = "W" THEN CALL moveup IF a$ = "6" OR a$ = "d" OR a$ = "D" THEN CALL moveright IF a$ = "2" OR a$ = "s" OR a$ = "S" THEN CALL movedown IF a$ = "4" OR a$ = "a" OR a$ = "A" THEN CALL moveleft LOOP 'graphical stuff readdata: FOR yyy = 1 TO 8 FOR xxx = 1 TO 8 READ pixel PSET (xxx, yyy), pixel NEXT xxx NEXT yyy RETURN readdata16: FOR yyy = 1 TO 16 FOR xxx = 1 TO 16 READ pixel PSET (xxx, yyy), pixel NEXT xxx NEXT yyy RETURN SUB drawscreen CLS gx = px - 2 'gx and gy are for graphical purposes gy = py - 2 FOR i = 0 TO 256 STEP 64 FOR j = 0 TO 128 STEP 32 IF map$(gx, gy) = "GR" THEN PUT (i, j), grass IF map$(gx, gy) = "WA" THEN PUT (i, j), Water IF map$(gx, gy) = "SA" THEN PUT (i, j), sand IF map$(gx, gy) = "DF" THEN PUT (i, j), tree IF map$(gx, gy) = "MT" THEN PUT (i, j), mountain IF map$(gx, gy) = "LP" THEN PUT (i, j), largepine IF map$(gx, gy) = "RF" THEN PUT (i, j), redpine IF map$(gx, gy) = "SP" THEN PUT (i, j), pineforest IF map$(gx, gy) = "DP" THEN PUT (i, j), dirtpath IF map$(gx, gy) = "LF" THEN PUT (i, j), lightwoods IF map$(gx, gy) = "SN" THEN PUT (i, j), snow IF map$(gx, gy) = "SR" THEN PUT (i, j), snowpath IF map$(gx, gy) = "CA" THEN PUT (i, j), cactus gy = gy + 1 NEXT j gx = gx + 1 gy = py - 2 NEXT i DRAW "bm160,70c14bu5r2f2d3l2u2l2d2l2u3e2bf2bd4c07d1c3r4f5g2h3d6g2l1d1c1d9l1u10c3l2d1c1d9l1u10c3l1h2u6g3h2e5r5u1c7l1e1u1l1c14l1u3r3d1l2r3d2bd4p3,3c14bf7bu1" DRAW "c14be1l4u6r8d9g2l4h2u2bf1p14,14" DRAW "c04bh1bu3r3u4r2d4l1u3d3r4d1l4f4l1h4r1g4r1e3u1l4" DRAW "c15bl13bg2bu3l1h2u8e2r1g2d8f2d1c6d3l1u3" LINE (0, 159)-(319, 199), 14, B LOCATE 21, 2 COLOR 4 PRINT "HP: "; hp; "/"; maxhp LOCATE 22, 2 COLOR 15 PRINT "Weapon: "; weapon$ LOCATE 23, 2 PRINT "Armor: "; armor$ LOCATE 21, 25 PRINT "(S)tatus" LOCATE 22, 25 PRINT "(I)nventory" LOCATE 23, 25 PRINT "(Q)uit" PCOPY 1, 0 END SUB SUB encounter LINE (2, 160)-(318, 198), 0, BF LOCATE 21, 2 PRINT "You were attacked by" PCOPY 1, 0 SLEEP LINE (2, 160)-(318, 198), 0, BF PCOPY 1, 0 END SUB SUB movedown FOR a = 1 TO 7 IF map$(px, py + 1) = iterrain$(a) THEN EXIT SUB NEXT a py = py + 1 RANDOMIZE TIMER IF INT(RND * 60) = 1 THEN CALL drawscreen LOCATE 21, 2 LINE (2, 160)-(318, 198), 0, BF PRINT "Encounter!!!" CIRCLE (160, 48), 10, 15 PCOPY 1, 0 DO IF INKEY$ = " " THEN EXIT DO LOOP CALL encounter END IF CALL drawscreen END SUB SUB moveleft FOR a = 1 TO 7 IF map$(px - 1, py) = iterrain$(a) THEN EXIT SUB NEXT a px = px - 1 RANDOMIZE TIMER IF INT(RND * 60) = 1 THEN CALL drawscreen LOCATE 21, 2 LINE (2, 160)-(318, 198), 0, BF PRINT "Encounter!!!" CIRCLE (224, 80), 10, 15 PCOPY 1, 0 DO IF INKEY$ = " " THEN EXIT DO LOOP CALL encounter END IF CALL drawscreen END SUB SUB moveright FOR a = 1 TO 7 IF map$(px + 1, py) = iterrain$(a) THEN EXIT SUB NEXT a px = px + 1 RANDOMIZE TIMER IF INT(RND * 60) = 1 THEN CALL drawscreen LOCATE 21, 2 LINE (2, 160)-(318, 198), 0, BF PRINT "Encounter!!!" CIRCLE (96, 80), 10, 15 PCOPY 1, 0 DO IF INKEY$ = " " THEN EXIT DO LOOP CALL encounter END IF CALL drawscreen END SUB SUB moveup FOR a = 1 TO 7 IF map$(px, py - 1) = iterrain$(a) THEN EXIT SUB NEXT a py = py - 1 RANDOMIZE TIMER CALL drawscreen IF INT(RND * 60) = 1 THEN LOCATE 21, 2 LINE (2, 160)-(318, 198), 0, BF PRINT "Encounter!!!" CIRCLE (160, 112), 10, 15 PCOPY 1, 0 DO IF INKEY$ = " " THEN EXIT DO LOOP CALL encounter END IF CALL drawscreen END SUB