Files
beyond/Assets/Scripts/Triggers/QuestRequirement.cs
2026-02-13 18:16:32 +01:00

40 lines
1.4 KiB
C#

using UnityEngine;
using Sirenix.OdinInspector; // Required for [ShowIf]
using PixelCrushers.QuestMachine; // Required for Quest Machine types
namespace Beyond
{
[System.Serializable]
public class QuestRequirement
{
[Tooltip("The ID of the quest to check. (Case-sensitive, copy from Quest Editor)")]
public string questID;
[Tooltip("If checking a specific node, enter ID here. Leave empty to check the overall Quest State.")]
public string questNodeID;
[ShowIf("@string.IsNullOrEmpty(this.questNodeID)")]
[Tooltip("The state the Main Quest must be in.")]
public QuestState requiredQuestState = QuestState.Active;
[ShowIf("@!string.IsNullOrEmpty(this.questNodeID)")]
[Tooltip("The state the specific Node must be in.")]
public QuestNodeState requiredNodeState = QuestNodeState.Active;
public bool IsMet()
{
if (string.IsNullOrEmpty(questID)) return true;
if (string.IsNullOrEmpty(questNodeID))
{
// CHECK QUEST STATE
return QuestMachine.GetQuestState(questID) == requiredQuestState;
}
else
{
// CHECK NODE STATE
return QuestMachine.GetQuestNodeState(questID, questNodeID) == requiredNodeState;
}
}
}
}