'=========================================================================== ' Subject: TALES OF A MEEK (RPG GAME) Date: 05-16-99 (10:22) ' Author: JEM GAMES Code: QB, QBasic, PDS ' Origin: www.qbasicfiles.8m.com Packet: GAMES.ABC '=========================================================================== 'Tales of a Meek ' By: JEM GAMES 'Thank you for playing. 'Controls: 'Arrow keys: Movement [S]ave game [L]oad game [Q]uit game 'Any questions? Comments? E-mail JEM BAKA@aol.com 'Press F5 to start. DIM Map$(6, 15, 15) FOR ScreenNum = 1 TO 6 FOR y = 1 TO 15 FOR x = 1 TO 15 READ Map$(ScreenNum, x, y) NEXT x NEXT y NEXT ScreenNum SCREEN 13 RESTORE IconData DIM Grass%(64) LOCATE 1, 1: COLOR 2: PRINT "Û" GET (0, 0)-(7, 7), Grass% DIM Water%(64) LOCATE 1, 1: COLOR 1: PRINT "Û" GET (0, 0)-(7, 7), Water% DIM Desert%(64) LOCATE 1, 1: COLOR 14: PRINT "Û" GET (0, 0)-(7, 7), Desert% DIM Person%(64) LOCATE 1, 1: COLOR 12: PRINT CHR$(2) GET (0, 0)-(7, 7), Person% DIM Mountain%(64) LOCATE 1, 1: COLOR 2: PRINT "Û" FOR z = 1 TO 9 READ l IF l = 111 THEN READ x, y, C PSET (x, y), C END IF IF l = 555 THEN READ x, y, C, cc PAINT (x, y), C, cc END IF IF l = 999 THEN READ x, y, p, q, C LINE (x, y)-(p, q), C END IF NEXT z GET (0, 0)-(7, 7), Mountain% DIM Wall%(64) LOCATE 1, 1: COLOR 7: PRINT "Û" FOR z = 1 TO 11 READ l IF l = 111 THEN READ x, y, C PSET (x, y), C END IF IF l = 555 THEN READ x, y, C, cc PAINT (x, y), C, cc END IF IF l = 999 THEN READ x, y, p, q, C LINE (x, y)-(p, q), C END IF NEXT z GET (0, 0)-(7, 7), Wall% DIM Castle%(64) LOCATE 1, 1: COLOR 2: PRINT "Û" FOR z = 1 TO 12 READ l IF l = 111 THEN READ x, y, C PSET (x, y), C END IF IF l = 555 THEN READ x, y, C, cc PAINT (x, y), C, cc END IF IF l = 999 THEN READ x, y, p, q, C LINE (x, y)-(p, q), C END IF NEXT z GET (0, 0)-(7, 7), Castle% DIM Town%(64) LOCATE 1, 1: COLOR 2: PRINT "Û" FOR z = 1 TO 12 READ l IF l = 111 THEN READ x, y, C PSET (x, y), C END IF IF l = 555 THEN READ x, y, C, cc PAINT (x, y), C, cc END IF IF l = 999 THEN READ x, y, p, q, C LINE (x, y)-(p, q), C END IF NEXT z GET (0, 0)-(7, 7), Town% DIM Tree%(64) LOCATE 1, 1: COLOR 2: PRINT "Û" FOR z = 1 TO 7 READ l IF l = 111 THEN READ x, y, C PSET (x, y), C END IF IF l = 555 THEN READ x, y, C, cc PAINT (x, y), C, cc END IF IF l = 999 THEN READ x, y, p, q, C LINE (x, y)-(p, q), C END IF NEXT z GET (0, 0)-(7, 7), Tree% Opening: SCREEN 13: CLS DRAW "c9 s50 bl5 bu5 r7 f1 e1 r1 d5 l1 u3 g1 h1 d3 l4 u1 g1 l2 h1 u1 r1 d1 r1 e1 u2 l2 u1 S5 u1 r1 S50 Br4 Bd1 d1 r1 d1 l1 d1 r2 u3 l2" PAINT (100, 40), 1, 9 LOCATE 14, 12: COLOR 1: PRINT "J E M G A M E S" FOR x = 1 TO 10000: NEXT x CLS LOCATE 10, 12: COLOR 15: PRINT "Proudly Presents:" FOR x = 1 TO 5000: NEXT x CLS LOCATE 9, 11: COLOR 14: PRINT "T a l e s o f a" DRAW "S50 Bl8 Bu2 C4" DRAW "S50 r1 f1 e1 r1 d5 l1 u3 g1 h1 d3 l1 u5" DRAW "S50 Br5 d5 r3 u1 l2 u1 r1 u1 l1 u1 r2 u1 S5 u2 S50 l3" DRAW "S50 Br4 d5 r3 u1 l2 u1 r1 u1 l1 u1 r2 u1 S5 u2 S50 l3" DRAW "S50 Br4 d5 r1 u2 f1 d1 r1 u1 h1 e1 u2 l1 d1 g1 u2 l1" DO IF tim < 150 THEN tim = tim + 1 IF tim = 150 THEN LOCATE 19, 9: COLOR 15: PRINT "Press any key to continue" RANDOMIZE TIMER col = INT(RND * 4) + 1 IF col = 1 THEN col = 14 IF col = 2 THEN col = 4 IF col = 3 THEN col = 9 IF col = 4 THEN col = 7 IF col = 5 THEN col = 8 PAINT (70, 80), col, 4 PAINT (150, 80), col, 4 PAINT (200, 80), col, 4 PAINT (250, 80), col, 4 LOOP UNTIL INKEY$ <> "" mHP = 25: hp = mHP mMP = 10: mp = mMP Level = 1: NL = 100 gp = 50: Thaco = 20 hd = 13: md = 3 GOSUB DrawScreen: CurrentScreen = 3 GOSUB Drawmap Line1$ = "Thank you for" Line2$ = "playing" Line3$ = "" Line4$ = "Tales of a Meek" GOSUB PutText x = 8: y = 8 PUT ((x * 8) + 168, (y * 8) + 32), Person%, PSET Controls: DO a$ = INKEY$ IF a$ = CHR$(0) + "H" THEN Oldx = x: Oldy = y y = y - 1 GOSUB CheckLocation END IF IF a$ = CHR$(0) + "P" THEN Oldx = x: Oldy = y y = y + 1 GOSUB CheckLocation END IF IF a$ = CHR$(0) + "K" THEN Oldx = x: Oldy = y x = x - 1 GOSUB CheckLocation END IF IF a$ = CHR$(0) + "M" THEN Oldx = x: Oldy = y x = x + 1 GOSUB CheckLocation END IF IF UCASE$(a$) = "S" THEN Saver$ = "TOAM.DAT" OPEN Saver$ FOR OUTPUT AS #1 WRITE #1, CurrentScreen, x, y WRITE #1, mHP, hp, hd WRITE #1, mMP, mp, md WRITE #1, Weapon, Armor WRITE #1, Level, xp, NL WRITE #1, gp, Thaco CLOSE END IF IF UCASE$(a$) = "L" THEN Saver$ = "TOAM.DAT" OPEN Saver$ FOR INPUT AS #1 INPUT #1, CurrentScreen, x, y INPUT #1, mHP, hp, hd INPUT #1, mMP, mp, md INPUT #1, Weapon, Armor INPUT #1, Level, xp, NL INPUT #1, gp, Thaco CLOSE GOSUB DrawScreen: GOSUB Drawmap: GOTO Controls END IF IF a$ = " " THEN LOCATE 14, 4: PRINT "Level: " LOCATE 16, 4: PRINT "Exp Needed: " LOCATE 18, 4: PRINT " " LOCATE 20, 4: PRINT " " LOCATE 14, 10: PRINT Level LOCATE 18, 6: PRINT NL - xp DO: LOOP UNTIL INKEY$ <> "" GOSUB PutText END IF IF a$ = "+" THEN gp = gp + 1: GOSUB PutStats IF UCASE$(a$) = "Q" THEN SYSTEM LOOP CheckLocation: IF x = 16 AND CurrentScreen = 5 THEN CurrentScreen = 4 x = 6: y = 10 Line1$ = "Thank you for" Line2$ = "playing" Line3$ = "" Line4$ = "Tales of a Meek" GOSUB PutText GOSUB Drawmap END IF IF y = 16 AND CurrentScreen = 6 THEN CurrentScreen = 2 x = 14: y = 6 Line1$ = "Thank you for" Line2$ = "playing" Line3$ = "" Line4$ = "Tales of a Meek" GOSUB PutText GOSUB Drawmap END IF IF y = 0 THEN CurrentScreen = CurrentScreen - 2 y = 15 GOSUB Drawmap END IF IF y = 16 THEN CurrentScreen = CurrentScreen + 2 y = 1 GOSUB Drawmap END IF IF x = 0 THEN CurrentScreen = CurrentScreen - 1 x = 15 GOSUB Drawmap END IF IF x = 16 THEN CurrentScreen = CurrentScreen + 1 x = 1 GOSUB Drawmap END IF IF Map$(CurrentScreen, Oldx, Oldy) = "g" THEN PUT ((Oldx * 8) + 168, (Oldy * 8) + 32), Grass%, PSET IF Map$(CurrentScreen, Oldx, Oldy) = "t" THEN PUT ((Oldx * 8) + 168, (Oldy * 8) + 32), Tree%, PSET IF Map$(CurrentScreen, Oldx, Oldy) = "d" THEN PUT ((Oldx * 8) + 168, (Oldy * 8) + 32), Desert%, PSET IF Map$(CurrentScreen, x, y) = "w" THEN x = Oldx: y = Oldy IF Map$(CurrentScreen, x, y) = "m" THEN x = Oldx: y = Oldy IF Map$(CurrentScreen, x, y) = "b" THEN x = Oldx: y = Oldy IF Map$(CurrentScreen, x, y) = "p" THEN GOSUB LetsTalk x = Oldx: y = Oldy END IF IF Map$(CurrentScreen, x, y) = "@" THEN CurrentScreen = 5 x = 14: y = 8 Line1$ = "" Line2$ = "Welcome to" Line3$ = " Murmini" Line4$ = "" GOSUB PutText GOSUB Drawmap END IF IF Map$(CurrentScreen, x, y) = "#" THEN CurrentScreen = 6 x = 2: y = 14 Line1$ = "" Line2$ = "Bad Guy's Cave." Line3$ = "" Line4$ = "" GOSUB PutText GOSUB Drawmap END IF PUT ((x * 8) + 168, (y * 8) + 32), Person%, PSET IF CurrentScreen <> 5 THEN HowStep = HowStep + 1 IF HowStep = 8 THEN HowStep = 0: GOTO WhatMonster END IF RETURN LetsTalk: IF CurrentScreen = 5 AND x = 2 AND y = 2 THEN Line1$ = "Hello, I sell " Line2$ = "weapons. What" Line3$ = "would you like?" Line4$ = " More >" GOSUB PutText DO: LOOP UNTIL INKEY$ <> "" Line1$ = "[R]apier. . .25" Line2$ = "[B]attle Axe 50" Line3$ = "[H]alberd . .75" Line4$ = "[N]othing" GOSUB PutText DO a$ = INKEY$ IF UCASE$(a$) = "R" AND gp >= 25 THEN gp = gp - 25: Weapon = 1: GOSUB PutStats: EXIT DO IF UCASE$(a$) = "B" AND gp >= 50 THEN gp = gp - 50: Weapon = 2: GOSUB PutStats: EXIT DO IF UCASE$(a$) = "H" AND gp >= 75 THEN gp = gp - 75: Weapon = 3: GOSUB PutStats: EXIT DO IF UCASE$(a$) = "N" THEN EXIT DO LOOP END IF IF CurrentScreen = 5 AND x = 2 AND y = 4 THEN Line1$ = "Hello, I sell " Line2$ = "armor. What" Line3$ = "would you like?" Line4$ = " More >" GOSUB PutText DO: LOOP UNTIL INKEY$ <> "" Line1$ = "[L]eather . .15" Line2$ = "[C]hain . . .30" Line3$ = "[P]late . . .50" Line4$ = "[N]othing" GOSUB PutText DO a$ = INKEY$ IF UCASE$(a$) = "L" AND gp >= 15 THEN gp = gp - 15: Armor = 1: GOSUB PutStats: EXIT DO IF UCASE$(a$) = "C" AND gp >= 30 THEN gp = gp - 30: Armor = 2: GOSUB PutStats: EXIT DO IF UCASE$(a$) = "P" AND gp >= 50 THEN gp = gp - 50: Armor = 3: GOSUB PutStats: EXIT DO IF UCASE$(a$) = "N" THEN EXIT DO LOOP END IF IF CurrentScreen = 5 AND x = 12 AND y = 13 THEN Line1$ = "Welcome to " Line2$ = " Inn Murmini" Line3$ = "Would you like " Line4$ = "a room for 5gp?" GOSUB PutText DO a$ = INKEY$ IF UCASE$(a$) = "Y" AND gp >= 5 THEN gp = gp - 5 hp = mHP mp = mMP GOSUB PutStats EXIT DO END IF IF UCASE$(a$) = "N" THEN EXIT DO LOOP END IF IF CurrentScreen = 5 AND x = 14 AND y = 4 THEN Line1$ = "Are you going" Line2$ = "to save the" Line3$ = "princess from" Line4$ = "the evil man?" GOSUB PutText DO: LOOP UNTIL INKEY$ <> "" END IF IF CurrentScreen = 5 AND x = 5 AND y = 12 THEN Line1$ = "The princess " Line2$ = "was kidnaped" Line3$ = "by a man in" Line4$ = "the desert." GOSUB PutText DO: LOOP UNTIL INKEY$ <> "" END IF IF CurrentScreen = 6 AND x = 12 AND y = 4 THEN Line1$ = "Ha, ha, ha! I " Line2$ = "kidnaped the " Line3$ = "princess! And" Line4$ = " More >" GOSUB PutText DO: LOOP UNTIL INKEY$ <> "" Line1$ = "you'll have to" Line2$ = "defeat me to" Line3$ = "get her back!" Line4$ = "Ha, ha, ha!" GOSUB PutText DO: LOOP UNTIL INKEY$ <> "" Monster$ = "Evil Man" LastFight = 1 MonsterHP = 300 MonsterAC = 2 MonsterDam = 10 MonsterThaco = 4 GOTO Fight END IF Line1$ = "" Line2$ = "Welcome to" Line3$ = " Murmini" Line4$ = "" GOSUB PutText RETURN DrawScreen: SCREEN 13: CLS LOCATE 2, 12: COLOR 4: PRINT "Tales of a "; : COLOR 14: PRINT "Meek" LOCATE 23, 31: COLOR 1: PRINT "JEM GAMES" FOR q = 23 TO 37 LOCATE 5, q: COLOR 15: PRINT "Í" LOCATE 21, q: COLOR 15: PRINT "Í" NEXT q FOR p = 6 TO 20 LOCATE p, 22: COLOR 15: PRINT "º" LOCATE p, 38: COLOR 15: PRINT "º" NEXT p LOCATE 5, 22: COLOR 15: PRINT "É": LOCATE 13, 2: COLOR 15: PRINT "É" LOCATE 5, 38: COLOR 15: PRINT "»": LOCATE 13, 20: COLOR 15: PRINT "»" LOCATE 21, 22: COLOR 15: PRINT "È": LOCATE 21, 2: COLOR 15: PRINT "È" LOCATE 21, 38: COLOR 15: PRINT "¼": LOCATE 21, 20: COLOR 15: PRINT "¼" FOR q = 3 TO 19 LOCATE 13, q: COLOR 15: PRINT "Í" LOCATE 21, q: COLOR 15: PRINT "Í" NEXT q FOR p = 14 TO 20 LOCATE p, 2: COLOR 15: PRINT "º" LOCATE p, 20: COLOR 15: PRINT "º" NEXT p GOSUB PutStats RETURN Drawmap: IF CurrentScreen = 0 THEN CurrentScreen = 1 FOR p = 1 TO 15 FOR q = 1 TO 15 IF Map$(CurrentScreen, p, q) = "g" THEN PUT ((p * 8) + 168, (q * 8) + 32), Grass%, PSET IF Map$(CurrentScreen, p, q) = "t" THEN PUT ((p * 8) + 168, (q * 8) + 32), Tree%, PSET IF Map$(CurrentScreen, p, q) = "w" THEN PUT ((p * 8) + 168, (q * 8) + 32), Water%, PSET IF Map$(CurrentScreen, p, q) = "m" THEN PUT ((p * 8) + 168, (q * 8) + 32), Mountain%, PSET IF Map$(CurrentScreen, p, q) = "d" THEN PUT ((p * 8) + 168, (q * 8) + 32), Desert%, PSET IF Map$(CurrentScreen, p, q) = "@" THEN PUT ((p * 8) + 168, (q * 8) + 32), Town%, PSET IF Map$(CurrentScreen, p, q) = "#" THEN PUT ((p * 8) + 168, (q * 8) + 32), Castle%, PSET IF Map$(CurrentScreen, p, q) = "b" THEN PUT ((p * 8) + 168, (q * 8) + 32), Wall%, PSET IF Map$(CurrentScreen, p, q) = "p" THEN PUT ((p * 8) + 168, (q * 8) + 32), Person%, PSET NEXT q NEXT p RETURN PutStats: LOCATE 5, 6: COLOR 15: PRINT "HP:"; : COLOR 7: PRINT hp LOCATE 7, 6: COLOR 15: PRINT "MP:"; : COLOR 7: PRINT mp LOCATE 9, 6: COLOR 15: PRINT "GP:"; : COLOR 7: PRINT gp LOCATE 11, 6: COLOR 15: PRINT "Exp:"; : COLOR 7: PRINT xp RETURN PutText: LOCATE 14, 4: PRINT " " LOCATE 16, 4: PRINT " " LOCATE 18, 4: PRINT " " LOCATE 20, 4: PRINT " " LOCATE 14, 4: PRINT Line1$ LOCATE 16, 4: PRINT Line2$ LOCATE 18, 4: PRINT Line3$ LOCATE 20, 4: PRINT Line4$ RETURN WhatMonster: RANDOMIZE TIMER what = INT(RND * 8) IF what = 0 THEN what = 1 IF what = 8 AND Level < 4 THEN what = 6 IF what = 3 AND Level > 4 THEN what = 4 IF what = 4 AND Level > 5 THEN what = 5 IF what = 2 AND Level > 5 THEN what = 7 IF what = 1 THEN Monster$ = "Goblin" IF what = 2 THEN Monster$ = "Kobold" IF what = 3 THEN Monster$ = "Imp" IF what = 4 THEN Monster$ = "Orc" IF what = 5 THEN Monster$ = "Troll" IF what = 6 THEN Monster$ = "HobGoblin" IF what = 7 THEN Monster$ = "Ogre" IF what = 8 THEN Monster$ = "Dragon" MonsterHP = INT(RND * (10 * Level)) IF MonsterHP < 4 THEN MonsterHP = 4 MonsterAC = (10 - (Level - 2)) MonsterDam = INT(RND * (4 * Level)) IF MonsterDam < 4 THEN MonsterDam = 4 MonsterThaco = INT(RND * (20 - (Level - 1))) IF MonsterThaco < 8 THEN MonsterThaco = 10 MonsterGp = INT(RND * 5) IF MonsterGp = 0 THEN MonsterGp = 1 MonsterXP = INT(RND * 25) IF MonsterXP < 5 THEN MonsterXP = 5 IF Level > 7 THEN MonsterXP = MonsterXP * 2 GOSUB Fight RETURN Fight: IF Weapon = 0 THEN Dam = 3 IF Weapon = 1 THEN Dam = 5 IF Weapon = 2 THEN Dam = 7 IF Weapon = 3 THEN Dam = 9 IF Armor = 0 THEN AC = 9 IF Armor = 1 THEN AC = 7 IF Armor = 2 THEN AC = 5 IF Armor = 3 THEN AC = 3 PLAY "L7 acbdef" LOCATE 14, 4: PRINT "You have " LOCATE 16, 4: PRINT "encountered a " LOCATE 18, 4: PRINT Monster$; "!" LOCATE 20, 4: PRINT " More >" DO: LOOP UNTIL INKEY$ <> "" AttackPrompt: LOCATE 14, 4: PRINT "What shall you " LOCATE 16, 4: PRINT "do? " LOCATE 18, 4: PRINT "[A]ttack [R]un" LOCATE 20, 4: PRINT "[C]ast a spell " DO a$ = INKEY$ IF UCASE$(a$) = "A" THEN LOCATE 14, 4: PRINT " " LOCATE 16, 4: PRINT " " LOCATE 18, 4: PRINT " " LOCATE 20, 4: PRINT " " RANDOMIZE TIMER ToHit = INT(RND * 19) + 1 IF ToHit >= Thaco - MonsterAC THEN Damage = INT(RND * Dam) + 1 MonsterHP = MonsterHP - Damage LOCATE 14, 4: PRINT "You hit the" LOCATE 16, 4: PRINT Monster$; " for" LOCATE 18, 4: PRINT Damage; "damage!" LOCATE 20, 4: PRINT " More >" DO: LOOP UNTIL INKEY$ <> "" IF MonsterHP <= 0 THEN GOTO MonsterDead GOTO MonsterAttack END IF LOCATE 14, 4: PRINT "You missed the " LOCATE 16, 4: PRINT Monster$; "." LOCATE 18, 4: PRINT " " LOCATE 20, 4: PRINT " More >" DO: LOOP UNTIL INKEY$ <> "" GOSUB MonsterAttack END IF IF a$ = "&" THEN mHP = mHP - 1: GOTO MonsterDead IF UCASE$(a$) = "R" THEN RANDOMIZE TIMER LostGP = INT(RND * INT(gp / 2)) LOCATE 14, 4: PRINT "You ran away " LOCATE 16, 4: PRINT "from the battle" LOCATE 18, 4: PRINT "and lost"; LostGP LOCATE 20, 4: PRINT "gp! " gp = gp - LostGP DO: LOOP UNTIL INKEY$ <> "" RETURN END IF IF a$ = ":" THEN hp = mHP IF UCASE$(a$) = "C" THEN LOCATE 14, 4: PRINT "Cast what spell" LOCATE 16, 4: PRINT "[H]eal " LOCATE 18, 4: PRINT " " LOCATE 20, 4: PRINT " [C]ancel " IF Level >= 3 THEN LOCATE 16, 11: PRINT "[M]issle" IF Level >= 5 THEN LOCATE 18, 4: PRINT "[S]leep" IF Level >= 8 THEN LOCATE 18, 12: PRINT "[F]ire" DO a$ = INKEY$ IF UCASE$(a$) = "H" AND mp >= 1 THEN mp = mp - 1 HealHP = 6 * Level hp = hp + HealHP IF hp > mHP THEN hp = mHP LOCATE 14, 4: PRINT "You heal"; HealHP LOCATE 16, 4: PRINT "Hit Points! " LOCATE 18, 4: PRINT " " LOCATE 20, 4: PRINT " " DO: LOOP UNTIL INKEY$ <> "" GOTO MonsterAttack END IF IF UCASE$(a$) = "M" AND Level >= 3 AND mp >= 3 THEN mp = mp - 3 RANDOMIZE TIMER Damage = INT(RND * (4 * Level)) MonsterHP = MonsterHP - Damage LOCATE 14, 4: PRINT "Your Magic " LOCATE 16, 4: PRINT "Missle does"; Damage LOCATE 18, 4: PRINT "damage to the " LOCATE 20, 4: PRINT Monster$; "!" DO: LOOP UNTIL INKEY$ <> "" IF MonsterHP <= 0 THEN GOTO MonsterDead GOTO MonsterAttack END IF IF UCASE$(a$) = "S" AND Level >= 5 AND mp >= 5 THEN mp = mp - 5 Sleepy = 1 LOCATE 14, 4: PRINT "The monster is " LOCATE 16, 4: PRINT "asleep! " LOCATE 18, 4: PRINT " " LOCATE 20, 4: PRINT " " DO: LOOP UNTIL INKEY$ <> "" GOTO MonsterAttack END IF IF UCASE$(a$) = "F" AND Level >= 8 AND mp >= 8 THEN mp = mp - 8 RANDOMIZE TIMER Damage = INT(RND * (Damage * Level)) MonsterHP = MonsterHP - Damage LOCATE 14, 4: PRINT "Your Fire Ball " LOCATE 16, 4: PRINT "does"; Damage; "damage" LOCATE 18, 4: PRINT "to the monster!" LOCATE 20, 4: PRINT " " DO: LOOP UNTIL INKEY$ <> "" IF MonsterHP <= 0 THEN GOTO MonsterDead GOTO MonsterAttack END IF IF UCASE$(a$) = "C" THEN GOTO AttackPrompt LOOP END IF LOOP MonsterAttack: IF Sleepy = 1 THEN LOCATE 14, 4: PRINT "The monster is " LOCATE 16, 4: PRINT "asleep so it " LOCATE 18, 4: PRINT "can't attack! " LOCATE 20, 4: PRINT " " NoSleep = INT(RND * 20) IF NoSleep > 10 THEN Sleepy = 0 DO: LOOP UNTIL INKEY$ <> "" GOTO AttackPrompt END IF RANDOMIZE TIMER ToHit = INT(RND * 19) + 1 IF ToHit > MonsterThaco - AC THEN Damage = INT(RND * MonsterDam) + 1 hp = hp - Damage LOCATE 14, 4: PRINT "The "; Monster$ LOCATE 16, 4: PRINT "hit you for"; Damage LOCATE 18, 4: PRINT "damage! " LOCATE 20, 4: PRINT " " DO: LOOP UNTIL INKEY$ <> "" IF hp <= 0 THEN LOCATE 14, 4: PRINT "You have been " LOCATE 16, 4: PRINT "defeated . . . " LOCATE 18, 4: PRINT " " LOCATE 20, 4: PRINT " GAME OVER " DO: LOOP UNTIL INKEY$ <> "" PAINT (1, 1), 4 SYSTEM END IF END IF GOSUB PutStats GOTO AttackPrompt MonsterDead: LOCATE 14, 4: PRINT "You have killed" LOCATE 16, 4: PRINT "the "; Monster$; "!" LOCATE 18, 4: PRINT "You get"; MonsterGp; "gp" LOCATE 20, 4: PRINT "and"; MonsterXP; "XP!" gp = gp + MonsterGp xp = xp + MonsterXP DO: LOOP UNTIL INKEY$ <> "" IF xp >= NL THEN mHP = mHP + hd hp = mHP mMP = mMP + md mp = mMP NL = NL + NL Level = Level + 1 IF Thaco > 5 THEN Thaco = Thaco - 1 LOCATE 14, 4: PRINT "You raised your" LOCATE 16, 4: PRINT "level! " LOCATE 18, 4: PRINT " " LOCATE 20, 4: PRINT " " IF Level = 3 THEN LOCATE 18, 4: PRINT "You learn Magic" LOCATE 20, 4: PRINT "Missle! " END IF IF Level = 5 THEN LOCATE 18, 4: PRINT "You learn Sleep" END IF IF Level = 8 THEN LOCATE 18, 4: PRINT "You learn Fire" LOCATE 20, 4: PRINT "Ball!" END IF DO: LOOP UNTIL INKEY$ <> "" END IF GOSUB PutStats GOSUB PutText IF LastFight = 1 THEN GOTO EndGame GOTO Controls EndGame: LOCATE 14, 4: PRINT "You saved the " LOCATE 16, 4: PRINT "princess and " LOCATE 18, 4: PRINT "brought peace " LOCATE 20, 4: PRINT " More >" DO: LOOP UNTIL INKEY$ <> "" LOCATE 14, 4: PRINT "back to the " LOCATE 16, 4: PRINT "world! You " LOCATE 18, 4: PRINT "became the next" LOCATE 20, 4: PRINT "king of Murmini" DO: LOOP UNTIL INKEY$ <> "" LOCATE 14, 4: PRINT "Congradulations" LOCATE 16, 4: PRINT "You have beaten" LOCATE 18, 4: PRINT "the game. You " LOCATE 20, 4: PRINT "are the best! " DO: LOOP UNTIL INKEY$ <> "" SYSTEM DATA w, w, w, w, w, w, w, w, w, w, w, w, w, w, w DATA w, w, w, w, g, g, g, g, g, g, g, g, t, t, t DATA w, w, w, g, g, g, g, g, g, g, g, t, t, t, t DATA w, w, w, w, g, g, g, g, g, g, t, t, t, t, t DATA w, g, g, w, g, g, g, g, g, t, t, t, t, t, t DATA w, g, g, w, w, w, w, w, t, t, t, t, t, t, t DATA w, g, g, g, g, g, g, g, w, t, t, t, t, t, t DATA w, g, g, g, g, g, g, g, g, w, t, t, t, t, t DATA w, g, t, t, g, g, g, g, d, d, d, t, t, t, t DATA w, g, g, t, t, t, g, g, g, w, t, t, t, t, t DATA w, t, g, g, t, t, t, g, g, t, w, t, t, t, t DATA w, t, t, g, g, g, t, g, g, t, t, w, w, w, t DATA w, t, t, t, t, t, t, t, g, g, t, t, g, w, w DATA w, t, t, t, t, t, t, t, g, t, t, t, t, g, g DATA w, t, t, t, t, t, g, g, t, t, t, t, g, g, g DATA w, w, w, w, w, w, w, w, w, w, w, w, w, w, w DATA t, w, w, w, g, g, d, d, d, d, d, w, w, w, w DATA t, w, g, g, g, g, m, m, m, m, d, d, w, w, w DATA t, w, w, g, g, g, g, g, m, m, m, d, d, w, w DATA t, t, w, g, g, g, g, g, g, m, m, m, m, #, w DATA t, t, w, w, g, g, g, g, g, m, m, m, m, d, w DATA t, t, t, w, w, w, g, g, g, g, m, m, m, d, w DATA t, t, t, w, w, w, w, g, g, g, m, m, m, d, w DATA t, t, w, w, t, t, w, w, g, g, m, m, m, d, w DATA t, t, w, w, t, t, w, w, g, g, m, m, m, d, w DATA t, w, w, w, w, w, w, g, g, g, m, m, m, d, w DATA w, w, g, g, w, w, g, g, g, g, m, m, m, d, w DATA w, g, g, g, g, g, g, g, g, g, m, m, m, d, w DATA g, g, g, g, g, g, g, g, g, g, m, m, m, d, w DATA g, g, g, g, g, g, g, g, g, g, m, m, m, d, w DATA w, t, t, t, t, t, g, g, t, t, t, t, g, g, g DATA w, t, t, t, t, t, t, g, g, t, t, g, g, t, t DATA w, g, t, t, t, t, t, g, g, g, g, g, t, t, t DATA w, g, g, t, t, t, t, t, g, g, t, t, t, t, t DATA w, g, g, t, t, t, t, t, t, t, t, t, t, t, t DATA w, g, t, t, t, t, t, t, t, t, t, t, t, t, t DATA w, g, t, t, t, t, t, t, t, t, t, t, t, t, t DATA w, g, t, t, t, t, t, t, t, t, t, t, t, t, t DATA w, g, g, t, t, t, t, t, t, t, t, t, t, t, t DATA w, g, g, t, t, t, g, t, t, t, t, t, t, t, t DATA w, g, g, g, t, t, g, g, g, t, t, t, t, t, t DATA w, w, g, g, t, t, t, t, g, t, t, g, g, t, t DATA w, w, w, g, g, t, g, t, g, t, g, g, g, t, g DATA w, w, w, w, g, g, g, g, g, g, g, g, g, g, g DATA w, w, w, w, w, w, w, w, w, w, w, w, w, w, w DATA g, g, g, g, g, g, g, g, g, g, m, m, m, d, w DATA t, g, g, g, g, g, g, g, g, t, m, m, m, d, w DATA t, t, g, g, g, g, g, g, t, t, m, m, m, d, w DATA t, t, t, g, g, t, t, t, t, t, m, m, m, d, w DATA t, t, t, t, t, t, m, m, t, t, m, m, m, d, w DATA t, t, t, t, m, m, m, t, t, t, m, m, m, d, w DATA t, t, t, m, m, m, t, t, t, t, m, m, m, d, w DATA t, t, t, m, m, t, t, t, t, t, m, m, m, d, w DATA t, t, m, m, t, t, t, t, t, t, m, m, m, d, w DATA t, g, m, m, @, t, t, t, t, m, m, m, m, d, w DATA t, g, m, m, t, t, t, t, m, m, m, m, d, d, w DATA t, g, g, m, m, t, t, m, m, m, m, d, d, w, w DATA g, g, g, g, m, m, m, m, m, m, d, d, w, w, w DATA g, g, g, g, d, d, d, d, d, d, d, w, w, w, w DATA w, w, w, w, w, w, w, w, w, w, w, w, w, w, w DATA b, b, b, b, b, b, b, b, b, b, b, b, b, b, b DATA b, p, g, g, b, t, t, t, t, t, t, t, t, t, b DATA b, b, b, g, g, g, g, g, g, g, g, g, b, b, b DATA b, p, g, g, b, g, g, g, g, g, g, g, b, p, b DATA b, b, b, b, b, g, g, g, g, g, g, g, b, g, b DATA b, t, g, g, g, g, g, g, g, g, g, g, b, g, b DATA b, t, g, g, g, g, g, g, g, g, g, g, g, g, b DATA b, t, g, g, t, t, t, t, g, g, g, g, g, g, g DATA b, t, g, t, t, w, w, t, t, g, g, g, g, g, g DATA b, t, g, t, w, w, w, w, t, g, b, b, b, b, b DATA b, t, g, t, w, w, w, w, t, g, g, g, g, g, b DATA b, t, g, t, p, w, w, t, t, g, b, b, b, g, b DATA b, t, g, g, t, t, t, t, g, g, b, p, b, g, b DATA b, t, t, t, t, t, t, t, t, t, b, g, g, g, b DATA b, b, b, b, b, b, b, b, b, b, b, b, b, b, b DATA b, b, b, b, b, b, b, b, b, b, b, b, b, b, b DATA b, g, g, g, g, g, g, g, g, g, g, g, g, g, b DATA b, g, b, b, b, b, b, b, b, b, b, b, b, g, b DATA b, g, b, g, g, g, b, g, g, g, b, p, b, g, b DATA b, g, g, g, b, g, g, g, b, g, b, g, b, g, b DATA b, g, b, b, b, b, b, b, b, g, b, g, b, g, b DATA b, g, b, g, g, g, g, g, b, g, b, g, b, g, b DATA b, g, b, b, b, b, b, g, b, g, b, g, b, g, b DATA b, g, b, g, g, g, b, g, b, g, b, g, b, g, b DATA b, g, g, g, g, g, b, g, b, g, g, g, b, g, b DATA b, g, b, g, g, g, b, g, b, b, b, g, b, g, b DATA b, g, b, b, b, g, b, g, g, b, g, g, b, g, b DATA b, g, b, g, b, g, b, b, g, b, b, b, b, g, b DATA b, g, b, g, g, g, g, g, g, b, g, g, g, g, b DATA b, g, b, b, b, b, b, b, b, b, b, b, b, b, b IconData: DATA 999, 1, 7, 6, 7, 0, 999, 1, 5, 1, 6, 0, 999, 7, 5, 7, 6, 0 DATA 999, 3, 2, 3, 3, 0, 999, 6, 3, 6, 4, 0, 111, 5, 2, 0 DATA 111, 2, 4, 0, 111, 4, 1, 0, 555, 4, 5, 8, 0 DATA 999, 0, 0, 1, 0, 0, 999, 3, 0, 7, 0, 0, 999, 0, 1, 0, 3, 0 DATA 999, 1, 4, 1, 5, 0, 999, 0, 6, 0, 7, 0, 999, 1, 7, 7, 7, 0 DATA 999, 7, 1, 7, 3, 0, 999, 6, 4, 5, 4, 0, 999, 7, 5, 7, 6, 0 DATA 999, 2, 1, 3, 2, 0, 111, 4, 5, 0 DATA 999, 1, 2, 6, 2, 8, 999, 1, 3, 6, 3, 8, 999, 1, 4, 6, 4, 8 DATA 999, 1, 5, 2, 5, 8, 999, 5, 5, 6, 5, 8, 999, 1, 6, 2, 6, 8 DATA 999, 5, 6, 6, 6, 8, 999, 3, 1, 4, 1, 8, 111, 1, 1, 8, 111, 6, 1, 8 DATA 999, 3, 5, 4, 5, 0, 999, 3, 6, 4, 6, 0 DATA 999, 0, 2, 2, 0, 0, 999, 2, 0, 4, 2, 0, 999, 1, 2, 1, 3, 6 DATA 999, 2, 1, 2, 2, 6, 999, 3, 2, 3, 3, 6, 111, 2, 3, 0 DATA 999, 5, 4, 3, 6, 0, 999, 5, 4, 7, 6, 0, 999, 4, 6, 4, 7, 6 DATA 999, 5, 5, 5, 6, 6, 999, 6, 6, 6, 7, 6, 111, 5, 7, 0 DATA 999, 3, 1, 4, 1, 10, 999, 2, 2, 5, 2, 10, 999, 1, 3, 6, 3, 10 DATA 999, 1, 4, 6, 4, 10, 999, 2, 5, 5, 5, 10, 999, 3, 6, 4, 6, 6 DATA 999, 3, 7, 4, 7, 6 'Tales of a Meek was programed by JEM GAMES 'Tales of a Meek Version 2 coming soon!