From d463aba5875861226000167f991420223a5fa181 Mon Sep 17 00:00:00 2001 From: Deserty0 <86846189+Deserty0@users.noreply.github.com> Date: Wed, 8 Oct 2025 04:53:25 +1000 Subject: [PATCH] New HTN precondition: has status effect (#39781) * Create HasStatusEffectPrecondition.cs * Update HasStatusEffectPrecondition.cs * ok now it works * Update HasStatusEffectPrecondition.cs --- .../HasStatusEffectPrecondition.cs | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Content.Server/NPC/HTN/Preconditions/HasStatusEffectPrecondition.cs diff --git a/Content.Server/NPC/HTN/Preconditions/HasStatusEffectPrecondition.cs b/Content.Server/NPC/HTN/Preconditions/HasStatusEffectPrecondition.cs new file mode 100644 index 0000000000..d11a99e2b5 --- /dev/null +++ b/Content.Server/NPC/HTN/Preconditions/HasStatusEffectPrecondition.cs @@ -0,0 +1,28 @@ +using Content.Shared.StatusEffectNew; +using Robust.Shared.Prototypes; + +namespace Content.Server.NPC.HTN.Preconditions; + +/// +/// Returns true if entity have specified status effect +/// +public sealed partial class HasStatusEffectPrecondition : HTNPrecondition +{ + private StatusEffectsSystem _statusEffects = default!; + + [DataField(required: true)] + public EntProtoId StatusEffect; + + public override void Initialize(IEntitySystemManager sysManager) + { + base.Initialize(sysManager); + _statusEffects = sysManager.GetEntitySystem(); + } + + public override bool IsMet(NPCBlackboard blackboard) + { + var owner = blackboard.GetValue(NPCBlackboard.Owner); + + return _statusEffects.HasStatusEffect(owner, StatusEffect); + } +} -- 2.51.2