Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_ExtendedDamageManagerComponent.c
Go to the documentation of this file.
1
6
7
class
SCR_ExtendedDamageManagerComponentClass
:
ExtendedDamageManagerComponentClass
8
{
9
}
10
11
class
SCR_ExtendedDamageManagerComponent :
ExtendedDamageManagerComponent
12
{
13
/*
14
IMPORTANT: ===========================================================================================
15
The following API will not be useful for damageManagers inheriting from ExtendedDamageManagerComponent
16
//void OnDamageOverTimeAdded(EDamageType dType, float dps, HitZone hz);
17
//void OnDamageOverTimeRemoved(EDamageType dType, HitZone hz);
18
//bool IsDamagedOverTime(EDamageType dType)
19
//float GetDamageOverTime(EDamageType dType);
20
//void RemoveDamageOverTime(EDamageType dType);
21
22
DamageEffects logic replaces the conventional damageOverTime, and has it's own API.
23
- Instead of OnDamageOverTimeAdded() use OnDamageEffectAdded()
24
- Instead of OnDamageOverTimeRemoved() use OnDamageEffectRemoved()
25
- Instead of IsDamagedOverTime() use
26
- SCR_CharacterDamageManagerComponent.IsBleeding()
27
- GetPersistentEffects()
28
- GetAllPersistentEffectsOnHitZone()
29
- GetAllPersistentEffectsOfType()
30
- Instead of GetDamageOverTime() use
31
- SCR_RegeneratingHitZone.GetHitZoneDamageOverTime()
32
- SCR_CharacterBloodHitZone.GetTotalBleedingAmount()
33
*/
34
35
//------------------------------------------------------------------------------------------------
36
ScriptInvoker
GetOnDamageEffectAdded
()
37
{
38
return
GetScriptedDamageManagerData
().
GetOnDamageEffectAdded
();
39
}
40
41
//------------------------------------------------------------------------------------------------
42
ScriptInvoker
GetOnDamageEffectRemoved
()
43
{
44
return
GetScriptedDamageManagerData
().
GetOnDamageEffectRemoved
();
45
}
46
47
//-----------------------------------------------------------------------------------------------------------
48
override
void
OnDamageEffectAdded
(notnull
SCR_DamageEffect
dmgEffect)
49
{
50
super.OnDamageEffectAdded(dmgEffect);
51
52
if
(s_aDamageManagerData.IsIndexValid(
m_iDamageManagerDataIndex
))
53
{
54
ScriptInvoker
invoker = s_aDamageManagerData.Get(
m_iDamageManagerDataIndex
).GetOnDamageEffectAdded(
false
);
55
if
(invoker)
56
invoker.Invoke(dmgEffect);
57
}
58
}
59
60
//-----------------------------------------------------------------------------------------------------------
61
override
void
OnDamageEffectRemoved
(notnull
SCR_DamageEffect
dmgEffect)
62
{
63
super.OnDamageEffectAdded(dmgEffect);
64
65
if
(s_aDamageManagerData.IsIndexValid(
m_iDamageManagerDataIndex
))
66
{
67
ScriptInvoker
invoker = s_aDamageManagerData.Get(
m_iDamageManagerDataIndex
).GetOnDamageEffectRemoved(
false
);
68
if
(invoker)
69
invoker.Invoke(dmgEffect);
70
}
71
}
72
73
//------------------------------------------------------------------------------------------------
74
array<ref PersistentDamageEffect>
FilterEffectsByHitZone
(array<ref PersistentDamageEffect> damageEffects, notnull
HitZone
hitZone)
75
{
76
array<ref PersistentDamageEffect> filteredDamageEffects = {};
77
78
if
(damageEffects.IsEmpty())
79
return
filteredDamageEffects;
80
81
foreach
(ref
PersistentDamageEffect
effect : damageEffects)
82
{
83
if
(effect.GetAffectedHitZone() == hitZone)
84
filteredDamageEffects.Insert(effect);
85
}
86
87
return
filteredDamageEffects;
88
}
89
90
//------------------------------------------------------------------------------------------------
91
array<ref SCR_PersistentDamageEffect>
GetAllPersistentEffectsOfType
(
typename
effectTypeName,
bool
includeInheritedTypes =
false
)
92
{
93
array<ref SCR_PersistentDamageEffect> damageEffects = {};
94
95
if
(!includeInheritedTypes)
96
{
97
FindAllDamageEffectsOfType(effectTypeName, damageEffects);
98
return
damageEffects;
99
}
100
101
GetPersistentEffects(damageEffects);
102
103
if
(damageEffects.IsEmpty())
104
return
damageEffects;
105
106
array<ref SCR_PersistentDamageEffect> allEffectsOfType = {};
107
108
foreach
(ref
SCR_PersistentDamageEffect
effect : damageEffects)
109
{
110
if
(effect.Type() == effectTypeName)
111
allEffectsOfType.Insert(effect);
112
else
if
(includeInheritedTypes && effect.IsInherited(effectTypeName))
113
allEffectsOfType.Insert(effect);
114
}
115
116
return
allEffectsOfType;
117
}
118
119
//------------------------------------------------------------------------------------------------
120
array<ref SCR_PersistentDamageEffect>
FilterEffectsByType
(array<ref SCR_PersistentDamageEffect> damageEffects,
typename
effectTypename)
121
{
122
array<ref SCR_PersistentDamageEffect> filteredDamageEffects = {};
123
124
if
(damageEffects.IsEmpty())
125
return
filteredDamageEffects;
126
127
foreach
(ref
SCR_PersistentDamageEffect
effect : damageEffects)
128
{
129
if
(effect.ClassName() == effectTypename.ToString())
130
filteredDamageEffects.Insert(effect);
131
}
132
133
return
filteredDamageEffects;
134
}
135
}
GetScriptedDamageManagerData
notnull SCR_DamageManagerData GetScriptedDamageManagerData()
Definition
SCR_DamageManagerComponent.c:262
m_iDamageManagerDataIndex
int m_iDamageManagerDataIndex
Definition
SCR_DamageManagerComponent.c:108
ExtendedDamageManagerComponentClass
Definition
ExtendedDamageManagerComponentClass.c:13
ExtendedDamageManagerComponent
Definition
ExtendedDamageManagerComponent.c:13
HitZone
Definition
HitZone.c:13
PersistentDamageEffect
Definition
PersistentDamageEffect.c:13
SCR_DamageEffect
Definition
SCR_DamageEffect.c:7
SCR_DamageManagerData::GetOnDamageEffectRemoved
ScriptInvoker GetOnDamageEffectRemoved(bool createNew=true)
Definition
SCR_DamageManagerData.c:64
SCR_DamageManagerData::GetOnDamageEffectAdded
ScriptInvoker GetOnDamageEffectAdded(bool createNew=true)
Definition
SCR_DamageManagerData.c:56
SCR_ExtendedDamageManagerComponentClass
Definition
SCR_ExtendedDamageManagerComponent.c:8
SCR_PersistentDamageEffect
Definition
SCR_PersistentDamageEffect.c:7
OnDamageEffectRemoved
override void OnDamageEffectRemoved(notnull SCR_DamageEffect dmgEffect)
Definition
SCR_ExtendedDamageManagerComponent.c:61
GetAllPersistentEffectsOfType
array< ref SCR_PersistentDamageEffect > GetAllPersistentEffectsOfType(typename effectTypeName, bool includeInheritedTypes=false)
Definition
SCR_ExtendedDamageManagerComponent.c:91
GetOnDamageEffectRemoved
ScriptInvoker GetOnDamageEffectRemoved()
Definition
SCR_ExtendedDamageManagerComponent.c:42
FilterEffectsByHitZone
array< ref PersistentDamageEffect > FilterEffectsByHitZone(array< ref PersistentDamageEffect > damageEffects, notnull HitZone hitZone)
Definition
SCR_ExtendedDamageManagerComponent.c:74
OnDamageEffectAdded
override void OnDamageEffectAdded(notnull SCR_DamageEffect dmgEffect)
Definition
SCR_ExtendedDamageManagerComponent.c:48
GetOnDamageEffectAdded
SCR_ExtendedDamageManagerComponentClass ExtendedDamageManagerComponentClass GetOnDamageEffectAdded()
Definition
SCR_ExtendedDamageManagerComponent.c:36
FilterEffectsByType
array< ref SCR_PersistentDamageEffect > FilterEffectsByType(array< ref SCR_PersistentDamageEffect > damageEffects, typename effectTypename)
Definition
SCR_ExtendedDamageManagerComponent.c:120
ScriptInvoker
ScriptInvokerBase< func > ScriptInvoker
Definition
tools.c:134
scripts
GameCode
Components
SCR_ExtendedDamageManagerComponent.c
Generated by
1.17.0