using Content.Server.NPC.HTN.PrimitiveTasks; namespace Content.Server.NPC.HTN; /// /// The current plan for a HTN NPC. /// public sealed class HTNPlan { /// /// Effects that were applied for each primitive task in the plan. /// public readonly List?> Effects; public readonly List BranchTraversalRecord; public readonly List Tasks; public HTNPrimitiveTask CurrentTask => Tasks[Index]; public HTNOperator CurrentOperator => CurrentTask.Operator; /// /// Where we are up to in the /// public int Index = 0; public HTNPlan(List tasks, List branchTraversalRecord, List?> effects) { Tasks = tasks; BranchTraversalRecord = branchTraversalRecord; Effects = effects; } }