示例#1
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                RefinementComponent item = targeted as RefinementComponent;

                if (item == null)
                {
                    from.SendLocalizedMessage(1154457); // This is not a refinement.
                }
                else if (!item.IsChildOf(from.Backpack))
                {
                    from.SendLocalizedMessage(1060640); // The item must be in your backpack to use it.
                }
                else
                {
                    if (m_Amalgamator != null && !m_Amalgamator.Deleted)
                    {
                        m_Amalgamator.CheckCombine(from, item);
                    }

                    /*RefinementComponent comp = (RefinementComponent)targeted;
                     *
                     * if (ToCombine == null)
                     * {
                     *  if (comp.ModType == ModType.Invulnerability)
                     *  {
                     *      from.SendLocalizedMessage(1154353); // You can't upgrade this refinement.
                     *  }
                     *  else
                     *  {
                     *      from.SendLocalizedMessage(1154351); // Target the refinement you wish to combine.
                     *      from.Target = new InternalTarget(from, comp);
                     *  }
                     * }
                     * else
                     * {
                     *  if (m_First.RefinementType != comp.RefinementType
                     || m_First.CraftType != comp.CraftType
                     || m_First.SubCraftType != comp.SubCraftType
                     || m_First.ModType != comp.ModType)
                     || {
                     ||     from.SendLocalizedMessage(1154354); // This refinement does not match the type currently being combined.
                     || }
                     || else
                     || {
                     ||     comp.Delete();
                     ||     m_First.ModType++;
                     ||
                     ||     from.SendLocalizedMessage(1154352); // You've completed the amalgamation and received an upgraded version of your refinement.
                     || }
                     ||}*/
                }
            }
        private void ValidateList(Mobile m)
        {
            if (ToCombine == null)
            {
                return;
            }

            List <RefinementComponent> copy = new List <RefinementComponent>(ToCombine);

            for (var index = 0; index < copy.Count; index++)
            {
                RefinementComponent comp = copy[index];

                if (comp == null || comp.Deleted || !comp.IsChildOf(m.Backpack))
                {
                    ToCombine.Remove(comp);
                }
            }

            ColUtility.Free(copy);
        }