public PropCollection(Item item, bool validateFlags) { if (item is IImbuable) { IImbuable imbuable = item as IImbuable; foreach (BaseAttrInfo prop in Imbuing.Properties) { if (prop.CanHold(item) && (!validateFlags || Imbuing.ValidateFlags(imbuable.ImbuingFlags, prop.Flags)) && prop.Validate(item)) { int intensity = Imbuing.ComputeIntensity(item, prop, false); if (intensity != 0) { PropEntry entry = new PropEntry(prop, intensity); m_Properties.Add(entry); m_Intensity += entry.Intensity; m_WeightedIntensity += entry.WeightedIntensity; } } } } }
protected override void OnTarget(Mobile from, object targeted) { Item item = targeted as Item; if (Imbuing.Check(from, item)) { IImbuable imbuable = item as IImbuable; if (imbuable != null && m_Attribute.CanHold(item) && Imbuing.ValidateFlags(imbuable.ImbuingFlags, m_Attribute.Flags) && m_Attribute.Validate(item)) { Gump confirm = SelectPropGump.SelectProp(from, item, m_Attribute); if (confirm != null) { from.SendGump(confirm); } } else { from.SendLocalizedMessage(1114291); // You cannot imbue the last property on that item. from.EndAction(typeof(Imbuing)); } } else { from.EndAction(typeof(Imbuing)); } }