'$DYNAMIC
DEFINT A-Z
DECLARE FUNCTION Surrounding% (ttlf$)
DECLARE SUB Epilogue ()
DECLARE SUB StayTheNight ()
DECLARE SUB CampGround ()
DECLARE SUB StatusScreen ()
DECLARE SUB EquipItems ()
DECLARE SUB Mosaic (Siz)
DECLARE SUB CheapSkate ()
DECLARE SUB EnsueBattle ()
DECLARE SUB WinBattle ()
DECLARE SUB SetBattle (batnum, enum)
DECLARE SUB RandBattle (batnum1, batnum2)
DECLARE SUB PlaceEnemies ()
DECLARE SUB AreYouDead ()
DECLARE SUB CharMenu (sabro)
DECLARE SUB CharAttack (sabro)
DECLARE SUB KytaAttack (etarg)
DECLARE SUB GlenlinAttack (etarg)
DECLARE SUB KohlenAttack (etarg)
DECLARE SUB BeamAttack (bnum, et)
DECLARE SUB JumpAttack (et)
DECLARE SUB TossStar (snum, etarg)
DECLARE SUB EnemyAttack (enum)
DECLARE SUB KillEnemy (et)
DECLARE SUB KillChar (et)
DECLARE SUB EnemyGo (sabro)
DECLARE SUB TargetEnemy1 (sabro)
DECLARE SUB TargetEnemy2 (sabro)
DECLARE SUB TargetChar (sabro)
DECLARE SUB ChooseBeam ()
DECLARE SUB ChooseMagic ()
DECLARE SUB ChooseStar ()
DECLARE SUB CastSpell (spnum, etarg)
DECLARE SUB EnemySpell (spnum)
DECLARE SUB ReflectSpell (spnum, et)
DECLARE SUB FireSpell (ex, ey, et)
DECLARE SUB IceSpell (ex, ey, et)
DECLARE SUB LightningSpell (ex, ey, et)
DECLARE SUB DrownSpell (ex, ey, et)
DECLARE SUB TremorSpell (ex, ey, et)
DECLARE SUB DamageChar (tdmg, et)
DECLARE SUB DamageEnemy (elm, tdmg, etarg)
DECLARE SUB NotEnoughMP ()
DECLARE SUB RunAway ()
DECLARE SUB InitializeGame ()
DECLARE SUB DrawBattleField ()
DECLARE SUB DrawBattleCave ()
DECLARE SUB DrawMap (backcolor)
DECLARE SUB DrawGraphic (xcoor, x2010)
DECLARE SUB GetGraphics ()
DECLARE SUB PlayMainGame ()
DECLARE SUB VillagerTalk (vlgnum)
DECLARE SUB InnkeeperTalk ()
DECLARE SUB ShopkeeperTalk ()
DECLARE SUB BuyItem ()
DECLARE SUB SellItem ()
DECLARE SUB QueenTalk ()
DECLARE SUB KingTalk ()
DECLARE SUB TreasureChest (trnum, fght, itmnum, quan)
DECLARE SUB EmptyChest ()
DECLARE SUB RemoveGraphics ()
DECLARE SUB delay (deltime!)
DIM SHARED Kyta1(140), Kyta2(140), Glenlin1(140), Glenlin2(140)
DIM SHARED Kohlen1(140), Kohlen2(140), Lit1(140), Lit2(140)
DIM SHARED Heal1(140), Vampira1(140), Bat1(140), Shruik1(140)
DIM SHARED Bang1(70), Bangm(70), Villager$(7, 3), treasure(6)
DIM SHARED Kytam(140), Kytm2(140), Glenlinm(140), Glenlim2(140)
DIM SHARED Kohlenm(140), Kohlem2(140), Litm(140), Lim2(140)
DIM SHARED Healm(140), Vampiram(140), Batm(140), Shruikm(140)
DIM SHARED curmap$(20), px, py, qu$(6), ki$(9), totalback, mn$(12)
DIM SHARED etype(5, 13), ename$(5), inven(18), equip(3, 2)
DIM SHARED charstat(3, 4), curhp(3), curgold, curmp, erlvl
DIM SHARED mpused(12), levelup(4), curexp(3), curlev(3), in$(18)
DIM SHARED spellsknown(12), mapnumber, enemyat(4), cannotrun
DIM SHARED weak(5), strn(5), maglearn(2 TO 5), magdata(12, 2)
DIM SHARED canequip(3, 4), chosen(3, 3), power(6 TO 17, 2)
DIM SHARED ehit(4), totalexp, totalgold, gitm(4), walled(4)
InitializeGame
PlayMainGame
RemoveGraphics
SCREEN 0: WIDTH 80: CLS : SYSTEM
'Data for KYTA character
DATA x,x,x,x,x,x,x,x,x,x,11,11,11,11,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,11,11,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,1,14,14,14,11,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,14,14,14,14,11,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,2,2,2,2,2,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,2,2,2,6,2,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,2,2,6,10,6,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,2,2,6,10,6,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,2,2,6,10,6,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,2,2,6,10,6,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,2,2,2,6,2,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,2,2,2,2,2,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,2,2,2,2,2,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,2,2,2,2,2,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,6,6,6,6,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,6,6,6,6,6,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,11,11,11,11,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,11,11,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,1,14,14,14,11,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,14,14,14,14,11,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,2,2,2,2,2,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,2,2,2,6,2,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,15,2,2,6,10,6,2,2,x,x,x,x,x
DATA x,x,x,7,7,7,7,15,6,6,10,6,2,2,2,x,x,x,x,x
DATA x,x,7,8,8,8,8,6,10,10,6,2,2,2,2,x,x,x,x,x
DATA x,x,x,7,7,7,7,15,6,6,2,2,2,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,15,2,2,2,2,2,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,2,2,2,2,2,2,2,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,2,2,2,2,2,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,2,2,2,2,2,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,6,6,6,6,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,6,6,6,6,6,x,x,x,x,x,x,x
'Data for GLENLIN character
DATA x,x,x,x,x,x,x,x,x,x,15,15,15,15,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,15,15,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,12,14,14,14,15,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,14,14,14,14,15,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,11,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,8,8,8,7,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,8,8,8,8,8,7,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,8,8,7,8,8,7,x,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,8,7,8,7,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,8,7,8,7,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,8,7,8,7,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,8,8,7,8,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,8,8,8,8,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,8,8,8,8,8,8,8,8,8,8,7,x,x,x
DATA x,x,x,x,x,x,8,8,8,8,8,8,8,8,8,8,7,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,6,6,6,12,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,6,6,6,6,12,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,15,15,15,15,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,15,15,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,12,14,14,14,15,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,14,14,14,14,15,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,11,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,7,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,7,8,7,8,8,8,8,7,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,7,8,7,7,8,8,8,7,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,7,8,8,7,8,8,7,x,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,7,7,8,8,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,8,8,8,8,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,8,8,8,8,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,8,8,8,8,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,x,8,8,8,8,8,8,8,8,7,x,x,x,x
DATA x,x,x,x,x,x,8,8,8,8,8,8,8,8,8,8,7,x,x,x
DATA x,x,x,x,x,x,8,8,8,8,8,8,8,8,8,8,7,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,14,14,14,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,6,6,6,12,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,6,6,6,6,12,x,x,x,x,x,x,x
'Data for KOHLEN character
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,8,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,9,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,0,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,0,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,8,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,0,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,0,0,0,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,0,8,0,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,8,0,8,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,8,0,8,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,8,0,8,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,0,8,0,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,0,0,0,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,0,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,0,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,0,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,0,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,8,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,4,4,4,4,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,8,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,9,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,0,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,0,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,8,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,0,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,0,0,0,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,0,8,0,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,8,8,0,8,0,8,8,x,x,x,x
DATA x,x,x,x,x,x,x,8,0,0,0,8,0,0,8,0,8,x,x,x
DATA x,x,x,x,x,x,x,x,8,8,8,0,0,0,8,8,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,0,0,0,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,0,0,0,0,8,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,0,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,0,0,0,8,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,8,0,8,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,8,0,8,8,8,8,8,4,x,x,x
DATA x,x,x,x,x,x,x,x,8,0,8,x,x,8,8,8,4,x,x,x
DATA x,x,x,x,x,x,4,4,4,4,x,x,x,x,x,x,4,x,x,x
'Data for LIGHTNING spell
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,14,14,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,14,x,x,14,14,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,14,x,14,x,x,14,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,14,x,14,x,x,x,14,x,x,14,14,14,14,x,x,x,x
DATA x,x,14,14,x,14,x,x,x,14,14,14,x,x,x,14,x,x,x,x
DATA x,x,14,14,x,x,14,x,14,x,x,x,x,14,14,14,x,x,x,x
DATA x,x,14,x,14,14,x,14,14,14,x,x,14,x,14,x,x,x,x,x
DATA x,x,14,x,x,x,14,x,x,14,x,14,x,x,14,x,x,x,x,x
DATA x,x,14,x,x,x,x,14,x,14,14,x,x,14,x,14,14,x,x,x
DATA x,x,14,14,x,14,14,14,x,14,x,14,14,x,x,x,x,14,x,x
DATA x,x,x,14,14,x,x,x,14,14,14,14,x,x,x,x,x,14,x,x
DATA x,x,x,14,x,x,x,14,x,14,x,x,14,14,x,x,14,x,x,x
DATA x,x,x,x,14,x,14,x,x,x,14,x,x,x,14,x,14,x,x,x
DATA x,x,x,x,14,14,x,14,x,x,14,x,14,14,x,14,14,x,x,x
DATA x,x,x,x,x,14,14,x,14,x,x,14,x,x,14,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,14,x,x,14,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,14,x,14,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,14,14,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,14,14,x,14,14,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,14,x,14,14,x,14,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,14,x,14,14,x,x,14,x,x,14,14,14,14,x,x,x,x
DATA x,x,14,14,x,14,14,x,x,14,14,14,x,14,14,14,x,x,x,x
DATA x,x,14,14,x,x,14,14,14,x,x,x,14,14,14,14,x,x,x,x
DATA x,x,14,14,14,14,x,14,14,14,x,14,14,x,14,x,x,x,x,x
DATA x,x,14,x,14,14,14,x,x,14,14,14,x,14,14,x,x,x,x,x
DATA x,x,14,x,x,x,14,14,x,14,14,x,14,14,14,14,14,x,x,x
DATA x,x,14,14,x,14,14,14,x,14,x,14,14,14,x,x,x,14,x,x
DATA x,x,x,14,14,x,x,14,14,14,14,14,14,14,x,x,x,14,x,x
DATA x,x,x,14,x,x,14,14,14,14,14,14,14,14,14,14,14,x,x,x
DATA x,x,x,x,14,14,14,14,x,14,14,14,14,14,14,14,14,x,x,x
DATA x,x,x,x,14,14,14,14,x,14,14,14,14,14,x,14,14,x,x,x
DATA x,x,x,x,x,14,14,x,14,x,14,14,x,x,14,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,14,x,14,14,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,14,x,14,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,14,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
'Data for HEAL spell
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,10,x,10,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,10,x,10,2,10,2,10,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,10,2,10,2,10,2,10,2,10,x,x,x,x,x
DATA x,x,x,x,10,2,10,2,10,2,10,2,10,2,10,x,x,x,x,x
DATA x,x,x,x,10,2,10,2,10,2,10,2,10,2,10,2,10,x,x,x
DATA x,x,x,2,10,2,10,2,10,2,10,2,10,2,10,2,10,x,x,x
DATA x,x,10,2,10,2,10,2,10,2,10,2,10,2,10,2,10,x,x,x
DATA x,x,10,2,10,2,10,2,10,2,10,2,10,2,10,2,10,2,x,x
DATA x,x,10,2,10,2,10,2,10,2,10,2,10,2,10,2,10,2,x,x
DATA x,x,10,2,10,2,10,2,10,2,10,2,10,2,10,2,10,x,x,x
DATA x,x,x,2,10,2,10,2,10,2,10,2,10,2,10,2,10,x,x,x
DATA x,x,x,x,10,2,10,2,10,2,10,2,10,2,10,2,10,x,x,x
DATA x,x,x,x,10,2,10,2,10,2,10,2,10,2,10,x,x,x,x,x
DATA x,x,x,x,x,x,10,2,10,2,10,2,10,2,10,x,x,x,x,x
DATA x,x,x,x,x,x,10,x,10,2,10,2,10,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,10,x,10,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
'Data for VAMPIRA enemy
DATA x,x,x,x,x,x,x,x,6,2,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,0,x,9,x,2,6,x,8,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,0,x,6,x,x,3,8,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,0,0,x,x,6,x,x,8,x,x,x,x,x,x,x
DATA x,x,x,x,5,x,x,6,x,x,6,x,8,8,x,x,x,x,x,x
DATA x,x,x,9,x,13,13,x,8,x,x,2,13,13,8,x,x,x,x,x
DATA x,x,x,x,0,13,13,x,8,x,x,x,13,13,8,x,x,x,x,x
DATA x,x,x,8,x,0,x,2,2,x,2,x,8,8,8,8,x,x,x,x
DATA x,x,x,9,8,0,x,x,x,2,x,6,8,8,8,8,x,x,x,x
DATA x,x,x,0,8,3,0,x,8,x,6,x,8,8,8,8,x,x,x,x
DATA x,x,x,0,x,8,x,x,8,1,3,x,8,8,8,8,x,x,x,x
DATA x,x,x,x,0,8,8,8,8,6,3,x,8,8,8,8,x,x,x,x
DATA x,x,x,x,x,x,3,7,x,6,x,x,8,8,8,8,x,x,x,x
DATA x,x,x,x,11,3,x,3,6,x,x,x,8,11,8,8,x,x,x,x
DATA x,x,x,x,11,11,11,11,11,11,11,11,11,11,8,x,x,x,x,x
DATA x,x,x,x,x,11,11,x,6,x,x,11,11,8,8,x,x,x,x,x
DATA x,x,x,x,3,0,11,11,11,11,11,11,8,8,x,x,x,x,x,x
DATA x,x,x,x,x,0,0,x,8,8,6,x,8,x,x,x,x,x,x,x
DATA x,x,x,x,3,0,x,x,8,8,2,8,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,3,x,6,x,8,x,x,x,x,x,x,x,x
'Data for VAMPIRE BAT enemy
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,13,13,x,x,x,x,x,x,x,x,x
DATA x,13,x,13,x,x,x,x,13,5,5,13,x,x,x,x,13,x,13,x
DATA x,13,13,5,13,x,13,x,9,5,9,13,x,13,x,13,5,13,13,x
DATA x,13,5,5,13,13,5,13,13,5,5,13,13,5,13,13,5,5,13,x
DATA x,13,5,5,5,5,5,13,13,5,5,13,13,5,5,5,5,5,13,x
DATA x,13,5,13,5,13,5,5,5,5,5,5,5,5,5,13,5,5,13,x
DATA x,13,5,5,5,13,5,13,5,5,13,5,5,13,5,13,5,5,13,x
DATA x,x,13,13,5,5,5,13,5,5,13,5,5,13,5,5,13,13,x,x
DATA x,x,x,x,13,5,5,5,5,5,5,5,5,5,5,13,x,x,x,x
DATA x,x,x,x,x,13,13,5,5,5,5,5,5,13,13,x,x,x,x,x
DATA x,x,x,x,x,x,x,13,13,13,13,13,13,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
'Data for SHRUIKEN item
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,7,7,7,7,7,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,7,8,8,8,8,8,7,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,7,8,8,8,8,7,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,7,8,8,8,7,x,x,x,x,x,7,x,x
DATA x,x,x,x,x,x,x,x,7,8,8,7,x,x,x,x,7,8,7,x
DATA x,x,x,x,x,x,x,x,7,8,8,7,x,x,x,7,8,8,7,x
DATA x,x,x,x,x,x,x,x,7,8,8,8,7,7,7,8,8,8,7,x
DATA x,x,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,7,x
DATA x,7,8,8,8,8,8,8,8,7,7,8,8,8,8,8,8,8,7,x
DATA x,7,8,8,8,8,8,8,8,8,8,8,7,7,7,7,7,7,x,x
DATA x,7,8,8,8,7,7,7,8,8,8,7,x,x,x,x,x,x,x,x
DATA x,7,8,8,7,x,x,7,8,8,7,x,x,x,x,x,x,x,x,x
DATA x,7,8,7,x,x,x,7,8,8,7,x,x,x,x,x,x,x,x,x
DATA x,x,7,x,x,x,x,7,8,8,7,x,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,7,8,8,8,7,x,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,7,8,8,8,8,7,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,7,8,8,8,8,8,7,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,7,7,7,7,7,x,x,x,x,x,x,x
DATA x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x
'Data for FIRE spell and various effects
DATA 4,4,4,x,x,4,4,x,x,4
DATA x,12,12,12,12,12,4,x,12,x
DATA x,x,4,12,12,12,12,4,12,x
DATA 4,4,12,12,14,14,12,12,12,4
DATA 4,12,12,14,14,14,14,14,12,4
DATA 4,12,14,14,15,15,14,12,12,x
DATA x,4,12,14,14,14,14,12,12,4
DATA x,4,12,12,12,14,14,12,12,4
DATA 4,4,4,x,12,12,12,12,12,4
DATA 4,4,x,x,x,4,4,x,4,4
'Data for villagers
DATA "Beware the king. He has not"
DATA "been himself lately.", ""
DATA "Treaure chests are not", "always good things. Beware"
DATA "creatures that lurk in them."
DATA "Buy a sword, a staff, and a","murasame as soon as you"
DATA "can. They'll help you."
DATA "The plate mail and ninja", "suit are readily avail-"
DATA "able. Where's the Guru Cloak?"
DATA "This isn't much of a game,","but the engine can be"
DATA "used to make a VERY cool one."
DATA "This game engine was created"
DATA "by Thomas Lipschultz in", "June 1995."
DATA "I'm worried about the king.","Queenie says he's been"
DATA "kidnapped, but I don't know..."
'Data for Queenie
DATA "QUEEN: Oh! This is horrible! The king"
DATA "has been kidnapped by vampires! Go into"
DATA "the cave behind me and rescue him!"
DATA "Please make haste! The kingdom depends"
DATA "on you! Good luck!"
DATA "KYTA: Don't worry, we'll get him back."
'Data for Kingie
DATA "KYTA: King! Are you all right?"
DATA "KING: Of course I am! I just wanted"
DATA "some time alone."
DATA "KYTA: But we were told you'd been"
DATA "kidnapped by vampires!"
DATA "KING: Oh yes, that..."
DATA "GLENLIN: Vampira!"
DATA "VAMPIRA: That's right! The king's"
DATA "body is OURS!"
'Data for inventory
DATA 10,10,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA "Shruiken","Ninja Star","Phaser","Spazer","Wide Beam"
DATA "Sword","Staff","Murasame","Dagger","Wand","Machete"
DATA "Chain Mail","Robes","Turtle Hide","Plate Mail"
DATA "Guru Cloak","Ninja Suit","Tent",9,12,10,13,11,14
DATA 6,9,12,15,7,10,13,16,8,11,14,17
'Data for character status
DATA 5467,0,107,95,3489,100,57,78,7886,0,99,97
'Data for weapon/armor power/price
DATA 182,109,203,107,57,99,95,78,97,137,255,151
DATA 1000,500,750,200,100,250,100,50,200,1000,15000,2000
'Data for magic
DATA "Cure","Heal","Fire","Ice","Lightning","Tremor","Drown"
DATA "Wall","Life","Quake","Phase","TidalWave"
DATA 1,1,1,1,1,1,1,1,1,0,0,0,5,8,7,7,7,10,10,6,15,20,40,40
DATA 10,11,12,0,6,0,6,1,1,0,2,0,3,0,5,0,4,0,7,0,8,0,5,1
DATA 0,1,4,1
'Data for enemies
DATA "EnergyOrb","Mage Bat","LifeDrainer","Vampire Bat"
DATA "Vampira",5,3,3,5,4,3,1,5,2,1
DATA 210,50,25,0,0,1,1,0,0,0,100,150,0
DATA 500,10,5,1,1,0,0,1,0,0,200,250,1
DATA 190,50,200,1,0,1,1,0,0,0,200,500,7
DATA 500,75,25,1,1,1,0,1,1,0,350,750,2
DATA 1000,50,100,1,1,1,1,1,1,1,750,1500,18
'Data for level-ups
DATA 500,1500,4000,10000
CityMap:
DATA "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAxx"
DATA "x                           xI         x"
DATA "x x xxxxxxxxxxxxxxxxxxxxxxx xxx    xxx x"
DATA "x x x                       xW     xQx x"
DATA "x x x xxxxxxxxxxxx xxxxxxxxxxxxxxx     x"
DATA "x x x xx       b x x v    x      x     x"
DATA "x x x xx xxxxxxxxx xxxxx  x  7         x"
DATA "x x x xx                  x      xxxxxxx"
DATA "x x x  xxxxxxxxxxxxxxxxxxxx      x     x"
DATA "x x xx             x      x  xxxxx  x  x"
DATA "x x  xxxxxxxxxxxxx x  xxx x  x      x  x"
DATA "x xx             x x  x   xx x  xxxxx  x"
DATA "x  xxxxxxxxxxxxx x x  x      x  x      x"
DATA "x  x6x5 x 1 x 2x x x  xxxxxxxx  x  xxxxx"
DATA "x  x xx xx xxx x x x            x  x a x"
DATA "x              x x xxxxxxxxxxxxxx  x   x"
DATA "x          3   x x                 xx  x"
DATA "xxx  4       xxx xxxxxxxxxxxxxxxxxxxx  x"
DATA "xI            Wx                       x"
DATA "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
CaveMap:
DATA "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
DATA "X   XXXXXXXXXXXXdXXXXXXX        XX     X"
DATA "X X XXXX CC XXXX XXXXXXX XXXXXX XX XXX X"
DATA "X X XXX      XXX XXXXXXX XXXXXX XX XKX X"
DATA "X X XX        XX XXXXXXX XXXXXX XX     X"
DATA "X X                      XXXXXX        X"
DATA "X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
DATA "X X                                   cX"
DATA "X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
DATA "X X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
DATA "X X                                    X"
DATA "X XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX X"
DATA "X XXXXX                X XXXXXXXXXXVXX X"
DATA "X XXXXX  XXXXXXXX XXXX X XXXXXXXXXX XX X"
DATA "X     XX  XXXXXXX XXXX X XXXXXXXXXX XX X"
DATA "XXXXX XXX  XXXXXX XXXX X XXXXXXXXXX XX X"
DATA "X      XXX  XXXX   XXX X            XX X"
DATA "X XXXXXXXXX  XXX   XXX XXXXXXXXXXXXXXX X"
DATA "X            XXXX XXXX                 X"
DATA "XXXXXXXXXXXXXXXXXBXXXXXXXXXXXXXXXXXXXXXX"

