Beispiel #1
0
        public void OnTarget(Mobile from, object obj)
        {
            if (!IsChildOf(from.Backpack))
            {
                from.SendLocalizedMessage(1042010); // You must have the object in your backpack to use it.
                return;
            }

            if (obj is IArcaneEquip && obj is Item)
            {
                Item          item     = (Item)obj;
                CraftResource resource = CraftResource.None;

                if (item is BaseClothing)
                {
                    resource = ((BaseClothing)item).Resource;
                }
                else if (item is BaseArmor)
                {
                    resource = ((BaseArmor)item).Resource;
                }
                else if (item is BaseWeapon) // Sanity, weapons cannot recieve gems...
                {
                    resource = ((BaseWeapon)item).Resource;
                }

                IArcaneEquip eq = (IArcaneEquip)obj;

                if (!item.IsChildOf(from.Backpack))
                {
                    from.SendMessage("You may only target items in your backpack.");
                    return;
                }

                int charges = GetChargesFor(from);

                if (eq.IsArcane)
                {
                    if (eq.CurArcaneCharges > 0)
                    {
                        from.SendMessage("This item still has charges left.");
                    }
                    else
                    {
                        item.Hue = eq.TempHue;

                        if (charges >= eq.MaxArcaneCharges)
                        {
                            eq.CurArcaneCharges = eq.MaxArcaneCharges;
                            from.SendMessage("Your skill in tailoring allows you to fully recharge the item.");
                        }
                        else
                        {
                            eq.CurArcaneCharges += charges;
                            from.SendMessage("You are only able to restore some of the charges.");
                        }

                        Consume();
                    }
                }
                else if (from.Skills[SkillName.Tailoring].Value >= 60.0)
                {
                    bool isExceptional = false;

                    if (item is BaseClothing)
                    {
                        isExceptional = ((BaseClothing)item).Quality == ItemQuality.Exceptional;
                    }
                    else if (item is BaseArmor)
                    {
                        isExceptional = ((BaseArmor)item).Quality == ItemQuality.Exceptional;
                    }
                    else if (item is BaseWeapon)
                    {
                        isExceptional = ((BaseWeapon)item).Quality == ItemQuality.Exceptional;
                    }

                    if (isExceptional)
                    {
                        if (item is BaseClothing)
                        {
                            BaseClothing cloth = item as BaseClothing;

                            cloth.Quality = ItemQuality.Normal;
                            cloth.Crafter = from;
                        }
                        else if (item is BaseArmor)
                        {
                            BaseArmor armor = item as BaseArmor;

                            if (armor.IsImbued || armor.IsArtifact || RunicReforging.GetArtifactRarity(armor) > 0)
                            {
                                from.SendLocalizedMessage(1049690); // Arcane gems cannot be used on that type of leather.
                                return;
                            }

                            armor.Quality       = ItemQuality.Normal;
                            armor.Crafter       = from;
                            armor.PhysicalBonus = 0;
                            armor.FireBonus     = 0;
                            armor.ColdBonus     = 0;
                            armor.PoisonBonus   = 0;
                            armor.EnergyBonus   = 0;
                        }
                        else if (item is BaseWeapon) // Sanity, weapons cannot recieve gems...
                        {
                            BaseWeapon weapon = item as BaseWeapon;

                            weapon.Quality = ItemQuality.Normal;
                            weapon.Crafter = from;
                        }

                        eq.CurArcaneCharges = eq.MaxArcaneCharges = charges;

                        item.Hue = DefaultArcaneHue;

                        if (item.LootType == LootType.Blessed)
                        {
                            item.LootType = LootType.Regular;
                        }

                        Consume();
                    }
                    else
                    {
                        from.SendMessage("You can only use this on exceptionally crafted robes, thigh boots, cloaks, or leather gloves.");
                    }
                }
                else
                {
                    from.SendMessage("You do not have enough skill in tailoring to use this.");
                }
            }
            else
            {
                from.SendMessage("You can only use this on exceptionally crafted robes, thigh boots, cloaks, or leather gloves.");
            }
        }
Beispiel #2
0
        public void OnTarget(Mobile from, object obj)
        {
            if (!IsChildOf(from.Backpack))
            {
                from.SendLocalizedMessage(1042010); // You must have the object in your backpack to use it.
                return;
            }

            if (obj is IArcaneEquip eq && eq is Item item)
            {
                if (!item.IsChildOf(from.Backpack))
                {
                    from.SendLocalizedMessage(1045158); // You must have the item in your backpack to target it.
                    return;
                }

                int charges = GetChargesFor(from);

                if (eq.IsArcane)
                {
                    if (eq.CurArcaneCharges > 0)
                    {
                        from.SendLocalizedMessage(1075099); // You cannot recharge that item until all of its current charges have been used.
                    }
                    else
                    {
                        item.Hue = eq.TempHue;

                        if (charges >= eq.MaxArcaneCharges)
                        {
                            eq.CurArcaneCharges = eq.MaxArcaneCharges;
                            from.SendMessage("Your skill in tailoring allows you to fully recharge the item.");
                        }
                        else
                        {
                            eq.CurArcaneCharges += charges;
                            from.SendMessage("You are only able to restore some of the charges.");
                        }

                        Consume();
                    }
                }
                else if (from.Skills[SkillName.Tailoring].Value >= 60.0)
                {
                    bool isExceptional = false;

                    if (item is BaseClothing bc)
                    {
                        isExceptional = bc.Quality == ItemQuality.Exceptional;
                    }
                    else if (item is BaseArmor ba)
                    {
                        isExceptional = ba.Quality == ItemQuality.Exceptional;
                    }

                    if (isExceptional)
                    {
                        if (item is BaseClothing cloth)
                        {
                            cloth.Quality = ItemQuality.Normal;
                            cloth.Crafter = from;
                        }

                        if (item is BaseArmor armor)
                        {
                            if (armor.IsImbued || armor.IsArtifact || RunicReforging.GetArtifactRarity(armor) > 0)
                            {
                                from.SendLocalizedMessage(1049690); // Arcane gems cannot be used on that type of leather.
                                return;
                            }

                            armor.Quality       = ItemQuality.Normal;
                            armor.Crafter       = from;
                            armor.PhysicalBonus = 0;
                            armor.FireBonus     = 0;
                            armor.ColdBonus     = 0;
                            armor.PoisonBonus   = 0;
                            armor.EnergyBonus   = 0;
                        }

                        eq.CurArcaneCharges = eq.MaxArcaneCharges = charges;

                        item.Hue = 2117; // Default Arcane Hue

                        if (item.LootType == LootType.Blessed)
                        {
                            item.LootType = LootType.Regular;
                        }

                        Consume();
                    }
                    else
                    {
                        from.SendMessage("You can only use this on exceptionally crafted robes, thigh boots, cloaks, or leather gloves.");
                    }
                }
                else
                {
                    from.SendMessage("You do not have enough skill in tailoring to use this.");
                }
            }