ReisenTasker/Assets/Scripts/Inventory/CraftingSystem.cs

30 lines
1 KiB
C#

using System.Collections.Generic;
using UnityEngine;
public class CraftingSystem : MonoBehaviour
{
public bool TryCraftingItem(Item requestedItem)
{
List<InventoryManager.ItemAmount> missingItems = new();
foreach (InventoryManager.ItemAmount requiredMaterial in requestedItem.requiredMaterials)
{
if (InventoryManager.instance.CheckItemAmount(requiredMaterial.item) < requiredMaterial.amount)
{
InventoryManager.ItemAmount newMissingItem = new();
newMissingItem.item = requiredMaterial.item;
newMissingItem.amount = requiredMaterial.amount - InventoryManager.instance.CheckItemAmount(requiredMaterial.item);
}
}
if (missingItems.Count > 0)
{
return false; //supposed to return what items were missing
}
foreach (InventoryManager.ItemAmount requiredMaterial in requestedItem.requiredMaterials)
{
InventoryManager.instance.RemoveItem(requiredMaterial.item, requiredMaterial.amount);
}
InventoryManager.instance.AddItem(requestedItem, requestedItem.craftedAmount);
return true;
}
}