예제 #1
0
파일: Imbuing.cs 프로젝트: nogu3ira/xrunuo
        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;
                        }
                    }
                }
            }
        }
예제 #2
0
        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));
            }
        }