public static void OnHit(Mobile defender, Item item, int damage) { IWearableDurability dur = item as IWearableDurability; if (dur == null || dur.MaxHitPoints == 0 || item.LootType == LootType.Blessed || item.Insured) { return; } if (damage < 10) { damage = 10; } if (dur.HitPoints > 0) { dur.HitPoints = Math.Max(0, dur.HitPoints - damage); } else { defender.LocalOverheadMessage(Server.Network.MessageType.Regular, 0x3B2, 1061121); // Your equipment is severely damaged. dur.MaxHitPoints = Math.Max(0, dur.MaxHitPoints - damage); if (!item.Deleted && dur.MaxHitPoints == 0) { item.Delete(); } } }
public override void OnDoubleClick(Mobile from) { if (IsChildOf(from.Backpack)) { if (FactionEquipment.CanUse(this, from)) { from.BeginTarget(-1, false, Server.Targeting.TargetFlags.None, (m, targeted) => { if (targeted is IFactionItem && targeted is IWearableDurability) { IWearableDurability durability = targeted as IWearableDurability; if (durability.HitPoints >= durability.MaxHitPoints) { m.SendLocalizedMessage(1094761); // This item is already in perfect condition. } else if (durability.MaxHitPoints <= 125) { m.SendLocalizedMessage(1049083); // You cannot use the powder on that item. } else { if (durability.MaxHitPoints == 255) { durability.MaxHitPoints = 225; } else { durability.MaxHitPoints -= 25; } durability.HitPoints = durability.MaxHitPoints; m.SendLocalizedMessage(1049084); // You successfully use the powder on the item. m.SendLocalizedMessage(1094760); // You have used up your Powder of Perseverance. m.PlaySound(0x247); Delete(); } } else { m.SendLocalizedMessage(1049083); // You cannot use the powder on that item. } }); } } else { from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it. } }