/// <summary> /// Updates usable items in inventory /// </summary> public void RefreshInventory() { BagLookUp.Clear(); foreach (ItemFactoryData temp in ItemsInBag) { SourceDataItemSO tmp; if (db.ItemDataMasterList.TryGetValue(temp.ItemName, out tmp)) { UsableItem itemToAdd = CreateDataListEntryItem(tmp, temp); if (!BagLookUp.TryGetValue(temp.ItemName, out UsableItem item)) { BagLookUp.Add(temp.ItemName, itemToAdd); } else { item.Quantity += itemToAdd.Quantity; } } } }
/// <summary> /// Transfers Item to another inventory /// </summary> /// <param name="itemName"></param> /// <param name="amount"></param> /// <param name="targetItem"></param> /// <returns></returns> public bool TransferItem(string itemName, int amount, out UsableItem targetItem) { if (BagLookUp.TryGetValue(itemName, out UsableItem item)) { if (item.Quantity <= 0 || item.Quantity < amount) { targetItem = item; return(false); } item.Quantity -= amount; removeFromBag(item.ItemName, amount); targetItem = item; targetItem.Quantity = amount; return(true); } else { Debug.LogWarning("ITEM DOES NOT EXIST"); targetItem = item; return(false); } }