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_AIGetSuppressionPosition.c
Go to the documentation of this file.
1
class
SCR_AIGetSuppressionPosition
:
AITaskScripted
2
{
3
static
const
string
PORT_DURATION =
"DurationIn"
;
4
static
const
string
PORT_SHOOT_START =
"ShootStartIn"
;
5
static
const
string
PORT_SHOOT_END =
"ShootEndIn"
;
6
7
static
const
string
PORT_AIM_POSITION =
"AimPositionOut"
;
8
static
const
string
PORT_PROGRESS =
"ProgressOut"
;
9
static
const
string
PORT_IDLE_TIME =
"IdleTimeSOut"
;
10
11
protected
float
m_fFireDuration
;
12
protected
vector
m_vStartPos
,
m_vEndPos
;
13
14
protected
SCR_AICombatComponent
m_CombatComponent
;
15
16
#ifdef WORKBENCH
17
//Diagnostic visualization
18
ref array<ref Shape> m_aDbgShapes = {};
19
#endif
20
21
//------------------------------------------------------------------------------------------------
22
override
void
OnInit
(AIAgent owner)
23
{
24
m_CombatComponent
= SCR_AICombatComponent.Cast(owner.FindComponent(SCR_AICombatComponent));
25
}
26
27
//------------------------------------------------------------------------------------------------------------------------------------
28
override
ENodeResult
EOnTaskSimulate
(AIAgent owner,
float
dt)
29
{
30
float
duration;
31
vector
startPos, endPos;
32
33
if
(!
GetVariableIn
(PORT_DURATION, duration) || !
GetVariableIn
(PORT_SHOOT_START, startPos) || !
GetVariableIn
(PORT_SHOOT_END, endPos))
34
return
ENodeResult
.FAIL;
35
36
// Start of new line
37
if
(
m_vStartPos
!= startPos ||
m_vEndPos
!= endPos)
38
{
39
m_vStartPos
= startPos;
40
m_vEndPos
= endPos;
41
m_fFireDuration
= 0;
42
}
43
// Continuation of same line
44
else
45
m_fFireDuration
+= dt;
46
47
float
progress =
Math
.Clamp(
m_fFireDuration
/ duration, 0, 1);
48
vector
aimPosition = startPos + ((endPos - startPos) * progress);
49
50
SetVariableOut
(PORT_AIM_POSITION, aimPosition);
51
SetVariableOut
(PORT_PROGRESS, progress);
52
53
#ifdef WORKBENCH
54
m_aDbgShapes.Clear();
55
if
(
DiagMenu
.GetBool(
SCR_DebugMenuID
.DEBUGUI_AI_SHOW_SUPPRESS_DEBUG))
56
{
57
m_aDbgShapes.Insert(
Shape
.CreateSphere(
Color
.DARK_GREEN,
ShapeFlags
.TRANSP |
ShapeFlags
.NOOUTLINE, aimPosition, 0.1));
58
m_aDbgShapes.Insert(
Shape
.CreateSphere(
Color
.DARK_RED,
ShapeFlags
.TRANSP |
ShapeFlags
.NOOUTLINE,
m_vStartPos
, 0.1));
59
m_aDbgShapes.Insert(
Shape
.CreateSphere(
Color
.DARK_YELLOW,
ShapeFlags
.TRANSP |
ShapeFlags
.NOOUTLINE,
m_vEndPos
, 0.1));
60
m_aDbgShapes.Insert(
Shape
.CreateArrow(
m_vStartPos
,
m_vEndPos
, 1,
Color
.DARK_CYAN,
ShapeFlags
.TRANSP |
ShapeFlags
.NOOUTLINE));
61
}
62
#endif
63
64
return
ENodeResult
.SUCCESS;
65
}
66
67
//------------------------------------------------------------------------------------------------------------------------------------
68
protected
static
ref
TStringArray
s_aVarsIn
= {
69
PORT_DURATION,
70
PORT_SHOOT_START,
71
PORT_SHOOT_END
72
};
73
74
//------------------------------------------------------------------------------------------------------------------------------------
75
protected
static
ref
TStringArray
s_aVarsOut
= {
76
PORT_AIM_POSITION,
77
PORT_PROGRESS,
78
PORT_IDLE_TIME
79
};
80
81
//------------------------------------------------------------------------------------------------------------------------------------
82
override
array<string>
GetVariablesIn
()
83
{
84
return
s_aVarsIn
;
85
}
86
87
//------------------------------------------------------------------------------------------------------------------------------------
88
override
array<string>
GetVariablesOut
()
89
{
90
return
s_aVarsOut
;
91
}
92
93
//------------------------------------------------------------------------------------------------------------------------------------
94
protected
static
override
string
GetOnHoverDescription
()
95
{
96
return
"Calculate position to shoot at during suppressive fire"
;
97
}
98
99
//------------------------------------------------------------------------------------------------------------------------------------
100
static
override
bool
VisibleInPalette
()
101
{
102
return
true
;
103
}
104
};
105
SCR_DebugMenuID
SCR_DebugMenuID
This enum contains all IDs for DiagMenu entries added in script.
Definition
DebugMenuID.c:4
AITaskScripted
Definition
AITaskScripted.c:13
Color
Definition
Color.c:13
DiagMenu
Diagnostic and developer menu system.
Definition
DiagMenu.c:18
Math
Definition
Math.c:13
Node::SetVariableOut
proto void SetVariableOut(string name, void val)
Node::GetVariableIn
proto bool GetVariableIn(string name, out void val)
SCR_AIGetSuppressionPosition
Definition
SCR_AIGetSuppressionPosition.c:2
SCR_AIGetSuppressionPosition::m_fFireDuration
float m_fFireDuration
Definition
SCR_AIGetSuppressionPosition.c:11
SCR_AIGetSuppressionPosition::GetVariablesOut
override array< string > GetVariablesOut()
Definition
SCR_AIGetSuppressionPosition.c:88
SCR_AIGetSuppressionPosition::m_vEndPos
vector m_vEndPos
Definition
SCR_AIGetSuppressionPosition.c:12
SCR_AIGetSuppressionPosition::s_aVarsOut
static ref TStringArray s_aVarsOut
Definition
SCR_AIGetSuppressionPosition.c:75
SCR_AIGetSuppressionPosition::GetVariablesIn
override array< string > GetVariablesIn()
Definition
SCR_AIGetSuppressionPosition.c:82
SCR_AIGetSuppressionPosition::m_vStartPos
vector m_vStartPos
Definition
SCR_AIGetSuppressionPosition.c:12
SCR_AIGetSuppressionPosition::m_CombatComponent
SCR_AICombatComponent m_CombatComponent
Definition
SCR_AIGetSuppressionPosition.c:14
SCR_AIGetSuppressionPosition::VisibleInPalette
static override bool VisibleInPalette()
Definition
SCR_AIGetSuppressionPosition.c:100
SCR_AIGetSuppressionPosition::s_aVarsIn
static ref TStringArray s_aVarsIn
Definition
SCR_AIGetSuppressionPosition.c:68
SCR_AIGetSuppressionPosition::EOnTaskSimulate
override ENodeResult EOnTaskSimulate(AIAgent owner, float dt)
Definition
SCR_AIGetSuppressionPosition.c:28
SCR_AIGetSuppressionPosition::OnInit
override void OnInit(AIAgent owner)
Definition
SCR_AIGetSuppressionPosition.c:22
SCR_AIGetSuppressionPosition::GetOnHoverDescription
static override string GetOnHoverDescription()
Definition
SCR_AIGetSuppressionPosition.c:94
Shape
Instance of created debug visualizer.
Definition
Shape.c:14
vector
Definition
vector.c:13
ENodeResult
ENodeResult
Definition
ENodeResult.c:13
ShapeFlags
ShapeFlags
Definition
ShapeFlags.c:13
TStringArray
array< string > TStringArray
Definition
Types.c:385
scripts
Game
AI
ScriptedNodes
Aiming
SCR_AIGetSuppressionPosition.c
Generated by
1.17.0