using ACE.Entity.Enum; using ACE.Server.WorldObjects; namespace ACE.Server.Network.Enum { public enum ArmorMask { ArmorLevel = 0x1, SlashingProtection = 0x2, PiercingProtection = 0x4, BludgeoningProtection = 0x8, ColdProtection = 0x10, FireProtection = 0x20, AcidProtection = 0x40, LightningProtection = 0x80 }; public static class ArmorMaskHelper { /// /// Determines if there is a highlight for each armor protection vs. damage type /// public static ArmorMask GetHighlightMask(WorldObject armor) { ArmorMask highlightMask = 0; if (armor == null) return highlightMask; // item enchanments are currently being cast on wielder if (armor.EnchantmentManager.GetArmorMod() != 0) highlightMask |= ArmorMask.ArmorLevel; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Slash) != 0) highlightMask |= ArmorMask.SlashingProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Pierce) != 0) highlightMask |= ArmorMask.PiercingProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Bludgeon) != 0) highlightMask |= ArmorMask.BludgeoningProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Cold) != 0) highlightMask |= ArmorMask.ColdProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Fire) != 0) highlightMask |= ArmorMask.FireProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Acid) != 0) highlightMask |= ArmorMask.AcidProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Electric) != 0) highlightMask |= ArmorMask.LightningProtection; return highlightMask; } /// /// Determines the red/green color for each armor protection vs. damage type /// public static ArmorMask GetColorMask(WorldObject armor) { ArmorMask colorMask = 0; if (armor == null) return colorMask; if (armor.EnchantmentManager.GetArmorMod() > 0) colorMask |= ArmorMask.ArmorLevel; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Slash) > 0) colorMask |= ArmorMask.SlashingProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Pierce) > 0) colorMask |= ArmorMask.PiercingProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Bludgeon) > 0) colorMask |= ArmorMask.BludgeoningProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Cold) > 0) colorMask |= ArmorMask.ColdProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Fire) > 0) colorMask |= ArmorMask.FireProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Acid) > 0) colorMask |= ArmorMask.AcidProtection; if (armor.EnchantmentManager.GetArmorModVsType(DamageType.Electric) > 0) colorMask |= ArmorMask.LightningProtection; return colorMask; } } }