REM $STATIC
SUB AreYouDead STATIC
FOR ga = 1 TO 3: IF curhp(ga) > 0 THEN EXIT SUB
NEXT: COLOR 15: LINE (0, 0)-(319, 31), 0, BF
LINE (0, 31)-(319, 31), 12: LOCATE 1, 1
PRINT "NOTICE: you are dead. The enemies"
PRINT "devour your body. Have a": PRINT "nice day!"
LOCATE 3, 40: PRINT CHR$(254): PCOPY 6, 0: SLEEP
dmb$ = INKEY$: RemoveGraphics: SCREEN 0: WIDTH 80: SYSTEM
END SUB

REM $DYNAMIC
SUB BeamAttack (bnum, et) STATIC
DIM ex(4), ey(4)
ex(1) = 35: ey(1) = 110: ex(2) = 110: ey(2) = 110
ex(3) = 35: ey(3) = 60: ex(4) = 110: ey(4) = 60
PCOPY 6, 3: LINE (225, 5)-(314, 25), 0, BF
LINE (225, 5)-(314, 25), 12, B: LOCATE 2, 30
COLOR 15: PRINT in$(bnum + 2): PCOPY 6, 0: delay 1: PCOPY 3, 0
PCOPY 3, 6: FOR yowsa = 1 TO 4: IF enemyat(et) = 0 THEN et = et + 1
IF et = 5 THEN et = 1
NEXT: DIM coverup(140): SCREEN 7, 0, 7, 0
GET (280, 60)-(299, 79), coverup: SCREEN 7, 0, 6, 0
PUT (280, 60), coverup, PSET: PUT (280, 60), Kytm2, AND
PUT (280, 60), Kyta2, XOR: PCOPY 6, 3: SELECT CASE bnum
CASE 1:
FOR xc = 315 TO ex(et) STEP -5: COLOR 12: PCOPY 3, 6
LINE (320, ey(et) + 10)-(xc, ey(et) + 10): COLOR 4
LINE (320, ey(et) + 11)-(xc, ey(et) + 11)
LINE (320, ey(et) + 9)-(xc, ey(et) + 9): PCOPY 6, 0
delay .05: NEXT
FOR xc = 315 TO ex(et) + 5 STEP -5: COLOR 12: PCOPY 3, 6
LINE (ex(et), ey(et) + 10)-(xc, ey(et) + 10): COLOR 4
LINE (ex(et), ey(et) + 11)-(xc, ey(et) + 11)
LINE (ex(et), ey(et) + 9)-(xc, ey(et) + 9)
PUT (ex(et), ey(et) + 5), Bangm, AND
PUT (ex(et), ey(et) + 5), Bang1, XOR: PCOPY 6, 0: delay .05
NEXT: PCOPY 3, 6: PCOPY 3, 0: DamageEnemy 0, 250, et
CASE 2:
ct = 0: FOR xc = 315 TO ex(et) STEP -5: COLOR 12: PCOPY 3, 6
IF xc / 3 = xc \ 3 THEN ct = ct + 1
LINE (320, ey(et) + 10)-(xc, ey(et) + 10): COLOR 4
LINE (320, ey(et) + 10 + ct)-(xc, ey(et) + 10 + ct)
LINE (320, ey(et) + 10 - ct)-(xc, ey(et) + 10 - ct): PCOPY 6, 0
delay .05: NEXT
FOR xc = 315 TO ex(et) + 5 STEP -5: COLOR 12: PCOPY 3, 6
IF xc / 3 = xc \ 3 THEN ct = ct - 1
LINE (ex(et), ey(et) + 10)-(xc, ey(et) + 10): COLOR 4
LINE (ex(et), ey(et) + 10 + ct)-(xc, ey(et) + 10 + ct)
LINE (ex(et), ey(et) + 10 - ct)-(xc, ey(et) + 10 - ct)
PUT (ex(et), ey(et) + 5 - ct), Bangm, AND
PUT (ex(et), ey(et) + 5 - ct), Bang1, XOR
PUT (ex(et), ey(et) + 5 + ct), Bangm, AND
PUT (ex(et), ey(et) + 5 + ct), Bang1, XOR
PUT (ex(et), ey(et) + 5), Bangm, AND
PUT (ex(et), ey(et) + 5), Bang1, XOR
PCOPY 6, 0: delay .05: NEXT: PCOPY 3, 6: PCOPY 3, 0
DamageEnemy 0, 350, et: PCOPY 6, 3: delay 1: DamageChar 75, 1
CASE 3:
FOR xc = 315 TO ex(et) STEP -5: COLOR 14: PCOPY 3, 6
LINE (320, ey(et) + 10)-(xc, ey(et) + 10)
LINE (320, ey(et) + 9)-(xc, ey(et) + 9), 12
LINE (320, ey(et) + 11)-(xc, ey(et) + 11), 12
PCOPY 6, 0: delay .05: NEXT: SCREEN 7, 0, 0, 0
COLOR 14: FOR xc = 1 TO 10
LINE (319, ey(et) + 10 - xc)-(ex(et), ey(et) + 10 - xc)
LINE (319, ey(et) + 10 + xc)-(ex(et), ey(et) + 10 + xc)
delay .1: NEXT: delay .4
LINE (ex(et), ey(et))-(319, ey(et) + 21), 12, BF
delay .5: LINE (ex(et), ey(et))-(319, ey(et) + 21), 4, BF
delay .5: SCREEN 7, 0, 6, 0: PCOPY 3, 0: PCOPY 3, 6
DamageEnemy 0, 450, et
END SELECT
SCREEN 7, 0, 6, 0: PCOPY 7, 6: delay 1: PlaceEnemies
ERASE ex, ey, coverup
END SUB

