New HTN precondition: has status effect (#39781)

* Create HasStatusEffectPrecondition.cs

* Update HasStatusEffectPrecondition.cs

* ok now it works

* Update HasStatusEffectPrecondition.cs
This commit is contained in:
Deserty0 2025-10-08 04:53:25 +10:00 committed by Vanessa
parent 73b01bd0d3
commit 97ddf11135
1 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,28 @@
using Content.Shared.StatusEffectNew;
using Robust.Shared.Prototypes;
namespace Content.Server.NPC.HTN.Preconditions;
/// <summary>
/// Returns true if entity have specified status effect
/// </summary>
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<StatusEffectsSystem>();
}
public override bool IsMet(NPCBlackboard blackboard)
{
var owner = blackboard.GetValue<EntityUid>(NPCBlackboard.Owner);
return _statusEffects.HasStatusEffect(owner, StatusEffect);
}
}