QUOTE |
public virtual int AbsorbDamage(Mobile attacker, Mobile defender, int damage) { if (Core.AOS) return AbsorbDamageAOS(attacker, defender, damage); double chance = Utility.RandomDouble(); Item armorItem; if (chance < 0.07) armorItem = defender.NeckArmor; else if (chance < 0.14) armorItem = defender.HandArmor; else if (chance < 0.28) armorItem = defender.ArmsArmor; else if (chance < 0.43) armorItem = defender.HeadArmor; else if (chance < 0.65) armorItem = defender.LegsArmor; else armorItem = defender.ChestArmor; IWearableDurability armor = armorItem as IWearableDurability; if (armor != null) { armor.OnHit(this, damage); // call OnHit to lose durability // XmlAttachment check for OnArmorHit damage -= Server.Engines.XmlSpawner2.XmlAttach.OnArmorHit(attacker, defender, armorItem, this, originaldamage); } |