SUB BuyItem STATIC
StartofBuyingSub:
COLOR 15: LINE (0, 0)-(319, 199), 1, BF: LINE (0, 0)-(319, 199), 12, B
LINE (0, 31)-(319, 31), 12: LOCATE 2, 3: PRINT "OK, whaddaya want?"
REDIM itmno(5): itmno(1) = 6: itmno(2) = 7: itmno(3) = 8
itmno(4) = 15: itmno(5) = 17: FOR gab = 1 TO 5: COLOR 14
LOCATE gab + 9, 12: PRINT in$(itmno(gab)): COLOR 15
LOCATE gab + 9, 30: PRINT "GP"; power(itmno(gab), 2): NEXT
PCOPY 2, 1: mychc = 1: DO: PCOPY 1, 2: COLOR 15
LOCATE mychc + 9, 10: PRINT CHR$(26): PCOPY 2, 0
ii$ = INKEY$: SELECT CASE ii$
CASE CHR$(0) + CHR$(72), CHR$(0) + CHR$(75):
mychc = mychc - 1: IF mychc = 0 THEN mychc = 5
CASE CHR$(0) + CHR$(77), CHR$(0) + CHR$(80):
mychc = mychc + 1: IF mychc = 6 THEN mychc = 1
CASE CHR$(27): ii$ = CHR$(13): mychc = 6
END SELECT
LOOP UNTIL ii$ = CHR$(13)
IF mychc = 6 THEN ERASE itmno: EXIT SUB
IF curgold < power(itmno(mychc), 2) THEN
cannotrun = 1: COLOR , totalback: CheapSkate: EXIT SUB
END IF
LOCATE 2, 3: PRINT "You sure you want it? (Y/N)"
PCOPY 2, 0: DO: ii$ = INKEY$: LOOP UNTIL ii$ <> ""
IF UCASE$(ii$) = "Y" THEN
curgold = curgold - power(itmno(mychc), 2)
inven(itmno(mychc)) = inven(itmno(mychc)) + 1
IF inven(itmno(mychc)) = 100 THEN inven(itmno(mychc)) = 99
LOCATE 2, 3: PRINT "Sold!                         "
PCOPY 2, 0: delay 1
ELSE
GOTO StartofBuyingSub
END IF
ERASE itmno
END SUB

