| 12345678910111213141516171819202122232425262728293031 |
- 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<NPCJukeComponent>(blackboard.GetValue<EntityUid>(NPCBlackboard.Owner));
- juke.JukeType = JukeType;
- }
- public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime)
- {
- return HTNOperatorStatus.Finished;
- }
- public void ConditionalShutdown(NPCBlackboard blackboard)
- {
- _entManager.RemoveComponent<NPCJukeComponent>(blackboard.GetValue<EntityUid>(NPCBlackboard.Owner));
- }
- }
|