Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
SCR_ScenarioFrameworkSlotTaskAI.c
Go to the documentation of this file.
1 [EntityEditorProps(category: "GameScripted/ScenarioFramework/Slot", description: "")]
3 {
4 }
5 
6 class SCR_ScenarioFrameworkSlotTaskAI : SCR_ScenarioFrameworkSlotTask
7 {
8  [Attribute(desc: "Waypoint Groups if applicable", category: "Waypoints")]
9  ref SCR_ScenarioFrameworkWaypointSet m_WaypointSet;
10 
11  [Attribute(desc: "(OBSOLETE - use Waypoint Set instead) Waypoint Groups if applicable", category: "Waypoints")]
12  ref array<ref SCR_WaypointSet> m_aWaypointGroupNames;
13 
14  [Attribute(desc: "Spawn AI on the first WP Slot", defvalue: "1", category: "Waypoints")]
15  bool m_bSpawnAIOnWPPos;
16 
17  [Attribute(desc: "Default waypoint if any WP group is defined", "{93291E72AC23930F}Prefabs/AI/Waypoints/AIWaypoint_Defend.et", category: "Waypoints")]
18  ResourceName m_sWPToSpawn;
19 
20  [Attribute(defvalue: "0", desc: "Balancing group sizes based on number of players", category: "Balance")]
22 
23  [Attribute(defvalue: "1", desc: "Least amount of AIs in the group after balancing occurs. Will not exceed maximum number of units defined in the group prefab.", category: "Balance")]
25 
26  [Attribute(defvalue: SCR_EAIGroupFormation.Wedge.ToString(), UIWidgets.ComboBox, "AI group formation", "", ParamEnumArray.FromEnum(SCR_EAIGroupFormation), category: "Common")]
28 
29  //[Attribute(defvalue: ECharacterStance.STAND.ToString(), UIWidgets.ComboBox, "AI character stance", "", ParamEnumArray.FromEnum(ECharacterStance), category: "Common")]
30  //ECharacterStance m_eAICharacterStance;
31 
32  //[Attribute(defvalue: EMovementType.WALK.ToString(), UIWidgets.ComboBox, "AI group formation", "", ParamEnumArray.FromEnum(EMovementType), category: "Common")]
33  //EMovementType m_eAIMovementType;
34 
35  [Attribute(defvalue: EAISkill.REGULAR.ToString(), UIWidgets.ComboBox, "AI skill in combat", "", ParamEnumArray.FromEnum(EAISkill), category: "Common")]
36  EAISkill m_eAISkill;
37 
38  [Attribute(defvalue: EAICombatType.NORMAL.ToString(), UIWidgets.ComboBox, "AI combat type", "", ParamEnumArray.FromEnum(EAICombatType), category: "Common")]
39  EAICombatType m_eAICombatType;
40 
41  [Attribute(defvalue: "1", uiwidget: UIWidgets.EditBox, desc: "Sets perception ability. Affects speed at which perception detects targets. Bigger value means proportionally faster detection.", params: "0 100 0.001", category: "Common")]
43 
44  [Attribute(defvalue: "{000CD338713F2B5A}Prefabs/AI/Groups/Group_Base.et", category: "Common")]
45  ResourceName m_sGroupPrefab;
46 
47  ref array<AIWaypoint> m_aWaypoints = {};
49  ref array<ResourceName> m_aAIPrefabsForRemoval = {};
50 
51  ref array<SCR_ScenarioFrameworkSlotWaypoint> m_aSlotWaypoints = {};
53 
54  // Temporary solution as we don't know if invoker or a different method will initialize waypoints
56 
57  //------------------------------------------------------------------------------------------------
59  void SetAIPrefabsForRemoval(array<ResourceName> arrayForRemoval)
60  {
61  m_aAIPrefabsForRemoval = arrayForRemoval;
62  }
63 
64  //------------------------------------------------------------------------------------------------
66  array<ResourceName> GetAIPrefabsForRemoval()
67  {
69  }
70 
71  //------------------------------------------------------------------------------------------------
73  override void RestoreToDefault(bool includeChildren = false, bool reinitAfterRestoration = false)
74  {
75  m_aWaypoints.Clear();
76  m_AIGroup = null;
77  m_aAIPrefabsForRemoval.Clear();
78  m_aSlotWaypoints.Clear();
81 
82  super.RestoreToDefault(includeChildren, reinitAfterRestoration);
83  }
84 
85  //------------------------------------------------------------------------------------------------
88  {
90  if (!m_Entity && !SCR_StringHelper.IsEmptyOrWhiteSpace(m_sObjectToSpawn))
91  {
93  return;
94  }
95 
97  return;
98 
99  m_bInitiated = false;
101  if (m_Entity)
102  m_vPosition = m_Entity.GetOrigin();
103 
104  if (m_AIGroup)
105  m_AIGroup.GetOnAgentRemoved().Remove(DecreaseAIGroupMemberCount);
106 
107  m_AIGroup = null;
108 
109  foreach (IEntity entity : m_aSpawnedEntities)
110  {
111  if (!entity)
112  continue;
113 
114  m_vPosition = entity.GetOrigin();
115  SCR_EntityHelper.DeleteEntityAndChildren(entity);
116  }
117 
118  m_aSpawnedEntities.Clear();
119  m_aWaypoints.Clear();
120  }
121 
122  //------------------------------------------------------------------------------------------------
123  override void Init(SCR_ScenarioFrameworkArea area = null, SCR_ScenarioFrameworkEActivationType activation = SCR_ScenarioFrameworkEActivationType.SAME_AS_PARENT)
124  {
125  if (m_bIsTerminated)
126  {
127  if (m_ParentLayer)
128  m_ParentLayer.CheckAllChildrenSpawned(this);
129 
130  return;
131  }
132 
134  m_bWaypointsInitialized = false;
135 
136  if (!m_bDynamicallyDespawned && activation != m_eActivationType)
137  {
138  if (m_ParentLayer)
139  m_ParentLayer.CheckAllChildrenSpawned(this);
140  }
141 
143  {
144  //If just one condition is false, we don't continue and interrupt the init
145  if (!activationCondition.Init(GetOwner()))
146  {
147  if (m_ParentLayer)
148  m_ParentLayer.CheckAllChildrenSpawned(this);
149 
150  return;
151  }
152  }
153 
154  SCR_AIGroup.IgnoreSpawning(true);
155  if (m_eActivationType == SCR_ScenarioFrameworkEActivationType.SAME_AS_PARENT && m_WaypointSet && !m_WaypointSet.m_aLayerName.IsEmpty())
156  {
157  InitWaypoints();
158  super.Init(area, activation);
159  }
160  else
161  {
162  super.Init(area, activation);
163  }
164  }
165 
166  //------------------------------------------------------------------------------------------------
169  {
170  m_bInitiated = true;
171 
172  if (m_Entity)
173  ActivateAI();
174  else
176 
178  }
179 
180  //------------------------------------------------------------------------------------------------
183  {
184  foreach (SCR_ScenarioFrameworkPlugin plugin : m_aPlugins)
185  {
186  plugin.Init(this);
187  }
188 
189  foreach (SCR_ScenarioFrameworkActionBase activationAction : m_aActivationActions)
190  {
191  activationAction.Init(GetOwner());
192  }
193 
194  if (m_ParentLayer)
195  m_ParentLayer.CheckAllChildrenSpawned(this);
196 
198  SetWaypointToAI(this);
199  }
200 
201  //------------------------------------------------------------------------------------------------
203  void ActivateAI()
204  {
205  bool groupWasNull;
207  if (!m_AIGroup)
208  groupWasNull = true;
209 
210  if (!m_AIGroup && !CreateAIGroup())
211  {
213  return;
214  }
215 
216  if (!m_aAIPrefabsForRemoval.IsEmpty())
217  {
218  foreach (ResourceName prefabToRemove : m_aAIPrefabsForRemoval)
219  {
220  for (int i = m_AIGroup.m_aUnitPrefabSlots.Count() - 1; i >= 0; i--)
221  {
222  if (m_AIGroup.m_aUnitPrefabSlots[i] != prefabToRemove)
223  continue;
224 
225  m_AIGroup.m_aUnitPrefabSlots.Remove(i);
226  break;
227  }
228  }
229  }
230  else if (m_bBalanceOnPlayersCount)
231  {
232  int iMaxUnitsInGroup = m_AIGroup.m_aUnitPrefabSlots.Count();
233  float iUnitsToSpawn = Math.Map(GetPlayersCount(), 1, GetMaxPlayersForGameMode(), Math.RandomInt(1, 3), iMaxUnitsInGroup);
234 
235  if (iUnitsToSpawn < m_iMinUnitsInGroup)
236  iUnitsToSpawn = m_iMinUnitsInGroup;
237 
238  m_AIGroup.SetMaxUnitsToSpawn(iUnitsToSpawn);
239  }
240 
241  m_AIGroup.GetOnAgentRemoved().Insert(DecreaseAIGroupMemberCount);
242 
243  if (groupWasNull)
244  {
245  m_AIGroup.SetNumberOfMembersToSpawn(1);
246  OnAgentAdded(null);
247  return;
248  }
249 
250  m_AIGroup.SetMemberSpawnDelay(200);
251  m_AIGroup.SpawnUnits();
252  m_AIGroup.GetOnAgentAdded().Insert(OnAgentAdded);
253  }
254 
255  //------------------------------------------------------------------------------------------------
257  void OnAgentAdded(AIAgent child)
258  {
259  if (m_AIGroup.GetNumberOfMembersToSpawn() != m_AIGroup.GetAgentsCount())
260  return;
261 
262  m_AIGroup.GetOnAgentAdded().Remove(OnAgentAdded);
263 
265 
266  if (m_aSlotWaypoints.IsEmpty())
267  SetWaypointToAI(this);
268 
270  }
271 
272  //------------------------------------------------------------------------------------------------
274  protected void InitGroupComponents()
275  {
276  array<AIAgent> agents = {};
277  m_AIGroup.GetAgents(agents);
278 
279  AIFormationComponent formComp = AIFormationComponent.Cast(m_AIGroup.FindComponent(AIFormationComponent));
280  if (formComp && m_vPosition != vector.Zero)
281  {
282  formComp.SetFormation(SCR_Enum.GetEnumName(SCR_EAIGroupFormation, m_eAIGroupFormation));
283 
284  AIFormationDefinition formDef = formComp.GetFormation();
285  if (formDef)
286  {
287  foreach (int i, AIAgent agent : agents)
288  {
289  IEntity agentEntity = agent.GetControlledEntity();
290  if (!agentEntity)
291  continue;
292 
293  agentEntity.SetOrigin(m_vPosition + formDef.GetOffsetPosition(i));
294 
295  SCR_AICombatComponent combatComponent = SCR_AICombatComponent.Cast(agentEntity.FindComponent(SCR_AICombatComponent));
296  if (combatComponent)
297  {
298  combatComponent.SetAISkill(m_eAISkill);
299  combatComponent.SetCombatType(m_eAICombatType);
300  combatComponent.SetPerceptionFactor(m_fPerceptionFactor);
301  }
302  }
303  }
304  }
305  else
306  {
307  foreach (AIAgent agent : agents)
308  {
309  IEntity agentEntity = agent.GetControlledEntity();
310  if (!agentEntity)
311  continue;
312 
313  SCR_AICombatComponent combatComponent = SCR_AICombatComponent.Cast(agentEntity.FindComponent(SCR_AICombatComponent));
314  if (combatComponent)
315  {
316  combatComponent.SetAISkill(m_eAISkill);
317  combatComponent.SetCombatType(m_eAICombatType);
318  combatComponent.SetPerceptionFactor(m_fPerceptionFactor);
319  }
320  }
321  }
322  }
323 
324  //------------------------------------------------------------------------------------------------
326  protected void InitWaypoints()
327  {
328  array<string> WaypointSetLayers = {};
329  WaypointSetLayers = m_WaypointSet.m_aLayerName;
330  array<SCR_ScenarioFrameworkLayerBase> layerBases = {};
331  array<SCR_ScenarioFrameworkLayerBase> layerChildren = {};
334 
335  foreach (string waypointSetLayer : WaypointSetLayers)
336  {
337  IEntity layerEntity = GetGame().GetWorld().FindEntityByName(waypointSetLayer);
338  if (!layerEntity)
339  continue;
340 
341  layerBase = SCR_ScenarioFrameworkLayerBase.Cast(layerEntity.FindComponent(SCR_ScenarioFrameworkLayerBase));
342  if (layerBase && !SCR_ScenarioFrameworkSlotWaypoint.Cast(layerBase))
343  {
344  if (layerBases.Contains(layerBase))
345  continue;
346 
347  layerChildren = layerBase.GetChildrenEntities();
348  foreach (SCR_ScenarioFrameworkLayerBase child : layerChildren)
349  {
350  slotWaypoint = SCR_ScenarioFrameworkSlotWaypoint.Cast(child);
351  if (slotWaypoint && !m_aSlotWaypoints.Contains(slotWaypoint))
352  m_aSlotWaypoints.Insert(slotWaypoint);
353  }
354  }
355  else
356  {
357  slotWaypoint = SCR_ScenarioFrameworkSlotWaypoint.Cast(layerEntity.FindComponent(SCR_ScenarioFrameworkSlotWaypoint));
358  if (slotWaypoint && !m_aSlotWaypoints.Contains(slotWaypoint))
359  m_aSlotWaypoints.Insert(slotWaypoint);
360  }
361  }
362 
363  int waypointCount = m_aSlotWaypoints.Count();
365  {
366  if (waypoint.GetIsInitiated())
368  else
369  waypoint.GetOnAllChildrenSpawned().Insert(CheckWaypointsAfterInit);
370 
371  if (waypointCount == m_iCurrentlySpawnedWaypoints)
373  }
374  }
375 
376  //------------------------------------------------------------------------------------------------
379  {
381  if (slotWaypoint)
382  {
383  SCR_ScenarioFrameworkWaypointCycle cycleWP = SCR_ScenarioFrameworkWaypointCycle.Cast(slotWaypoint.m_Waypoint);
384  if (cycleWP)
385  {
386  if (!cycleWP.m_bInitiated)
387  {
388  cycleWP.GetOnAllWaypointsSpawned().Insert(CheckWaypointsAfterInit);
389  return;
390  }
391  else if (cycleWP.m_OnAllWaypointsSpawned)
392  {
393  cycleWP.GetOnAllWaypointsSpawned().Remove(CheckWaypointsAfterInit);
394  }
395  }
396  }
397 
400  ProcessWaypoints(this);
401 
402  layer.GetOnAllChildrenSpawned().Remove(CheckWaypointsAfterInit);
403  }
404 
405  //------------------------------------------------------------------------------------------------
408  {
409  if (m_bInitiated)
410  SetWaypointToAI(this);
411  else
413  }
414 
415  //------------------------------------------------------------------------------------------------
418  {
421 
422  if (!m_Entity)
423  {
424  Print(string.Format("ScenarioFramework: Trying to add waypoints to non existing entity! Did you select the object to spawn for %1?", GetOwner().GetName()), LogLevel.ERROR);
425  SCR_AIGroup.IgnoreSpawning(false);
426  return;
427  }
428 
429  if (m_aSlotWaypoints.IsEmpty())
430  {
432  }
433  else
434  {
435  AIWaypoint waypoint;
436  foreach (SCR_ScenarioFrameworkSlotWaypoint waypointSlot : m_aSlotWaypoints)
437  {
438  waypoint = AIWaypoint.Cast(waypointSlot.GetSpawnedEntity());
439  if (waypoint)
440  m_aWaypoints.Insert(waypoint);
441  }
442  }
443 
444  if (!m_AIGroup)
446 
447  if (!m_AIGroup)
448  return;
449 
450  m_aWaypoints.RemoveItemOrdered(null);
451 
452  foreach (AIWaypoint waypoint : m_aWaypoints)
453  {
454  m_AIGroup.AddWaypoint(waypoint);
455  }
456 
457  if (m_bSpawnAIOnWPPos && !m_aWaypoints.IsEmpty())
458  m_Entity.SetOrigin(m_aWaypoints[0].GetOrigin());
459  }
460 
461  //------------------------------------------------------------------------------------------------
463  protected AIWaypoint CreateDefaultWaypoint()
464  {
465  if (!m_Entity)
466  return null;
467 
468  EntitySpawnParams spawnParams = new EntitySpawnParams();
469  spawnParams.TransformMode = ETransformMode.WORLD;
470  spawnParams.Transform[3] = m_Entity.GetOrigin();
471 
472  Resource resWP = Resource.Load(m_sWPToSpawn);
473  if (!resWP || !resWP.IsValid())
474  return null;
475 
476  AIWaypoint waypoint = AIWaypoint.Cast(GetGame().SpawnEntityPrefab(resWP, GetGame().GetWorld(), spawnParams));
477  if (!waypoint)
478  return null;
479 
480  m_aWaypoints.Insert(waypoint);
481  return waypoint;
482  }
483 
484  //------------------------------------------------------------------------------------------------
488  void DecreaseAIGroupMemberCount(SCR_AIGroup group, AIAgent agent)
489  {
490  if (group.GetAgentsCount() == 0)
491  SetIsTerminated(true);
492 
493  IEntity agentEntity = agent.GetControlledEntity();
494  if (!agentEntity)
495  {
496  Print("ScenarioFramework: Decreasing AI member count failed due to not getting AI entity!", LogLevel.ERROR);
497  return;
498  }
499 
500  EntityPrefabData prefabData = agentEntity.GetPrefabData();
501  if (!prefabData)
502  {
503  Print("ScenarioFramework: Decreasing AI member count failed due to not getting entity prefab data", LogLevel.ERROR);
504  return;
505  }
506 
507  ResourceName resource = prefabData.GetPrefabName();
508  if (resource)
509  m_aAIPrefabsForRemoval.Insert(resource);
510  }
511 
512  //------------------------------------------------------------------------------------------------
514  protected bool CreateAIGroup()
515  {
516  EntitySpawnParams paramsPatrol = new EntitySpawnParams();
517  paramsPatrol.TransformMode = ETransformMode.WORLD;
518 
519  paramsPatrol.Transform[3] = m_Entity.GetOrigin();
520  Resource groupResource = Resource.Load(m_sGroupPrefab);
521  if (!groupResource.IsValid())
522  return false;
523 
524  m_AIGroup = SCR_AIGroup.Cast(GetGame().SpawnEntityPrefab(groupResource, GetGame().GetWorld(), paramsPatrol));
525  if (!m_AIGroup)
526  return false;
527 
528  FactionAffiliationComponent facComp = FactionAffiliationComponent.Cast(m_Entity.FindComponent(FactionAffiliationComponent));
529  if (!facComp)
530  return false;
531 
532  m_AIGroup.SetFaction(facComp.GetAffiliatedFaction());
533  m_AIGroup.AddAIEntityToGroup(m_Entity);
534 
535  if (m_vPosition != vector.Zero)
536  m_Entity.SetOrigin(m_vPosition);
537 
538  return true;
539  }
540 }
m_eAICombatType
EAICombatType m_eAICombatType
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:39
GetAIPrefabsForRemoval
array< ResourceName > GetAIPrefabsForRemoval()
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:66
m_aPlugins
protected ref array< ref SCR_ScenarioFrameworkPlugin > m_aPlugins
Definition: SCR_ScenarioFrameworkLayerBase.c:55
ProcessWaypoints
protected void ProcessWaypoints(SCR_ScenarioFrameworkLayerBase layer)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:407
SCR_ScenarioFrameworkActivationConditionBase
Definition: SCR_ScenarioFrameworkSlotBase.c:677
m_eActivationType
protected SCR_ScenarioFrameworkEActivationType m_eActivationType
Definition: SCR_ScenarioFrameworkLayerBase.c:43
SCR_EntityHelper
Definition: SCR_EntityHelper.c:1
SCR_Enum
Definition: SCR_Enum.c:1
GetName
string GetName()
Definition: SCR_ScenarioFrameworkLayerBase.c:85
m_bInitiated
protected bool m_bInitiated
Definition: SCR_ScenarioFrameworkLayerBase.c:72
category
Prefabs AI Waypoints AIWaypoint_Defend category
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:18
EntityEditorProps
enum EQueryType EntityEditorProps(category:"GameScripted/Sound", description:"THIS IS THE SCRIPT DESCRIPTION.", color:"0 0 255 255")
Definition: SCR_AmbientSoundsComponent.c:12
m_iMinUnitsInGroup
int m_iMinUnitsInGroup
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:24
RestoreToDefault
override void RestoreToDefault(bool includeChildren=false, bool reinitAfterRestoration=false)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:73
m_sGroupPrefab
ResourceName m_sGroupPrefab
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:45
SCR_ScenarioFrameworkSlotTaskAIClass
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:2
SCR_ScenarioFrameworkWaypointSet
Definition: SCR_ScenarioFrameworkSlotAI.c:566
GetOnAllChildrenSpawned
ScriptInvokerScenarioFrameworkLayer GetOnAllChildrenSpawned()
Definition: SCR_ScenarioFrameworkLayerBase.c:450
GetGame
ArmaReforgerScripted GetGame()
Definition: game.c:1424
m_eAISkill
EAISkill m_eAISkill
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:36
m_aActivationActions
protected ref array< ref SCR_ScenarioFrameworkActionBase > m_aActivationActions
Definition: SCR_ScenarioFrameworkLayerBase.c:49
SCR_StringHelper
Definition: SCR_StringHelper.c:1
InitWaypoints
protected void InitWaypoints()
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:326
m_aAIPrefabsForRemoval
ref array< ResourceName > m_aAIPrefabsForRemoval
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:49
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition: SCR_RespawnBriefingComponent.c:17
CheckWaypointsAfterInit
protected void CheckWaypointsAfterInit(SCR_ScenarioFrameworkLayerBase layer)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:378
m_Entity
enum EAITargetInfoCategory m_Entity
m_bBalanceOnPlayersCount
bool m_bBalanceOnPlayersCount
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:21
m_bExcludeFromDynamicDespawn
protected bool m_bExcludeFromDynamicDespawn
Definition: SCR_ScenarioFrameworkLayerBase.c:52
SetIsTerminated
void SetIsTerminated(bool state)
Definition: SCR_ScenarioFrameworkLayerBase.c:106
m_AIGroup
SCR_AIGroup m_AIGroup
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:48
CreateDefaultWaypoint
protected AIWaypoint CreateDefaultWaypoint()
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:463
SCR_ScenarioFrameworkSlotWaypoint
void SCR_ScenarioFrameworkSlotWaypoint(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition: SCR_ScenarioFrameworkSlotWaypoint.c:142
GetMaxPlayersForGameMode
int GetMaxPlayersForGameMode(FactionKey factionName="")
Definition: SCR_ScenarioFrameworkLayerBase.c:166
m_aWaypoints
ref array< AIWaypoint > m_aWaypoints
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:47
GetOrigin
vector GetOrigin()
Definition: SCR_AIUtilityComponent.c:279
SCR_ScenarioFrameworkWaypointCycle
Definition: SCR_ScenarioFrameworkWaypointCycle.c:3
SetAIPrefabsForRemoval
void SetAIPrefabsForRemoval(array< ResourceName > arrayForRemoval)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:59
SCR_EAIGroupFormation
SCR_EAIGroupFormation
Definition: SCR_AIGroup.c:2337
DecreaseAIGroupMemberCount
void DecreaseAIGroupMemberCount(SCR_AIGroup group, AIAgent agent)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:488
OnAgentAdded
void OnAgentAdded(AIAgent child)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:257
m_bDynamicallyDespawned
protected bool m_bDynamicallyDespawned
Definition: SCR_ScenarioFrameworkLayerBase.c:74
SCR_ScenarioFrameworkArea
Definition: SCR_ScenarioFrameworkArea.c:24
AfterAllAgentsSpawned
void AfterAllAgentsSpawned()
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:182
m_bWaypointsInitialized
bool m_bWaypointsInitialized
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:55
m_iCurrentlySpawnedWaypoints
int m_iCurrentlySpawnedWaypoints
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:52
m_eAIGroupFormation
SCR_EAIGroupFormation m_eAIGroupFormation
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:27
GetPlayersCount
int GetPlayersCount()
Definition: SCR_FiringRangeScoringComponent.c:114
SCR_ScenarioFrameworkPlugin
Definition: SCR_ScenarioFrameworkLayerBase.c:888
Init
override void Init(SCR_ScenarioFrameworkArea area=null, SCR_ScenarioFrameworkEActivationType activation=SCR_ScenarioFrameworkEActivationType.SAME_AS_PARENT)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:123
GetOwner
IEntity GetOwner()
Owner entity of the fuel tank.
Definition: SCR_FuelNode.c:128
Attribute
SCR_ScenarioFrameworkSlotTaskAIClass SCR_ScenarioFrameworkSlotTaskClass Attribute(desc:"Waypoint Groups if applicable", category:"Waypoints")
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:8
m_ParentLayer
protected SCR_ScenarioFrameworkLayerBase m_ParentLayer
Definition: SCR_ScenarioFrameworkLayerBase.c:65
m_bIsTerminated
protected bool m_bIsTerminated
Definition: SCR_ScenarioFrameworkLayerBase.c:75
SetWaypointToAI
protected void SetWaypointToAI(SCR_ScenarioFrameworkLayerBase layer)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:417
SCR_AIGroup
Definition: SCR_AIGroup.c:68
m_aSlotWaypoints
ref array< SCR_ScenarioFrameworkSlotWaypoint > m_aSlotWaypoints
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:51
SCR_ScenarioFrameworkLayerBase
void SCR_ScenarioFrameworkLayerBase(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition: SCR_ScenarioFrameworkLayerBase.c:875
InitGroupComponents
protected void InitGroupComponents()
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:274
params
Configs ServerBrowser KickDialogs params
Definition: SCR_NotificationSenderComponent.c:24
m_vPosition
vector m_vPosition
Definition: SCR_AITalkRequest.c:23
m_aSpawnedEntities
protected ref array< IEntity > m_aSpawnedEntities
Definition: SCR_ScenarioFrameworkLayerBase.c:62
DynamicDespawn
override void DynamicDespawn(SCR_ScenarioFrameworkLayerBase layer)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:87
m_fPerceptionFactor
float m_fPerceptionFactor
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:42
AfterAllChildrenSpawned
override void AfterAllChildrenSpawned(SCR_ScenarioFrameworkLayerBase layer)
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:168
CreateAIGroup
protected bool CreateAIGroup()
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:514
SCR_ScenarioFrameworkSlotTaskClass
Definition: SCR_ScenarioFrameworkSlotTask.c:2
m_aActivationConditions
protected ref array< ref SCR_ScenarioFrameworkActivationConditionBase > m_aActivationConditions
Definition: SCR_ScenarioFrameworkLayerBase.c:46
ActivateAI
void ActivateAI()
Definition: SCR_ScenarioFrameworkSlotTaskAI.c:203