Example #1
0
        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();
                }
            }
        }
Example #2
0
        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.
            }
        }