Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_DefendWaypoint.c
Go to the documentation of this file.
4
5//----------------------------------------------------------------------------------------
7{
8 [Attribute("0", UIWidgets.Object, "Fast init - units will be spawned on their defensive locations")];
9 protected bool m_bFastInit;
10
11 [Attribute("", UIWidgets.Object, "Defend presets")];
12 protected ref array<ref SCR_DefendWaypointPreset> m_aDefendPresets;
13
15
16 //----------------------------------------------------------------------------------------
18 {
19 return m_bFastInit;
20 }
21
22 //----------------------------------------------------------------------------------------
23 void SetFastInit(bool isFastInit)
24 {
25 m_bFastInit = isFastInit;
26 }
27
28 //----------------------------------------------------------------------------------------
30 {
31 return new SCR_AIDefendWaypointState(groupUtilityComp, this);
32 }
33
34 //------------------------------------------------------------------------------------------------
37 {
39 m_aDefendPresets.Clear();
40 }
41
42 //----------------------------------------------------------------------------------------
49
50 //----------------------------------------------------------------------------------------
55
56 //----------------------------------------------------------------------------------------
57 bool SetCurrentDefendPreset(int newDefendPresetIndex)
58 {
59 if (m_aDefendPresets.IsIndexValid(newDefendPresetIndex))
60 {
61 m_iCurrentDefendPreset = newDefendPresetIndex;
62 return true;
63 }
64 return false;
65 }
66
67 //----------------------------------------------------------------------------------------
69 {
70 if (!m_aDefendPresets.Contains(preset))
71 {
72 m_aDefendPresets.Insert(preset);
73 return true;
74 }
75 return false;
76 }
77
78 //----------------------------------------------------------------------------------------
79 bool RemoveDefendPreset(int presetIndex)
80 {
81 if (m_aDefendPresets.IsIndexValid(presetIndex))
82 {
83 m_aDefendPresets.Remove(presetIndex);
84 return true;
85 }
86 return false;
87 }
88};
89
90//----------------------------------------------------------------------------------------
92{
93 override void OnDeselected()
94 {
95 super.OnDeselected();
96
97 SCR_AIGroup myGroup = m_Utility.m_Owner;
98
99 if (!myGroup)
100 return;
101
102 array<AIAgent> groupMembers = {};
103 myGroup.GetAgents(groupMembers);
104
105 AICommunicationComponent mailbox = myGroup.GetCommunicationComponent();
106 if (!mailbox)
107 return;
108
109 foreach (AIAgent receiver: groupMembers)
110 {
111 if (receiver)
112 {
113 SCR_ChimeraAIAgent chimeraAgent = SCR_ChimeraAIAgent.Cast(receiver);
114 if (!chimeraAgent)
115 continue;
116
117 SCR_AIInfoComponent aiInfo = chimeraAgent.m_InfoComponent;
118 if (!aiInfo || !aiInfo.HasUnitState(EUnitState.IN_TURRET))
119 continue;
120
121 ChimeraCharacter character = ChimeraCharacter.Cast(receiver.GetControlledEntity());
122 if (character && character.IsInVehicle())
123 {
125
126 msg2.SetText("Waypoint was deselected, leave vehicle");
127 msg2.SetReceiver(receiver);
128 mailbox.RequestBroadcast(msg2, receiver);
129 }
130 }
131 }
132 myGroup.ReleaseCompartments();
133 }
134};
void ReleaseCompartments()
bool HasUnitState(EUnitState state)
SCR_AIGroupUtilityComponent m_Utility
void SCR_AIWaypointState(notnull SCR_AIGroupUtilityComponent utility, SCR_AIWaypoint waypoint)
bool AddDefendPreset(SCR_DefendWaypointPreset preset)
bool SetCurrentDefendPreset(int newDefendPresetIndex)
void ClearDefendPresets()
Clears Defend Presets.
void SetFastInit(bool isFastInit)
ref array< ref SCR_DefendWaypointPreset > m_aDefendPresets
SCR_DefendWaypointPreset GetCurrentDefendPreset()
override SCR_AIWaypointState CreateWaypointState(SCR_AIGroupUtilityComponent groupUtilityComp)
bool RemoveDefendPreset(int presetIndex)
SCR_FieldOfViewSettings Attribute