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."); } }
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."); } }