using Content.Shared.Movement.Pulling.Components; using Content.Shared.Movement.Pulling.Systems; namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Combat; public sealed partial class UnPullOperator : HTNOperator { [Dependency] private readonly IEntityManager _entManager = default!; private PullingSystem _pulling = default!; private EntityQuery _pullableQuery; [DataField("shutdownState")] public HTNPlanState ShutdownState { get; private set; } = HTNPlanState.TaskFinished; public override void Initialize(IEntitySystemManager sysManager) { base.Initialize(sysManager); _pulling = sysManager.GetEntitySystem(); _pullableQuery = _entManager.GetEntityQuery(); } public override void Startup(NPCBlackboard blackboard) { base.Startup(blackboard); var owner = blackboard.GetValue(NPCBlackboard.Owner); _pulling.TryStopPull(owner, _pullableQuery.GetComponent(owner), owner); } public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) { return HTNOperatorStatus.Finished; } }