Arma Reforger Script API
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
SCR_AIGroupPerception Interface Reference
Inheritance diagram for SCR_AIGroupPerception:
[legend]

Public Member Functions

void SCR_AIGroupPerception (SCR_AIGroupUtilityComponent utility, SCR_AIGroup group)
 
ScriptInvokerBase< SCR_AIOnTargetClusterStateDeleted > GetOnTargetClusterDeleted ()
 
ScriptInvokerBase< SCR_AIGroupPerceptionOnEnemyDetected > GetOnEnemyDetected ()
 
ScriptInvokerBase< SCR_AIGroupPerceptionOnEnemyDetectedFiltered > GetOnEnemyDetectedFiltered ()
 This is similar to OnEnemyDetected event, but it will be invoked only once per group perception update, You should use this if you don't need every detected target, but need to know when anything has been detected.
 
ScriptInvokerBase< SCR_AIGroupPerceptionOnNoEnemy > GetOnNoEnemy ()
 
SCR_AITargetInfo AddOrUpdateTarget (notnull BaseTarget target, out bool outNewTarget)
 
void AddOrUpdateGunshot (notnull IEntity shooter, vector worldPos, Faction faction, float timestamp, bool endangering)
 
void Update ()
 
void GenerateClusters (array< ref SCR_AITargetInfo > targets, array< ref SCR_AIGroupTargetCluster > outClusters, vector centerPos, float minAngularDist)
 
int GetTargetClusterStateId (SCR_AITargetClusterState s)
 
void DiagPrintClusterAssociation (array< ref array< int > > association)
 
void DiagDrawClusters ()
 

Public Attributes

ref array< IEntity > m_aTargetEntities = new array<IEntity>
 
ref array< ref SCR_AITargetInfom_aTargets = new array<ref SCR_AITargetInfo>
 
ref array< ref SCR_AIGroupTargetClusterm_aTargetClusters = {}
 
SCR_AIGroupTargetCluster m_MostDangerousCluster
 

Static Public Attributes

const float TARGET_LOST_THRESHOLD_S = 45.0
 
const float TARGET_FORGET_THRESHOLD_S = 150.0
 

Protected Member Functions

void RemoveTarget (IEntity enemy)
 
void RemoveTarget (int id)
 
void UpdateTargetsFromMembers ()
 
void MaintainTargets ()
 
void ClusterTargets ()
 
int GetClusterAssociation (SCR_AIGroupTargetCluster a, SCR_AIGroupTargetCluster b)
 
void SelectMostDangerousCluster ()
 
float CalculateClusterDangerScore (SCR_AIGroupTargetCluster c)
 
void DeleteClusterState (SCR_AIGroupTargetCluster c)
 
void TransferClusterState (SCR_AIGroupTargetCluster oldCluster, SCR_AIGroupTargetCluster newCluster)
 

Protected Attributes

SCR_AIGroup m_Group
 
SCR_AIGroupUtilityComponent m_Utility
 
ref ScriptInvokerBase< SCR_AIOnTargetClusterStateDeleted > Event_OnTargetClusterStateDeleted = new ScriptInvokerBase<SCR_AIOnTargetClusterStateDeleted>()
 
ref ScriptInvokerBase< SCR_AIGroupPerceptionOnEnemyDetected > Event_OnEnemyDetected
 
ref ScriptInvokerBase< SCR_AIGroupPerceptionOnEnemyDetectedFiltered > Event_OnEnemyDetectedFiltered
 
ref ScriptInvokerBase< SCR_AIGroupPerceptionOnNoEnemy > Event_OnNoEnemy
 

Constructor & Destructor Documentation

◆ SCR_AIGroupPerception()

void SCR_AIGroupPerception.SCR_AIGroupPerception ( SCR_AIGroupUtilityComponent  utility,
SCR_AIGroup  group 
)

Member Function Documentation

◆ AddOrUpdateGunshot()

void SCR_AIGroupPerception.AddOrUpdateGunshot ( notnull IEntity  shooter,
vector  worldPos,
Faction  faction,
float  timestamp,
bool  endangering 
)

◆ AddOrUpdateTarget()

SCR_AITargetInfo SCR_AIGroupPerception.AddOrUpdateTarget ( notnull BaseTarget  target,
out bool  outNewTarget 
)

◆ CalculateClusterDangerScore()

float SCR_AIGroupPerception.CalculateClusterDangerScore ( SCR_AIGroupTargetCluster  c)
protected

◆ ClusterTargets()

void SCR_AIGroupPerception.ClusterTargets ( )
protected

◆ DeleteClusterState()

void SCR_AIGroupPerception.DeleteClusterState ( SCR_AIGroupTargetCluster  c)
protected

◆ DiagDrawClusters()

void SCR_AIGroupPerception.DiagDrawClusters ( )