REM $STATIC
SUB CampGround STATIC
COLOR 15: LINE (0, 0)-(319, 31), totalback, BF
LINE (0, 31)-(319, 31), 12: LOCATE 1, 1
PRINT "You've stumbled upon a campground."
IF inven(18) = 0 THEN
PRINT "Unfortunately, you don't"
PRINT "have a tent.": LOCATE 3, 40
PRINT CHR$(254): PCOPY 2, 0: SLEEP: dmbo$ = INKEY$
ELSE
PRINT "Would you like to stay for"
PRINT "the night?           (Y/N)": LOCATE 3, 40
PRINT CHR$(26): PCOPY 2, 0: SLEEP: dmb$ = INKEY$
IF UCASE$(dmb$) = "Y" THEN
curgold = curgold + 50
inven(18) = inven(18) - 1: StayTheNight
END IF
PCOPY 5, 2: LOCATE py, px: COLOR 14: PRINT CHR$(1);
COLOR , totalback
END IF
END SUB

REM $DYNAMIC
SUB CastSpell (spnum, etarg) STATIC
DIM ex(4), ey(4), lx(4), ly(4)
ex(1) = 35: ey(1) = 110: ex(2) = 110: ey(2) = 110: ex(3) = 35
ey(3) = 60: ex(4) = 110: ey(4) = 60: ly(1) = 16: lx(1) = 4: ly(2) = 16
lx(2) = 15: ly(3) = 9: lx(3) = 4: ly(4) = 9: lx(4) = 15
IF magdata(spnum, 2) = 0 AND magdata(spnum, 1) < 6 THEN
FOR yowsa = 1 TO 4
IF enemyat(etarg) = 0 THEN etarg = etarg + 1
IF etarg = 5 THEN etarg = 1
NEXT
END IF
curmp = curmp - mpused(spnum)
DIM coverup(140): SCREEN 7, 0, 7, 0
GET (280, 85)-(299, 104), coverup: SCREEN 7, 0, 6, 0
PUT (280, 85), coverup, PSET
PUT (280, 85), Glenlim2, AND: PUT (280, 85), Glenlin2, XOR
PCOPY 6, 3: LINE (225, 5)-(314, 25), 0, BF
LINE (225, 5)-(314, 25), 12, B: LOCATE 2, 30
COLOR 15: PRINT mn$(spnum): PCOPY 6, 0: delay 1: PCOPY 3, 0
PCOPY 3, 6
IF curmp < 0 THEN NotEnoughMP: curmp = 0: GOTO NoSpellCast
SELECT CASE spnum
CASE 1:
ey(1) = 60: ey(2) = 85: ey(3) = 110
FOR xarg = ey(etarg) - 30 TO ey(etarg) + 10 STEP 2: PCOPY 3, 6
PUT (280, xarg), Healm, AND: PUT (280, xarg), Heal1, XOR
PCOPY 6, 0: delay .05: NEXT: PCOPY 3, 6: PCOPY 6, 0
IF curhp(etarg) > 0 THEN DamageChar -1400, etarg
CASE 2:
ey(1) = 60: ey(2) = 85: ey(3) = 110
FOR xarg = -30 TO 10 STEP 2: PCOPY 3, 6
FOR erf = 1 TO 3: PUT (280, ey(erf) + xarg), Healm, AND
PUT (280, ey(erf) + xarg), Heal1, XOR: NEXT
PCOPY 6, 0: delay .05: NEXT: PCOPY 3, 6: PCOPY 6, 0
FOR erf = 1 TO 3
IF curhp(erf) > 0 THEN
DamageChar -700, erf: IF erf < 3 THEN delay 1
END IF
NEXT
CASE 3: FireSpell ex(etarg), ey(etarg), etarg
CASE 4: IceSpell ex(etarg), ey(etarg), etarg
CASE 5: LightningSpell ex(etarg), ey(etarg), etarg
CASE 6: TremorSpell ex(etarg), ey(etarg), etarg
CASE 7: DrownSpell ex(etarg), ey(etarg), etarg
CASE 8:
IF curhp(etarg) > 0 THEN
walled(etarg) = 1: ey(1) = 60: ey(2) = 85: ey(3) = 110
FOR gjkl = 1 TO 15
LINE (270, ey(etarg) + gjkl)-(290, ey(etarg) + gjkl + 10), gjkl
NEXT: PCOPY 6, 0: delay 1: PCOPY 3, 0: PCOPY 3, 6
END IF
CASE 9:
ey(1) = 60: ey(2) = 85: ey(3) = 110: FOR abag = 1 TO 20: PCOPY 3, 6
xc = INT(RND(1) * 15): yc = INT(RND(1) * 15)
PUT (280 + xc, ey(etarg) + yc), Healm, AND
PUT (280 + xc, ey(etarg) + yc), Heal1, XOR
PCOPY 6, 0: delay .1: NEXT: PCOPY 3, 6: PCOPY 3, 0
IF curhp(etarg) = 0 THEN curhp(etarg) = 1000
CASE 10:
ct! = 75: Xpvr! = 0
DO: IF ct! < 0 THEN ct! = ABS(ct!) - 1
IF ct! > 0 THEN ct! = -ct!
Xpvr! = Xpvr! + ct!: WAIT &H3DA, 8: OUT &H3D4, 13
OUT &H3D5, Xpvr!: LOOP UNTIL ct! = 0
OUT &H3D4, 13: OUT &H3D5, 0
FOR dgct = 1 TO 4: dmgcnt = INT(RND(1) * 50) + 100
IF enemyat(dgct) > 0 THEN
IF weak(enemyat(dgct)) = magdata(10, 1) THEN
dmgcnt = dmgcnt + INT(RND(1) * 100) + 100
END IF
IF strn(enemyat(dgct)) = magdata(10, 1) THEN dmgcnt = -dmgcnt
dmgcnt = dmgcnt - INT(.25 * etype(enemyat(dgct), 3))
ehit(dgct) = ehit(dgct) - dmgcnt
IF ehit(dgct) > etype(enemyat(dgct), 1) THEN
ehit(dgct) = etype(enemyat(dgct), 1)
END IF
SCREEN 7, 0, 0, 0: COLOR 12: LOCATE ly(dgct), lx(dgct)
IF dmgcnt < 0 THEN COLOR 10
PRINT ABS(dmgcnt)
END IF
NEXT: FOR dgct = 1 TO 4
IF ehit(dgct) < 1 AND enemyat(dgct) > 0 THEN KillEnemy dgct
NEXT
CASE 11:
FOR bcad = 5 TO 25 STEP 5: PCOPY 3, 6: Mosaic bcad: PCOPY 6, 0
delay .1: NEXT: FOR bcad = 20 TO 5 STEP -5: PCOPY 3, 6
Mosaic bcad: PCOPY 6, 0: delay .1: NEXT: delay .25
PCOPY 3, 6: PCOPY 3, 0
FOR dgct = 1 TO 4: dmgcnt = INT(RND(1) * 50) + 225
IF enemyat(dgct) > 0 THEN
dmgcnt = dmgcnt - INT(.25 * etype(enemyat(dgct), 3))
ehit(dgct) = ehit(dgct) - dmgcnt
SCREEN 7, 0, 0, 0: COLOR 12: LOCATE ly(dgct), lx(dgct)
PRINT dmgcnt
END IF
NEXT: FOR dgct = 1 TO 4
IF ehit(dgct) < 1 AND enemyat(dgct) > 0 THEN KillEnemy dgct
NEXT
CASE 12:
SCREEN 7, 0, 0, 0: FOR wasser = 0 TO 200 STEP 4
LINE (0, wasser)-(319, wasser), 3
LINE (0, wasser + 1)-(319, wasser + 1), 1
LINE (0, wasser + 2)-(319, wasser + 2), 9
LINE (0, wasser + 3)-(319, wasser + 3), 11
delay .05: NEXT: FOR water = 4 TO 199 STEP 8
SCREEN 7, 0, 6, 0: PCOPY 3, 6: FOR wasser = water TO 200 STEP 4
LINE (0, wasser)-(319, wasser), 3
LINE (0, wasser + 1)-(319, wasser + 1), 1
LINE (0, wasser + 2)-(319, wasser + 2), 9
LINE (0, wasser + 3)-(319, wasser + 3), 11
NEXT: PCOPY 6, 0: delay .05: NEXT: PCOPY 3, 6: PCOPY 3, 0
FOR dgct = 1 TO 4: dmgcnt = INT(RND(1) * 50) + 300
IF enemyat(dgct) > 0 THEN
IF weak(enemyat(dgct)) = magdata(12, 1) THEN
dmgcnt = dmgcnt + INT(RND(1) * 100) + 200
END IF
IF strn(enemyat(dgct)) = magdata(12, 1) THEN dmgcnt = -dmgcnt
dmgcnt = dmgcnt - INT(.25 * etype(enemyat(dgct), 3))
ehit(dgct) = ehit(dgct) - dmgcnt
IF ehit(dgct) > etype(enemyat(dgct), 1) THEN
ehit(dgct) = etype(enemyat(dgct), 1)
END IF
SCREEN 7, 0, 0, 0: COLOR 12: LOCATE ly(dgct), lx(dgct)
IF dmgcnt < 0 THEN COLOR 10
PRINT ABS(dmgcnt)
END IF
NEXT: FOR dgct = 1 TO 4
IF ehit(dgct) < 1 AND enemyat(dgct) > 0 THEN KillEnemy dgct
NEXT
END SELECT
NoSpellCast:
SCREEN 7, 0, 6, 0: PCOPY 7, 6: delay 1: PlaceEnemies
ERASE ex, ey, lx, ly, coverup
END SUB

