'===========================================================================
' 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!
