Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ArsenalRefundEffectComponent.c
Go to the documentation of this file.
1[ComponentEditorProps(category: "GameScripted/Inventory", description: "")]
3{
4 [Attribute()]
5 protected ref array<ref SCR_BaseArsenalRefundEffect> m_aArsenalRefundEffects;
6
7 protected ref array<ref SCR_BaseArsenalRefundEffect> m_aOrderedArsenalRefundEffects;
8
9 //------------------------------------------------------------------------------------------------
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
20 return;
21
22 //~ Init the effects
24 {
25 effect.Init(this);
26 }
27
28 bool addedToArray;
30
31 //~ Remove disabled effects and order the array on priority
33 {
34 //~ Ignore disabled
35 if (!effect.m_bEnabled)
36 continue;
37
38 addedToArray = false;
39
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
58 }
59
60 //------------------------------------------------------------------------------------------------
64 int GetOrderedRefundEffects(notnull inout array<SCR_BaseArsenalRefundEffect> refundEffects)
65 {
66 refundEffects.Clear();
67
69 return 0;
70
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 {
88 return null;
89
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
126class SCR_ArsenalRefundEffectComponent : ScriptComponent
127{
128
129}
130
131
132
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
ref array< ref SCR_BaseArsenalRefundEffect > m_aOrderedArsenalRefundEffects
SCR_BaseArsenalRefundEffect ExecuteFirstValidRefundEffect(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
ref array< ref SCR_BaseArsenalRefundEffect > m_aArsenalRefundEffects
void SCR_ArsenalRefundEffectComponentClass(IEntityComponentSource componentSource, IEntitySource parentSource, IEntitySource prefabSource)
int GetOrderedRefundEffects(notnull inout array< SCR_BaseArsenalRefundEffect > refundEffects)
SCR_BaseArsenalRefundEffect GetValidEffect(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
void InitClass(IEntityComponentSource componentSource, IEntitySource parentSource, IEntitySource prefabSource)
bool ExecuteRefundEffect(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
static bool IsEditMode()
Definition Functions.c:1566
SCR_FieldOfViewSettings Attribute