using Content.Server.NPC.Components; namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Combat; public sealed partial class JukeOperator : HTNOperator, IHtnConditionalShutdown { [Dependency] private readonly IEntityManager _entManager = default!; [DataField("jukeType")] public JukeType JukeType = JukeType.AdjacentTile; [DataField("shutdownState")] public HTNPlanState ShutdownState { get; private set; } = HTNPlanState.PlanFinished; public override void Startup(NPCBlackboard blackboard) { base.Startup(blackboard); var juke = _entManager.EnsureComponent(blackboard.GetValue(NPCBlackboard.Owner)); juke.JukeType = JukeType; } public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) { return HTNOperatorStatus.Finished; } public void ConditionalShutdown(NPCBlackboard blackboard) { _entManager.RemoveComponent(blackboard.GetValue(NPCBlackboard.Owner)); } }