30 lines
1 KiB
C#
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;
|
|
|
|
}
|
|
}
|