Files
Babushka/scripts/CSharp/Common/QuestBehaviour/DetectInventoryContains.cs
T
cblech f6e9a6f9b5 WIP
2025-07-25 20:20:34 +02:00

34 lines
904 B
C#

using Godot;
using System;
using System.Collections.Generic;
using System.Linq;
using Babushka.scripts.CSharp.Common.Inventory;
using Babushka.scripts.CSharp.Common.Quest;
public partial class DetectInventoryContains : QuestFulfillmentBase
{
[Export(PropertyHint.ArrayType)] private ItemInstance[] _itemsToContain;
public override void _Ready()
{
QuestManager.Instance!.QuestsChanged += Update;
InventoryManager.Instance.playerInventory.InventoryContentsChanged += Update;
Update();
}
public override void _ExitTree()
{
QuestManager.Instance!.QuestsChanged -= Update;
InventoryManager.Instance.playerInventory.InventoryContentsChanged -= Update;
}
private void Update()
{
if (IsQuestActive() && InventoryManager.Instance.playerInventory.HasItems(_itemsToContain))
{
Fulfill();
}
}
}