Client LuaCsForBarotrauma
CharacterAbilityApplyStatusEffectToNonHumans.cs
1 #nullable enable
2 
3 using Microsoft.Xna.Framework;
4 
5 namespace Barotrauma.Abilities
6 {
7  internal sealed class CharacterAbilityApplyStatusEffectToNonHumans : CharacterAbilityApplyStatusEffects
8  {
9  private readonly float maxDistance;
10 
11  public CharacterAbilityApplyStatusEffectToNonHumans(CharacterAbilityGroup characterAbilityGroup, ContentXElement abilityElement) : base(characterAbilityGroup, abilityElement)
12  {
13  maxDistance = abilityElement.GetAttributeFloat("maxdistance", float.MaxValue);
14  }
15 
16  protected override void ApplyEffect()
17  {
18  foreach (Character character in Character.CharacterList)
19  {
20  if (character.IsHuman) { continue; }
21 
22  if (maxDistance < float.MaxValue)
23  {
24  if (Vector2.DistanceSquared(character.WorldPosition, Character.WorldPosition) > maxDistance * maxDistance) { continue; }
25  }
26  ApplyEffectSpecific(character);
27  }
28  }
29 
30  protected override void ApplyEffect(AbilityObject abilityObject)
31  {
32  ApplyEffect();
33  }
34  }
35 }
void ApplyEffectSpecific(Character targetCharacter, Limb targetLimb=null)
virtual Vector2 WorldPosition
Definition: Entity.cs:49