public virtual void PickUpItem(ItemBase it) => TakeFromItem(it);
public virtual bool CanSwap(ItemBase it) => true;
public virtual bool CanTake(ItemBase it) => IsEmpty() || item.GetType() == it?.GetType();
public virtual void Trash(ItemBase item) { }
public bool CanTakeSingle(ItemBase it) => base.CanTake(it);
public override bool CanTake(ItemBase it) => HandItem is null || it?.GetType() == HandItem.GetType();