Ejemplo n.º 1
0
        public MerchantItem MoveToMerchantBag(BasePlayerItem item, uint quantity, uint price)
        {
            MerchantItem result;

            if (!base.HasItem(item))
            {
                result = null;
            }
            else
            {
                if (quantity > item.Stack || quantity == 0u)
                {
                    result = null;
                }
                else
                {
                    if (item.IsLinked())
                    {
                        result = null;
                    }
                    else
                    {
                        this.RemoveItem(item, quantity, true);
                        MerchantItem merchantItem = this.Owner.MerchantBag.FirstOrDefault((MerchantItem x) => x.MustStackWith(item));
                        if (merchantItem != null)
                        {
                            merchantItem.Price = price;
                            this.Owner.MerchantBag.StackItem(merchantItem, quantity);
                            result = merchantItem;
                        }
                        else
                        {
                            MerchantItem merchantItem2 = Singleton <ItemManager> .Instance.CreateMerchantItem(item, quantity, price);

                            this.Owner.MerchantBag.AddItem(merchantItem2);
                            result = merchantItem2;
                        }
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
 public bool MustStackWith(MerchantItem compared)
 {
     return(compared.Template.Id == Template.Id &&
            compared.Effects.CompareEnumerable(Effects));
 }