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_WeightedListArsenalRefundEffect.c
Go to the documentation of this file.
1
2
[
BaseContainerProps
(configRoot:
true
),
BaseContainerCustomCheckIntTitleField
(
"m_bEnabled"
,
"Weighted Entries"
,
"(Disabled) Weighted Entries"
, 1)]
3
class
SCR_WeightedListArsenalRefundEffect
:
SCR_BaseArsenalRefundEffect
4
{
5
[
Attribute
(
desc
:
"An array of effects. It will weighted randomize which effects will be executed any effect disabled will never be randomized"
)]
6
protected
ref array<ref SCR_BaseWeightedArsenalRefundEffectEntry>
m_aWeightedEffectEntries
;
7
8
//------------------------------------------------------------------------------------------------
9
override
void
Init
(
SCR_ArsenalRefundEffectComponentClass
arsenalRefundEffectClass)
10
{
11
//~ Remove any disabled
12
for
(
int
i =
m_aWeightedEffectEntries
.Count() - 1; i >= 0; i--)
13
{
14
m_aWeightedEffectEntries
[i].Init(arsenalRefundEffectClass);
15
16
if
(!
m_aWeightedEffectEntries
[i].m_bEnabled)
17
m_aWeightedEffectEntries
.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_aWeightedEffectEntries
.IsEmpty() &&
HasValidEntries
(item, playerController, arsenal);
29
}
30
31
//------------------------------------------------------------------------------------------------
32
override
bool
ExecuteRefundEffect
(notnull
IEntity
item, notnull PlayerController playerController,
SCR_ArsenalComponent
arsenal)
33
{
34
//~ Get valid entries
35
array<SCR_BaseWeightedArsenalRefundEffectEntry> validEntries = {};
36
GetValidEntries
(validEntries, item, playerController, arsenal);
37
38
if
(validEntries.IsEmpty())
39
return
false
;
40
41
SCR_WeightedArray<SCR_BaseWeightedArsenalRefundEffectEntry> weightedArrayEffectEntries =
new
SCR_WeightedArray<SCR_BaseWeightedArsenalRefundEffectEntry>();
42
43
//~ Add to weighted array
44
foreach
(
SCR_BaseWeightedArsenalRefundEffectEntry
entry : validEntries)
45
{
46
if
(!entry.m_bEnabled)
47
continue
;
48
49
weightedArrayEffectEntries.Insert(entry, entry.m_iWeight);
50
}
51
52
//~ Get weighted random entry
53
SCR_BaseWeightedArsenalRefundEffectEntry
entry;
54
weightedArrayEffectEntries.GetRandomValue(entry);
55
56
//~ Execute the effect
57
return
entry && entry.ExecuteRefundEffect(item, playerController, arsenal);
58
}
59
60
//------------------------------------------------------------------------------------------------
61
//~ Check if there is at least one valid entry
62
protected
bool
HasValidEntries
(notnull
IEntity
item, notnull PlayerController playerController,
SCR_ArsenalComponent
arsenal)
63
{
64
//~ Check if there is at least one valid entry
65
foreach
(
SCR_BaseWeightedArsenalRefundEffectEntry
entry :
m_aWeightedEffectEntries
)
66
{
67
if
(entry.IsValid(item, playerController, arsenal))
68
return
true
;
69
}
70
71
return
false
;
72
}
73
74
//------------------------------------------------------------------------------------------------
75
//~ Get all valid entries
76
protected
int
GetValidEntries
(notnull inout array<SCR_BaseWeightedArsenalRefundEffectEntry> validEntries, notnull
IEntity
item, notnull PlayerController playerController,
SCR_ArsenalComponent
arsenal)
77
{
78
validEntries.Clear();
79
80
//~ Get all valid entries
81
foreach
(
SCR_BaseWeightedArsenalRefundEffectEntry
entry :
m_aWeightedEffectEntries
)
82
{
83
if
(entry.IsValid(item, playerController, arsenal))
84
validEntries.Insert(entry);
85
}
86
87
return
validEntries.Count();
88
}
89
}
BaseContainerProps
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
Definition
SCR_AIAnimationWaypoint.c:14
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
BaseContainerCustomCheckIntTitleField
SCR_ValuableIntelArsenalRefundEffect SCR_WeightedListArsenalRefundEffect BaseContainerCustomCheckIntTitleField("m_bEnabled", "Valuable Intel - Add XP", "(Disabled) Valuable Intel - Add XP", 1)
Definition
SCR_ValuableIntelArsenalRefundEffect.c:17
IEntity
Definition
IEntity.c:13
SCR_ArsenalComponent
Definition
SCR_ArsenalComponent.c:10
SCR_ArsenalRefundEffectComponentClass
Definition
SCR_ArsenalRefundEffectComponent.c:3
SCR_BaseArsenalRefundEffect
Definition
SCR_BaseArsenalRefundEffect.c:3
SCR_BaseWeightedArsenalRefundEffectEntry
Effects that support the weighted variant of Arsenal Refund effects. Only works for SCR_BaseWeightedA...
Definition
SCR_BaseWeightedArsenalRefundEffectEntry.c:4
SCR_WeightedListArsenalRefundEffect
Holds an array of effects that are executed using a weighted randomization.
Definition
SCR_WeightedListArsenalRefundEffect.c:4
SCR_WeightedListArsenalRefundEffect::IsValid
override bool IsValid(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
Definition
SCR_WeightedListArsenalRefundEffect.c:22
SCR_WeightedListArsenalRefundEffect::m_aWeightedEffectEntries
ref array< ref SCR_BaseWeightedArsenalRefundEffectEntry > m_aWeightedEffectEntries
Definition
SCR_WeightedListArsenalRefundEffect.c:6
SCR_WeightedListArsenalRefundEffect::Init
override void Init(SCR_ArsenalRefundEffectComponentClass arsenalRefundEffectClass)
Definition
SCR_WeightedListArsenalRefundEffect.c:9
SCR_WeightedListArsenalRefundEffect::HasValidEntries
bool HasValidEntries(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
Definition
SCR_WeightedListArsenalRefundEffect.c:62
SCR_WeightedListArsenalRefundEffect::GetValidEntries
int GetValidEntries(notnull inout array< SCR_BaseWeightedArsenalRefundEffectEntry > validEntries, notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
Definition
SCR_WeightedListArsenalRefundEffect.c:76
SCR_WeightedListArsenalRefundEffect::ExecuteRefundEffect
override bool ExecuteRefundEffect(notnull IEntity item, notnull PlayerController playerController, SCR_ArsenalComponent arsenal)
Definition
SCR_WeightedListArsenalRefundEffect.c:32
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
scripts
Game
Inventory
ArsenalRefundEffects
SCR_WeightedListArsenalRefundEffect.c
Generated by
1.17.0