AI/ActionSystem/BehaviorTree/Nodes/ConsumeItemNode.cs
using HC3.Inventory;

namespace HC3;

/// <summary>
/// A node that consumes an item from a guest's inventory.
/// </summary>
public class ConsumeItemNode : Node
{
	private readonly Guest Guest;
	private readonly Item Item;
	private bool _used;

	public ConsumeItemNode( Guest guest, Item item )
	{
		Guest = guest;
		Item = item;
	}

	public override Status Tick()
	{
		if ( !_used && Item.IsValid() )
		{
			Item.Use();
			Guest.Inventory.Remove( Item );
			_used = true;
			return Status.Success;
		}

		return !_used ? Status.Failure : Status.Success;
	}
}