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_ArsenalRefundEffectComponent.c
Go to the documentation of this file.
1
[
ComponentEditorProps
(
category
:
"GameScripted/Inventory"
, description:
""
)]
2
class
SCR_ArsenalRefundEffectComponentClass
:
ScriptComponentClass
3
{
4
[
Attribute
()]
5
protected
ref array<ref SCR_BaseArsenalRefundEffect>
m_aArsenalRefundEffects
;
6
7
protected
ref array<ref SCR_BaseArsenalRefundEffect>
m_aOrderedArsenalRefundEffects
;
8
9
//------------------------------------------------------------------------------------------------
10
void
SCR_ArsenalRefundEffectComponentClass
(
IEntityComponentSource
componentSource,
IEntitySource
parentSource,
IEntitySource
prefabSource)
11
{
12
InitClass
(componentSource, parentSource, prefabSource);
13
}
14
15
//------------------------------------------------------------------------------------------------
16
protected
void
InitClass
(
IEntityComponentSource
componentSource,
IEntitySource
parentSource,
IEntitySource
prefabSource)
17
{
18
//~ No need to init in Workbench or if the ordered list already exists
19
if
(
SCR_Global
.
IsEditMode
() ||
m_aOrderedArsenalRefundEffects
)
20
return
;
21
22
//~ Init the effects
23
foreach
(
SCR_BaseArsenalRefundEffect
effect :
m_aArsenalRefundEffects
)
24
{
25
effect.Init(
this
);
26
}
27
28
bool
addedToArray;
29
m_aOrderedArsenalRefundEffects
= {};
30
31
//~ Remove disabled effects and order the array on priority
32
foreach
(
SCR_BaseArsenalRefundEffect
effect :
m_aArsenalRefundEffects
)
33
{
34
//~ Ignore disabled
35
if
(!effect.m_bEnabled)
36
continue
;
37
38
addedToArray =
false
;
39
40
foreach
(
int
index
,
SCR_BaseArsenalRefundEffect
orderedEffect :
m_aOrderedArsenalRefundEffects
)
41
{
42
//~ Order on priority
43
if
(effect.m_iPriority > orderedEffect.m_iPriority)
44
{
45
m_aOrderedArsenalRefundEffects
.InsertAt(effect,
index
);
46
addedToArray =
true
;
47
break
;
48
}
49
}
50
51
//~ No higher priority found so add at the end
52
if
(!addedToArray)
53
m_aOrderedArsenalRefundEffects
.Insert(effect);
54
}
55
56
//~ Clear initial array
57
m_aArsenalRefundEffects
= null;
58
}
59
60
//------------------------------------------------------------------------------------------------
64
int
GetOrderedRefundEffects
(notnull inout array<SCR_BaseArsenalRefundEffect> refundEffects)
65
{
66
refundEffects.Clear();
67
68
if
(!
m_aOrderedArsenalRefundEffects
)
69
return
0;
70
71
foreach
(
SCR_BaseArsenalRefundEffect
orderedEffect :
m_aOrderedArsenalRefundEffects
)
72
{
73
refundEffects.Insert(orderedEffect);
74
}
75
76
return
refundEffects.Count();
77
}
78
79
//------------------------------------------------------------------------------------------------
85
SCR_BaseArsenalRefundEffect
GetValidEffect
(notnull
IEntity
item, notnull PlayerController playerController,
SCR_ArsenalComponent
arsenal)
86
{
87
if
(!
m_aOrderedArsenalRefundEffects
||
m_aOrderedArsenalRefundEffects
.IsEmpty())
88
return
null;
89
90
foreach
(
SCR_BaseArsenalRefundEffect
orderedEffect :
m_aOrderedArsenalRefundEffects
)
91
{
92
//~ Check if valid
93
if
(!orderedEffect.IsValid(item, playerController, arsenal))
94
continue
;
95
96
//~ Return valid refund effect
97
return
orderedEffect;
98
}
99
100
//~ No valid refund effect
101
return
null;
102
}
103
104
//------------------------------------------------------------------------------------------------
110
SCR_BaseArsenalRefundEffect
ExecuteFirstValidRefundEffect
(notnull
IEntity
item, notnull PlayerController playerController,
SCR_ArsenalComponent
arsenal)
111
{
112
//~ Find a valid effect
113
SCR_BaseArsenalRefundEffect
validRefundEffect =
GetValidEffect
(item, playerController, arsenal);
114
if
(!validRefundEffect)
115
return
null;
116
117
//~ Try to execute the effect
118
if
(!validRefundEffect.
ExecuteRefundEffect
(item, playerController, arsenal))
119
return
null;
120
121
//~ Effect was successfully executed
122
return
validRefundEffect;
123
}
124
}
125
126
class
SCR_ArsenalRefundEffectComponent :
ScriptComponent
127
{
128
129
}
130
131
132
ComponentEditorProps
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
Definition
SCR_AIGroupUtilityComponent.c:12
index
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
Definition
SCR_DestructionSynchronizationComponent.c:17
category
params category
Definition
SCR_VehicleDamageManagerComponent.c:302
IEntityComponentSource
Definition
IEntityComponentSource.c:13
IEntity
Definition
IEntity.c:13
IEntitySource
Definition
IEntitySource.c:13
SCR_ArsenalComponent
Definition
SCR_ArsenalComponent.c:10
SCR_ArsenalRefundEffectComponentClass::m_aOrderedArsenalRefundEffects
ref array< ref SCR_BaseArsenalRefundEffect > m_aOrderedArsenalRefundEffects
Definition
SCR_ArsenalRefundEffectComponent.c:7
SCR_ArsenalRefundEffectComponentClass::ExecuteFirstValidRefundEffect
SCR_BaseArsenalRefundEffect ExecuteFirstValidRefundEffect(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
Definition
SCR_ArsenalRefundEffectComponent.c:110
SCR_ArsenalRefundEffectComponentClass::m_aArsenalRefundEffects
ref array< ref SCR_BaseArsenalRefundEffect > m_aArsenalRefundEffects
Definition
SCR_ArsenalRefundEffectComponent.c:5
SCR_ArsenalRefundEffectComponentClass::SCR_ArsenalRefundEffectComponentClass
void SCR_ArsenalRefundEffectComponentClass(IEntityComponentSource componentSource, IEntitySource parentSource, IEntitySource prefabSource)
Definition
SCR_ArsenalRefundEffectComponent.c:10
SCR_ArsenalRefundEffectComponentClass::GetOrderedRefundEffects
int GetOrderedRefundEffects(notnull inout array< SCR_BaseArsenalRefundEffect > refundEffects)
Definition
SCR_ArsenalRefundEffectComponent.c:64
SCR_ArsenalRefundEffectComponentClass::GetValidEffect
SCR_BaseArsenalRefundEffect GetValidEffect(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
Definition
SCR_ArsenalRefundEffectComponent.c:85
SCR_ArsenalRefundEffectComponentClass::InitClass
void InitClass(IEntityComponentSource componentSource, IEntitySource parentSource, IEntitySource prefabSource)
Definition
SCR_ArsenalRefundEffectComponent.c:16
SCR_BaseArsenalRefundEffect
Definition
SCR_BaseArsenalRefundEffect.c:3
SCR_BaseArsenalRefundEffect::ExecuteRefundEffect
bool ExecuteRefundEffect(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
SCR_Global
Definition
Functions.c:7
SCR_Global::IsEditMode
static bool IsEditMode()
Definition
Functions.c:1566
ScriptComponentClass
Definition
ScriptComponentClass.c:8
ScriptComponent
Definition
ScriptComponent.c:24
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
scripts
Game
Inventory
ArsenalRefundEffects
SCR_ArsenalRefundEffectComponent.c
Generated by
1.17.0