DEFINITION MODULE AdvMath ; EXPORT QUALIFIED RequiredToParry, RequiredToAttack, RequiredToThrust, RequiredToFireArrow, RequiredToFireMagic, RequiredToMove, RequiredToMagicShoes, RequiredToMagicParry, RequiredToMagicAttack, RequiredToMagicThrust, DammageByParry, DammageByAttack, DammageByThrust, DammageByFireArrow, DammageByFireMagic, DammageByHandGrenade, DammageByHotIron, DammageByMagicParry, DammageByMagicAttack, DammageByMagicThrust, MagicKey, CrystalBall, MagicSpring, SackOfCoal1, SackOfCoal2, HotIron, HandGrenade, MagicSword, MagicShoes, SleepPotion, LumpOfIron, TreasTrove, SpeedPotion, MagicShield, VisionChest, QuiverNormal, QuiverMagic, HealingPotion, LowFreePool, HighFreePool, MaxNoOfTreasures, UpDateWoundsAndFatigue, StrengthToParry, StrengthToAttack, StrengthToThrust, StrengthToFireArrow, StrengthToFireMagic, StrengthToMove ; CONST RequiredToParry = 3 ; RequiredToAttack = 5 ; RequiredToThrust = 9 ; RequiredToFireArrow = 10 ; RequiredToFireMagic = 15 ; RequiredToMove = 6 ; (* For 9 squares *) RequiredToMagicShoes = 3 ; (* For 9 squares *) RequiredToMagicParry = 1 ; RequiredToMagicAttack = 3 ; RequiredToMagicThrust = 6 ; DammageByParry = 7 ; DammageByAttack = 13 ; DammageByThrust = 17 ; DammageByFireArrow = 23 ; DammageByFireMagic = 74 ; DammageByHandGrenade = 69 ; DammageByHotIron = 19 ; DammageByMagicParry = 8 ; DammageByMagicAttack = 14 ; DammageByMagicThrust = 18 ; MagicKey = 1 ; (* Treasure Numbers *) CrystalBall = 2 ; MagicSpring = 3 ; SackOfCoal1 = 4 ; SackOfCoal2 = 5 ; HotIron = 6 ; HandGrenade = 7 ; MagicSword = 8 ; MagicShoes = 9 ; SleepPotion = 10 ; LumpOfIron = 11 ; TreasTrove = 12 ; SpeedPotion = 13 ; MagicShield = 14 ; VisionChest = 15 ; QuiverNormal = 16 ; QuiverMagic = 17 ; HealingPotion = 18 ; MaxNoOfTreasures = 31 ; (* An upper limit *) HighFreePool = MaxNoOfTreasures ; LowFreePool = 19 ; (* start of dynamic treasures. (see AdvMath.def for static list). *) TYPE FreePool = [LowFreePool..HighFreePool] ; PROCEDURE UpDateWoundsAndFatigue (p: CARDINAL) ; PROCEDURE StrengthToParry (VAR ok: BOOLEAN) ; PROCEDURE StrengthToAttack (VAR ok: BOOLEAN) ; PROCEDURE StrengthToThrust (VAR ok: BOOLEAN) ; PROCEDURE StrengthToFireArrow (VAR ok: BOOLEAN) ; PROCEDURE StrengthToFireMagic (VAR ok: BOOLEAN) ; PROCEDURE StrengthToMove (n: CARDINAL ; VAR ok: BOOLEAN) ; END AdvMath.