protected override void OnTarget(Mobile from, object targeted) { Item item = targeted as Item; if (item == null) { return; } if (!item.IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used. } else if (item is PigmentsOfTokuno || item is PigmentsOfTokunoMajor || item is CompassionPigment) { from.SendLocalizedMessage(1042083); // You cannot dye that. } else if (item.IsLockedDown) { from.SendLocalizedMessage(1070932); // You may not dye artifacts and enhanced magic items which are locked down. } else if (!PigmentsOfTokuno.CheckWarn(item)) { from.SendLocalizedMessage(1070930); // Can't dye artifacts or enhanced magic items that are being worn. } else if (PigmentsOfTokuno.CanHue(item)) { item.Hue = dye.GetHue(dye.Type); dye.UsesRemaining--; if (dye.UsesRemaining <= 0) { dye.Delete(); } } else { from.SendLocalizedMessage(1070931); // You can only dye artifacts and enhanced magic items with this tub. } }
public static bool IsValidItem(Item i) { // As per UO Herald Playguide: // "These dyes essentially combine the ability of all currently available dye tubs and Tokuno dyes." if (i.Stackable) { return(false); } if (i is BaseArmor) { BaseArmor armor = i as BaseArmor; // Leather Armor if (armor.MaterialType == ArmorMaterialType.Leather || armor.MaterialType == ArmorMaterialType.Studded) { return(true); } // Metal Armor if (armor.MaterialType == ArmorMaterialType.Plate) { return(true); } } // Weapons if (i is BaseWeapon) { return(true); } // Spellbooks (including other non-mage spellbooks) & Runebooks if (i is Spellbook || i is Runebook || i is RecallRune) { return(true); } // Statuettes if (i is MonsterStatuette) { return(true); } // Books if (i is BaseBook) { return(true); } // Jewelry if (i is BaseJewel) { return(true); } // Artifacts and magical items dyable with Tokuno dyes if (PigmentsOfTokuno.CanHue(i)) { return(true); } // Talismans if (i is Talisman) { return(true); } if (i is DeerMask || i is TribalMask || i is BearMask) { return(true); } if (i is SnakeSkinBoots) { return(true); } return(false); }