REM $STATIC
SUB CharAttack (sabro) STATIC
wiley = 0: FOR xardia = 1 TO 4: wiley = wiley + enemyat(xardia): NEXT
IF wiley = 0 THEN EXIT SUB
SELECT CASE sabro
CASE 1:
IF chosen(1, 1) = 1 THEN KytaAttack chosen(1, 3)
IF chosen(1, 1) = 2 THEN BeamAttack chosen(1, 2), chosen(1, 3)
IF chosen(1, 1) = 3 THEN RunAway
CASE 2:
IF chosen(2, 1) = 1 THEN GlenlinAttack chosen(2, 3)
IF chosen(2, 1) = 2 THEN CastSpell chosen(2, 2), chosen(2, 3)
IF chosen(2, 1) = 3 THEN RunAway
CASE 3:
IF chosen(3, 1) = 1 THEN KohlenAttack chosen(3, 3)
IF chosen(3, 1) = 2 THEN JumpAttack chosen(3, 3)
IF chosen(3, 1) = 3 THEN TossStar chosen(3, 2), chosen(3, 3)
IF chosen(3, 1) = 4 THEN RunAway
END SELECT
END SUB

SUB CharMenu (sabro) STATIC
DIM storechc$(4)
IF curhp(sabro) > 0 THEN
LINE (250, 150)-(300, 185), 0, BF: LINE (250, 150)-(300, 185), 12, B
ELSE
EXIT SUB
END IF
COLOR 15: SELECT CASE sabro
CASE 1:
LINE (280, 60)-(300, 80), 12, B
LOCATE 20, 33: PRINT "FIGHT": storechc$(1) = "FIGHT"
LOCATE 21, 33: PRINT "BEAM": storechc$(2) = "BEAM"
LOCATE 22, 33: PRINT "RUN": storechc$(3) = "RUN"
CASE 2:
LINE (280, 85)-(300, 105), 12, B
LOCATE 20, 33: PRINT "FIGHT": storechc$(1) = "FIGHT"
LOCATE 21, 33: PRINT "MAGIC": storechc$(2) = "MAGIC"
LOCATE 22, 33: PRINT "RUN": storechc$(3) = "RUN"
CASE 3:
LINE (280, 110)-(300, 130), 12, B
LOCATE 20, 33: PRINT "FIGHT": storechc$(1) = "FIGHT"
LOCATE 21, 33: PRINT "JUMP": storechc$(2) = "JUMP"
LOCATE 22, 33: PRINT "THROW": storechc$(3) = "THROW"
LOCATE 23, 33: PRINT "RUN": storechc$(4) = "RUN"
END SELECT
PCOPY 6, 3: LOCATE 20, 33: COLOR 13: PRINT "FIGHT"
mychoice = 1: DO: v$ = INKEY$: SELECT CASE v$
CASE CHR$(0) + CHR$(72), CHR$(0) + CHR$(75):
SELECT CASE sabro
CASE 1, 2:
IF mychoice = 1 THEN mychoice = 3 ELSE mychoice = mychoice - 1
PCOPY 3, 6: LOCATE 19 + mychoice, 33: PRINT storechc$(mychoice)
CASE 3:
IF mychoice = 1 THEN mychoice = 4 ELSE mychoice = mychoice - 1
PCOPY 3, 6: LOCATE 19 + mychoice, 33: PRINT storechc$(mychoice)
END SELECT
CASE CHR$(0) + CHR$(77), CHR$(0) + CHR$(80):
SELECT CASE sabro
CASE 1, 2:
IF mychoice = 3 THEN mychoice = 1 ELSE mychoice = mychoice + 1

CASE 3:


END SELECT

