'$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