Client LuaCsForBarotrauma
CharacterAbilityApplyStatusEffectsToAllies.cs
1
using
Microsoft.Xna.Framework;
2
using
System.Collections.Immutable;
3
4
namespace
Barotrauma.Abilities
5
{
6
class
CharacterAbilityApplyStatusEffectsToAllies
:
CharacterAbilityApplyStatusEffects
7
{
8
private
readonly
bool
allowSelf;
9
private
readonly
float
maxDistance =
float
.MaxValue;
10
private
readonly
bool
inSameRoom;
11
private
readonly ImmutableHashSet<Identifier> jobIdentifiers;
12
13
public
override
bool
AllowClientSimulation
{
get
; }
14
15
public
CharacterAbilityApplyStatusEffectsToAllies
(
CharacterAbilityGroup
characterAbilityGroup,
ContentXElement
abilityElement) : base(characterAbilityGroup, abilityElement)
16
{
17
allowSelf = abilityElement.
GetAttributeBool
(
"allowself"
,
true
);
18
maxDistance = abilityElement.
GetAttributeFloat
(
"maxdistance"
,
float
.MaxValue);
19
inSameRoom = abilityElement.
GetAttributeBool
(
"insameroom"
,
false
);
20
jobIdentifiers = abilityElement.
GetAttributeIdentifierImmutableHashSet
(
"jobs"
, ImmutableHashSet<Identifier>.Empty);
21
AllowClientSimulation
= abilityElement.
GetAttributeBool
(
"allowclientsimulation"
,
true
);
22
}
23
24
25
protected
override
void
ApplyEffect
()
26
{
27
foreach
(
Character
character
in
Character
.
GetFriendlyCrew
(
Character
))
28
{
29
if
(!allowSelf && character ==
Character
) {
continue
; }
30
31
if
(!jobIdentifiers.IsEmpty)
32
{
33
bool
hadJob =
false
;
34
foreach
(Identifier job
in
jobIdentifiers)
35
{
36
if
(character.
HasJob
(job.Value))
37
{
38
hadJob =
true
;
39
break
;
40
}
41
}
42
43
if
(!hadJob) {
continue
; }
44
}
45
46
if
(inSameRoom && !character.
IsInSameRoomAs
(
Character
))
47
{
48
continue
;
49
}
50
51
if
(maxDistance <
float
.MaxValue)
52
{
53
if
(Vector2.DistanceSquared(character.
WorldPosition
,
Character
.
WorldPosition
) > maxDistance * maxDistance) {
continue
; }
54
}
55
ApplyEffectSpecific
(character);
56
}
57
}
58
59
protected
override
void
ApplyEffect
(
AbilityObject
abilityObject)
60
{
61
ApplyEffect
();
62
}
63
64
}
65
}
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.CharacterAbilityApplyStatusEffectsToAllies
Definition:
CharacterAbilityApplyStatusEffectsToAllies.cs:7
Barotrauma.Abilities.CharacterAbilityApplyStatusEffectsToAllies.CharacterAbilityApplyStatusEffectsToAllies
CharacterAbilityApplyStatusEffectsToAllies(CharacterAbilityGroup characterAbilityGroup, ContentXElement abilityElement)
Definition:
CharacterAbilityApplyStatusEffectsToAllies.cs:15
Barotrauma.Abilities.CharacterAbilityApplyStatusEffectsToAllies.ApplyEffect
override void ApplyEffect()
Definition:
CharacterAbilityApplyStatusEffectsToAllies.cs:25
Barotrauma.Abilities.CharacterAbilityApplyStatusEffectsToAllies.AllowClientSimulation
override bool AllowClientSimulation
Definition:
CharacterAbilityApplyStatusEffectsToAllies.cs:13
Barotrauma.Abilities.CharacterAbilityApplyStatusEffectsToAllies.ApplyEffect
override void ApplyEffect(AbilityObject abilityObject)
Definition:
CharacterAbilityApplyStatusEffectsToAllies.cs:59
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.Character.HasJob
bool HasJob(string identifier)
Barotrauma.Character.IsInSameRoomAs
bool IsInSameRoomAs(Character character)
Check if the character is in the same room Room and hull differ in that a room can consist of multipl...
Definition:
BarotraumaShared/SharedSource/Characters/Character.cs:5531
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.ContentXElement.GetAttributeIdentifierImmutableHashSet
ImmutableHashSet< Identifier > GetAttributeIdentifierImmutableHashSet(string key, ImmutableHashSet< Identifier >? def, bool trim=true)
Barotrauma.Entity.WorldPosition
virtual Vector2 WorldPosition
Definition:
Entity.cs:49
Barotrauma.Abilities
Definition:
AbilityCondition.cs:5
Barotrauma
BarotraumaShared
SharedSource
Characters
Talents
Abilities
CharacterAbilityApplyStatusEffectsToAllies.cs
Generated by
1.9.1