Client LuaCsForBarotrauma
CharacterAbilityApplyStatusEffectsToRandomAlly.cs
1
using
Barotrauma
.
Extensions
;
2
using
Microsoft.Xna.Framework;
3
using
System;
4
using
System.Linq;
5
6
namespace
Barotrauma.Abilities
7
{
8
class
CharacterAbilityApplyStatusEffectsToRandomAlly
:
CharacterAbilityApplyStatusEffects
9
{
10
private
readonly
float
squaredMaxDistance;
11
private
readonly
bool
allowDifferentSub;
12
private
readonly
bool
allowSelf;
13
14
public
override
bool
AllowClientSimulation
=>
false
;
15
16
public
CharacterAbilityApplyStatusEffectsToRandomAlly
(
CharacterAbilityGroup
characterAbilityGroup,
ContentXElement
abilityElement) : base(characterAbilityGroup, abilityElement)
17
{
18
squaredMaxDistance = MathF.Pow(abilityElement.
GetAttributeFloat
(
"maxdistance"
,
float
.MaxValue), 2);
19
allowDifferentSub = abilityElement.
GetAttributeBool
(
"mustbeonsamesub"
,
true
);
20
allowSelf = abilityElement.
GetAttributeBool
(
"allowself"
,
true
);
21
}
22
23
protected
override
void
ApplyEffect
()
24
{
25
ApplyEffect
(
Character
);
26
}
27
28
protected
override
void
ApplyEffect
(
AbilityObject
abilityObject)
29
{
30
if
((abilityObject as
IAbilityCharacter
)?.
Character
is
Character
targetCharacter)
31
{
32
ApplyEffect
(targetCharacter);
33
}
34
else
35
{
36
ApplyEffect
(
Character
);
37
}
38
}
39
40
private
void
ApplyEffect
(
Character
thisCharacter)
41
{
42
Character
chosenCharacter =
43
Character
.
GetFriendlyCrew
(thisCharacter).Where(c =>
44
(allowSelf || c != thisCharacter) &&
45
(allowDifferentSub || c.Submarine ==
Character
.
Submarine
) &&
46
Vector2.DistanceSquared(thisCharacter.
WorldPosition
, c.WorldPosition) is
float
tempDistance &&
47
tempDistance < squaredMaxDistance).GetRandomUnsynced();
48
if
(chosenCharacter ==
null
) {
return
; }
49
50
ApplyEffectSpecific
(chosenCharacter);
51
52
}
53
}
54
}
Barotrauma.Abilities.AbilityObject
Definition:
AbilityObjects.cs:6
Barotrauma.Abilities.CharacterAbilityApplyStatusEffects
Definition:
CharacterAbilityApplyStatusEffects.cs:6
Barotrauma.Abilities.CharacterAbilityApplyStatusEffects.ApplyEffectSpecific
void ApplyEffectSpecific(Character targetCharacter, Limb targetLimb=null)
Definition:
CharacterAbilityApplyStatusEffects.cs:32
Barotrauma.Abilities.CharacterAbilityApplyStatusEffectsToRandomAlly
Definition:
CharacterAbilityApplyStatusEffectsToRandomAlly.cs:9
Barotrauma.Abilities.CharacterAbilityApplyStatusEffectsToRandomAlly.AllowClientSimulation
override bool AllowClientSimulation
Definition:
CharacterAbilityApplyStatusEffectsToRandomAlly.cs:14
Barotrauma.Abilities.CharacterAbilityApplyStatusEffectsToRandomAlly.ApplyEffect
override void ApplyEffect(AbilityObject abilityObject)
Definition:
CharacterAbilityApplyStatusEffectsToRandomAlly.cs:28
Barotrauma.Abilities.CharacterAbilityApplyStatusEffectsToRandomAlly.ApplyEffect
override void ApplyEffect()
Definition:
CharacterAbilityApplyStatusEffectsToRandomAlly.cs:23
Barotrauma.Abilities.CharacterAbilityApplyStatusEffectsToRandomAlly.CharacterAbilityApplyStatusEffectsToRandomAlly
CharacterAbilityApplyStatusEffectsToRandomAlly(CharacterAbilityGroup characterAbilityGroup, ContentXElement abilityElement)
Definition:
CharacterAbilityApplyStatusEffectsToRandomAlly.cs:16
Barotrauma.Abilities.CharacterAbilityGroup
Definition:
CharacterAbilityGroup.cs:9
Barotrauma.Character
Definition:
BarotraumaShared/SharedSource/Characters/Character.cs:32
Barotrauma.Character.GetFriendlyCrew
static IEnumerable< Character > GetFriendlyCrew(Character character)
Definition:
BarotraumaShared/SharedSource/Characters/Character.cs:5551
Barotrauma.ContentXElement
Definition:
ContentXElement.cs:13
Barotrauma.ContentXElement.GetAttributeFloat
float GetAttributeFloat(string key, float def)
Barotrauma.ContentXElement.GetAttributeBool
bool GetAttributeBool(string key, bool def)
Barotrauma.Entity.WorldPosition
virtual Vector2 WorldPosition
Definition:
Entity.cs:49
Barotrauma.Entity.Submarine
Submarine Submarine
Definition:
Entity.cs:53
Barotrauma.Abilities.IAbilityCharacter
Definition:
AbilityInterfaces.cs:29
Barotrauma.Abilities
Definition:
AbilityCondition.cs:5
Barotrauma.Extensions
Definition:
IEnumerableExtensions.cs:7
Barotrauma
Definition:
AchievementManager.cs:12
Barotrauma
BarotraumaShared
SharedSource
Characters
Talents
Abilities
CharacterAbilityApplyStatusEffectsToRandomAlly.cs
Generated by
1.9.1