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); } }
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)); } }