From: Deserty0 <86846189+Deserty0@users.noreply.github.com> Date: Tue, 7 Oct 2025 18:53:25 +0000 (+1000) Subject: New HTN precondition: has status effect (#39781) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=d463aba5875861226000167f991420223a5fa181;p=space-station-14.git New HTN precondition: has status effect (#39781) * Create HasStatusEffectPrecondition.cs * Update HasStatusEffectPrecondition.cs * ok now it works * Update 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); + } +}