Exemple #1
0
 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);
 }
Exemple #2
0
 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);
 }
Exemple #3
0
 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());
 }