◆ DiagPrintClusterAssociation()

void SCR_AIGroupPerception.DiagPrintClusterAssociation ( array< ref array< int > >  association)

◆ GenerateClusters()

void SCR_AIGroupPerception.GenerateClusters ( array< ref SCR_AITargetInfo targets,
array< ref SCR_AIGroupTargetCluster outClusters,
vector  centerPos,
float  minAngularDist 
)

◆ GetClusterAssociation()

int SCR_AIGroupPerception.GetClusterAssociation ( SCR_AIGroupTargetCluster  a,
SCR_AIGroupTargetCluster  b 
)
protected

◆ GetOnEnemyDetected()

ScriptInvokerBase< SCR_AIGroupPerceptionOnEnemyDetected > SCR_AIGroupPerception.GetOnEnemyDetected ( )

◆ GetOnEnemyDetectedFiltered()

ScriptInvokerBase< SCR_AIGroupPerceptionOnEnemyDetectedFiltered > SCR_AIGroupPerception.GetOnEnemyDetectedFiltered ( )

This is similar to OnEnemyDetected event, but it will be invoked only once per group perception update, You should use this if you don't need every detected target, but need to know when anything has been detected.

◆ GetOnNoEnemy()

ScriptInvokerBase< SCR_AIGroupPerceptionOnNoEnemy > SCR_AIGroupPerception.GetOnNoEnemy ( )

◆ GetOnTargetClusterDeleted()

ScriptInvokerBase< SCR_AIOnTargetClusterStateDeleted > SCR_AIGroupPerception.GetOnTargetClusterDeleted ( )

◆ GetTargetClusterStateId()

int SCR_AIGroupPerception.GetTargetClusterStateId ( SCR_AITargetClusterState  s)

◆ MaintainTargets()

void SCR_AIGroupPerception.MaintainTargets ( )
protected

◆ RemoveTarget() [1/2]

void SCR_AIGroupPerception.RemoveTarget ( IEntity  enemy)
protected

◆ RemoveTarget() [2/2]

void SCR_AIGroupPerception.RemoveTarget ( int  id)
protected

◆ SelectMostDangerousCluster()

void SCR_AIGroupPerception.SelectMostDangerousCluster ( )
protected

◆ TransferClusterState()

void SCR_AIGroupPerception.TransferClusterState ( SCR_AIGroupTargetCluster  oldCluster,
SCR_AIGroupTargetCluster  newCluster 
)
protected

◆ Update()

void SCR_AIGroupPerception.Update ( )

◆ UpdateTargetsFromMembers()

void SCR_AIGroupPerception.UpdateTargetsFromMembers ( )
protected

Member Data Documentation

◆ Event_OnEnemyDetected

ref ScriptInvokerBase<SCR_AIGroupPerceptionOnEnemyDetected> SCR_AIGroupPerception.Event_OnEnemyDetected
protected

◆ Event_OnEnemyDetectedFiltered

ref ScriptInvokerBase<SCR_AIGroupPerceptionOnEnemyDetectedFiltered> SCR_AIGroupPerception.Event_OnEnemyDetectedFiltered
protected

◆ Event_OnNoEnemy

ref ScriptInvokerBase<SCR_AIGroupPerceptionOnNoEnemy> SCR_AIGroupPerception.Event_OnNoEnemy
protected

◆ Event_OnTargetClusterStateDeleted

ref ScriptInvokerBase<SCR_AIOnTargetClusterStateDeleted> SCR_AIGroupPerception.Event_OnTargetClusterStateDeleted = new ScriptInvokerBase<SCR_AIOnTargetClusterStateDeleted>()
protected

◆ m_aTargetClusters

ref array<ref SCR_AIGroupTargetCluster> SCR_AIGroupPerception.m_aTargetClusters = {}

◆ m_aTargetEntities

ref array<IEntity> SCR_AIGroupPerception.m_aTargetEntities = new array<IEntity>

◆ m_aTargets

ref array<ref SCR_AITargetInfo> SCR_AIGroupPerception.m_aTargets = new array<ref SCR_AITargetInfo>

◆ m_Group

SCR_AIGroup SCR_AIGroupPerception.m_Group
protected

◆ m_MostDangerousCluster

SCR_AIGroupTargetCluster SCR_AIGroupPerception.m_MostDangerousCluster

◆ m_Utility

SCR_AIGroupUtilityComponent SCR_AIGroupPerception.m_Utility
protected

◆ TARGET_FORGET_THRESHOLD_S

const float SCR_AIGroupPerception.TARGET_FORGET_THRESHOLD_S = 150.0
static

◆ TARGET_LOST_THRESHOLD_S

const float SCR_AIGroupPerception.TARGET_LOST_THRESHOLD_S = 45.0
static

The documentation for this interface was generated from the following file: