public override bool MoveItem(IItemSlot <ItemModel> targetSlot) { if (targetSlot.CanHoldItem(StoredItem)) { StoredItem.OnUnEquipped?.Invoke(); StoredItem = targetSlot.SwitchItem(StoredItem); StoredItem?.OnEquipped?.Invoke(); return(true); } StoredItem?.OnFailMoved?.Invoke(); return(false); }
public virtual bool MoveItem(IItemSlot <ItemModel> targetSlot) { if (CanMoveItem(targetSlot)) { StoredItem.OnMoved?.Invoke(); StoredItem = targetSlot.SwitchItem(StoredItem); StoredItem?.OnMoved?.Invoke(); return(true); } StoredItem?.OnFailMoved?.Invoke(); return(false); }
public virtual bool AddItem(TItem item, IItemSlot <TItem> slot) { if (!HasItem(item.ID)) { if (slot.CanHoldItem(item)) { if (item.AmountStack == 0) { item.Stack(); } Items[item.ID] = item; slot.SwitchItem(item); return(true); } return(false); } return(Items[item.ID].Stack()); }