Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_MultiExecuteListArsenalRefundEffect.c
Go to the documentation of this file.
1
2[BaseContainerProps(configRoot: true), BaseContainerCustomCheckIntTitleField("m_bEnabled", "Multi Execute Entries", "(Disabled) Multi Execute Entries", 1)]
4{
5 [Attribute(desc: "An array of effects. These will all be executed if the Refund effect is chosen in order of the array.")]
6 protected ref array<ref SCR_BaseArsenalRefundEffect> m_aMultiExecuteEffectEntries;
7
8 //------------------------------------------------------------------------------------------------
9 override void Init(SCR_ArsenalRefundEffectComponentClass arsenalRefundEffectClass)
10 {
11 //~ Remove any disabled
12 for (int i = m_aMultiExecuteEffectEntries.Count() - 1; i >= 0; i--)
13 {
14 m_aMultiExecuteEffectEntries[i].Init(arsenalRefundEffectClass);
15
16 if (!m_aMultiExecuteEffectEntries[i].m_bEnabled)
17 m_aMultiExecuteEffectEntries.RemoveOrdered(i);
18 }
19 }
20
21 //------------------------------------------------------------------------------------------------
22 override bool IsValid(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
23 {
24 if (!super.IsValid(item, playerController, arsenal))
25 return false;
26
27 //~ Check if there are any entries
28 return !m_aMultiExecuteEffectEntries.IsEmpty() && HasValidEntries(item, playerController, arsenal);
29 }
30
31 //------------------------------------------------------------------------------------------------
32 override bool ExecuteRefundEffect(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
33 {
34 bool executedSuccessfullyAtLeastOnce;
35
36 //~ Get valid entries
37 array<SCR_BaseArsenalRefundEffect> validEntries = {};
38 GetValidEntries(validEntries, item, playerController, arsenal);
39
40 //~ Execute all effects
41 foreach(SCR_BaseArsenalRefundEffect entry : validEntries)
42 {
43 if (entry.ExecuteRefundEffect(item, playerController, arsenal))
44 executedSuccessfullyAtLeastOnce = true;
45 }
46
47 //~ Return if successfully executed at least one effect
48 return executedSuccessfullyAtLeastOnce;
49 }
50
51 //------------------------------------------------------------------------------------------------
52 //~ Check if there is at least one valid entry
53 protected bool HasValidEntries(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
54 {
55 //~ Check if there is at least one valid entry
57 {
58 if (entry.IsValid(item, playerController, arsenal))
59 return true;
60 }
61
62 return false;
63 }
64
65 //------------------------------------------------------------------------------------------------
66 //~ Get all valid entries
67 protected int GetValidEntries(notnull inout array<SCR_BaseArsenalRefundEffect> validEntries, notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
68 {
69 validEntries.Clear();
70
71 //~ Get all valid entries
73 {
74 if (entry.IsValid(item, playerController, arsenal))
75 validEntries.Insert(entry);
76 }
77
78 return validEntries.Count();
79 }
80}
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
SCR_ValuableIntelArsenalRefundEffect SCR_WeightedListArsenalRefundEffect BaseContainerCustomCheckIntTitleField("m_bEnabled", "Valuable Intel - Add XP", "(Disabled) Valuable Intel - Add XP", 1)
Holds an array of effects that are all executed when this Refund effect is chosen.
ref array< ref SCR_BaseArsenalRefundEffect > m_aMultiExecuteEffectEntries
override bool ExecuteRefundEffect(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
override bool IsValid(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
int GetValidEntries(notnull inout array< SCR_BaseArsenalRefundEffect > validEntries, notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
bool HasValidEntries(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
override void Init(SCR_ArsenalRefundEffectComponentClass arsenalRefundEffectClass)
SCR_FieldOfViewSettings Attribute