예제 #1
0
        public void Remove(Item _item)
        {
            var have = m_items.FirstOrDefault(_item1 => _item1.GetHashCode() == _item.GetHashCode());

            if (have == null)
            {
                throw new ApplicationException("Такого предмета нет.");
            }
            if (have is Stacked)
            {
                ((Stacked)have).Count--;
                if (((Stacked)have).Count == 0)
                {
                    m_items.Remove(have);
                }
            }
            else
            {
                m_items.Remove(have);
            }
        }
예제 #2
0
        public void Add(Item _item)
        {
            var have = m_items.FirstOrDefault(_item1 => _item1.GetHashCode() == _item.GetHashCode());

            if (have == null)
            {
                m_items.Add(_item);
            }
            else if (have is StackOfItems)
            {
                ((StackOfItems)have).Add((StackOfItems)_item);
            }
            else if (have is Stacked)
            {
                ((Stacked)have).Count++;
            }
            else
            {
                m_items.Remove(have);
                m_items.Add(new Stacked(_item, 2));
            }
        }