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_AIClearActionsForDefendActivity.c
Go to the documentation of this file.
1
class
SCR_AIClearActionsForDefendActivity
:
AITaskScripted
2
{
3
static
const
string
PORT_WAYPOINT =
"WaypointIn"
;
4
5
[
Attribute
(
"false"
,
UIWidgets
.CheckBox,
"Keep turrets occupied?"
)];
6
bool
m_bKeepTurrets;
7
8
[
Attribute
(
"false"
,
UIWidgets
.CheckBox,
"Keep smart actions occupied?"
)];
9
bool
m_bKeepSA;
10
11
[
Attribute
(
"true"
,
UIWidgets
.Auto,
"Keep sector covers"
)];
12
bool
m_bKeepSectorCovers;
13
14
[
Attribute
(
"500"
,
UIWidgets
.EditBox,
"Update interval"
)]
15
protected
float
m_fUpdateInterval_ms
;
16
17
protected
float
m_fNextUpdate_ms
;
18
19
protected
SCR_AIGroup
m_groupOwner
;
20
protected
SCR_DefendWaypoint
m_RelatedWaypoint
;
21
protected
bool
m_bSendingCancel
;
22
protected
SCR_MailboxComponent
m_Mailbox
;
23
protected
SCR_AIDefendActivity
m_RelatedActivity
;
24
25
//------------------------------------------------------------------------------------------------
26
static
override
bool
VisibleInPalette
() {
return
true
;}
27
28
//------------------------------------------------------------------------------------------------
29
override
void
OnInit
(AIAgent owner)
30
{
31
m_groupOwner
=
SCR_AIGroup
.Cast(owner);
32
if
(!
m_groupOwner
)
33
{
34
m_groupOwner
=
SCR_AIGroup
.Cast(owner.GetParentGroup());
35
if
(!
m_groupOwner
)
36
{
37
SCR_AgentMustBeAIGroup
(
this
, owner);
38
return
;
39
}
40
}
41
SCR_AIGroupUtilityComponent
utility =
SCR_AIGroupUtilityComponent
.Cast(
m_groupOwner
.FindComponent(
SCR_AIGroupUtilityComponent
));
42
if
(!utility)
43
return
;
44
m_Mailbox
= utility.m_Mailbox;
45
m_RelatedActivity
=
SCR_AIDefendActivity
.Cast(utility.GetCurrentAction());
46
}
47
48
//------------------------------------------------------------------------------------------------
49
override
void
OnEnter
(AIAgent owner)
50
{
51
m_bSendingCancel
=
true
;
52
}
53
54
//------------------------------------------------------------------------------------------------
55
override
ENodeResult
EOnTaskSimulate
(AIAgent owner,
float
dt)
56
{
57
if
(!
m_groupOwner
)
58
return
ENodeResult
.FAIL;
59
IEntity
waypointEnt;
60
61
if
(!
m_Mailbox
|| !
m_RelatedActivity
)
62
return
ENodeResult
.FAIL;
63
64
GetVariableIn
(PORT_WAYPOINT,waypointEnt);
65
66
bool
waitingForCancel =
false
;
67
bool
cancelSent;
68
array<AIAgent> agents = {};
69
m_groupOwner
.GetAgents(agents);
70
foreach
(AIAgent agent : agents)
71
{
72
SCR_ChimeraAIAgent
chimeraAIAgent =
SCR_ChimeraAIAgent
.Cast(agent);
73
if
(!chimeraAIAgent)
74
continue
;
75
SCR_AIUtilityComponent utility = chimeraAIAgent.m_UtilityComponent;
76
if
(!utility)
77
continue
;
78
SCR_AIBehaviorBase
currBehavior = utility.GetCurrentBehavior();
79
if
(
SCR_AIDefendBehavior
.Cast(currBehavior) && !m_bKeepSectorCovers)
80
{
81
waitingForCancel =
true
;
82
if
(
m_bSendingCancel
)
83
{
84
SCR_AIMessage_Cancel
cancelMessage =
SCR_AIMessage_Cancel
.Create(
m_RelatedActivity
);
85
m_Mailbox
.RequestBroadcast(cancelMessage, agent);
86
cancelSent =
true
;
87
continue
;
88
}
89
break
;
90
}
91
if
(
SCR_AIPerformActionBehavior
.Cast(currBehavior) && !m_bKeepSA)
92
{
93
waitingForCancel =
true
;
94
if
(
m_bSendingCancel
)
95
{
96
SCR_AIMessage_Cancel
cancelMessage =
SCR_AIMessage_Cancel
.Create(
m_RelatedActivity
);
97
m_Mailbox
.RequestBroadcast(cancelMessage, agent);
98
cancelSent =
true
;
99
continue
;
100
}
101
break
;
102
}
103
if
(utility.m_AIInfo.HasUnitState(EUnitState.IN_TURRET) && !m_bKeepTurrets)
104
{
105
waitingForCancel =
true
;
106
if
(
m_bSendingCancel
)
107
{
108
IEntity
agentEntity = agent.GetControlledEntity();
109
IEntity
vehicle = CompartmentAccessComponent.GetVehicleIn(agentEntity);
110
SCR_AIBoardingParameters
params
=
new
SCR_AIBoardingParameters
;
111
SCR_AIMessage_GetOut
getOutMessage =
SCR_AIMessage_GetOut
.Create(vehicle,
params
,
m_RelatedActivity
);
112
m_Mailbox
.RequestBroadcast(getOutMessage, agent);
113
cancelSent =
true
;
114
continue
;
115
}
116
break
;
117
}
118
}
119
if
(cancelSent)
120
m_bSendingCancel
=
false
;
121
if
(waitingForCancel)
122
{
123
return
ENodeResult
.RUNNING;
124
}
125
return
ENodeResult
.SUCCESS;
126
}
127
128
//------------------------------------------------------------------------------------------------
129
protected
static
ref
TStringArray
s_aVarsIn
= {
130
PORT_WAYPOINT
131
};
132
override
TStringArray
GetVariablesIn
()
133
{
134
return
s_aVarsIn
;
135
}
136
137
//------------------------------------------------------------------------------------------------
138
static
override
string
GetOnHoverDescription
()
139
{
140
return
"ClearActionsForDefendActivity: Goes over all group members and makes them leave the actions they were assigned to. Returns RUNNING until all canceled behaviors are done."
;
141
}
142
143
//------------------------------------------------------------------------------------------------
144
static
override
bool
CanReturnRunning
() {
return
true
; }
145
}
SCR_AgentMustBeAIGroup
void SCR_AgentMustBeAIGroup(Node node, AIAgent owner)
Definition
NodeError.c:14
SCR_AIBehaviorBase
void SCR_AIBehaviorBase(SCR_AIUtilityComponent utility, SCR_AIActivityBase groupActivity)
Definition
SCR_AIBehavior.c:23
params
category params
Definition
SCR_SpherePointGeneratorPreviewComponent.c:21
AITaskScripted
Definition
AITaskScripted.c:13
IEntity
Definition
IEntity.c:13
Node::GetVariableIn
proto bool GetVariableIn(string name, out void val)
SCR_AIBoardingParameters
Definition
SCR_BoardingWaypoint.c:6
SCR_AIClearActionsForDefendActivity
Definition
SCR_AIClearActionsForDefendActivity.c:2
SCR_AIClearActionsForDefendActivity::m_fNextUpdate_ms
float m_fNextUpdate_ms
Definition
SCR_AIClearActionsForDefendActivity.c:17
SCR_AIClearActionsForDefendActivity::s_aVarsIn
static ref TStringArray s_aVarsIn
Definition
SCR_AIClearActionsForDefendActivity.c:129
SCR_AIClearActionsForDefendActivity::m_fUpdateInterval_ms
float m_fUpdateInterval_ms
Definition
SCR_AIClearActionsForDefendActivity.c:15
SCR_AIClearActionsForDefendActivity::EOnTaskSimulate
override ENodeResult EOnTaskSimulate(AIAgent owner, float dt)
Definition
SCR_AIClearActionsForDefendActivity.c:55
SCR_AIClearActionsForDefendActivity::m_bSendingCancel
bool m_bSendingCancel
Definition
SCR_AIClearActionsForDefendActivity.c:21
SCR_AIClearActionsForDefendActivity::m_Mailbox
SCR_MailboxComponent m_Mailbox
Definition
SCR_AIClearActionsForDefendActivity.c:22
SCR_AIClearActionsForDefendActivity::VisibleInPalette
static override bool VisibleInPalette()
Definition
SCR_AIClearActionsForDefendActivity.c:26
SCR_AIClearActionsForDefendActivity::CanReturnRunning
static override bool CanReturnRunning()
Definition
SCR_AIClearActionsForDefendActivity.c:144
SCR_AIClearActionsForDefendActivity::OnInit
override void OnInit(AIAgent owner)
Definition
SCR_AIClearActionsForDefendActivity.c:29
SCR_AIClearActionsForDefendActivity::GetOnHoverDescription
static override string GetOnHoverDescription()
Definition
SCR_AIClearActionsForDefendActivity.c:138
SCR_AIClearActionsForDefendActivity::OnEnter
override void OnEnter(AIAgent owner)
Definition
SCR_AIClearActionsForDefendActivity.c:49
SCR_AIClearActionsForDefendActivity::m_RelatedActivity
SCR_AIDefendActivity m_RelatedActivity
Definition
SCR_AIClearActionsForDefendActivity.c:23
SCR_AIClearActionsForDefendActivity::m_groupOwner
SCR_AIGroup m_groupOwner
Definition
SCR_AIClearActionsForDefendActivity.c:19
SCR_AIClearActionsForDefendActivity::m_RelatedWaypoint
SCR_DefendWaypoint m_RelatedWaypoint
Definition
SCR_AIClearActionsForDefendActivity.c:20
SCR_AIClearActionsForDefendActivity::GetVariablesIn
override TStringArray GetVariablesIn()
Definition
SCR_AIClearActionsForDefendActivity.c:132
SCR_AIDefendActivity
Definition
SCR_AIDefendActivity.c:2
SCR_AIDefendBehavior
Definition
SCR_AIDefendBehavior.c:2
SCR_AIGroup
Definition
SCR_AIGroup.c:75
SCR_AIGroupUtilityComponent
Definition
SCR_AIGroupUtilityComponent.c:18
SCR_AIMessage_Cancel
Definition
SCR_AIMessage.c:269
SCR_AIMessage_GetOut
Definition
SCR_AIMessage.c:640
SCR_AIPerformActionBehavior
Definition
SCR_AIPerformActionBehavior.c:2
SCR_ChimeraAIAgent
Definition
SCR_ChimeraAIAgent.c:6
SCR_DefendWaypoint
Definition
SCR_DefendWaypoint.c:7
UIWidgets
Definition
attributes.c:40
ENodeResult
ENodeResult
Definition
ENodeResult.c:13
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
TStringArray
array< string > TStringArray
Definition
Types.c:385
scripts
Game
AI
ScriptedNodes
Groups
SCR_AIClearActionsForDefendActivity.c
Generated by
1.17.0