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