Arma Reforger Script API
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
SCR_CampaignMilitaryBaseManager Interface Reference

Created in SCR_GameModeCampaign. More...

Public Member Functions

int GetActiveBasesCount ()
 Bases which have been initialized.
 
int GetTargetActiveBasesCount ()
 Total bases expected to be initialized.
 
void AddActiveBase ()
 
void AddTargetActiveBase ()
 
void SetTargetActiveBasesCount (int count)
 
OnLocalPlayerEnteredBaseInvoker GetOnLocalPlayerEnteredBase ()
 
OnLocalPlayerLeftBaseInvoker GetOnLocalPlayerLeftBase ()
 
OnAllBasesInitializedInvoker GetOnAllBasesInitialized ()
 Triggered when all bases have been successfully initialized.
 
OnSignalChangedInvoker GetOnSignalChanged ()
 Triggered when a base's radio coverage changes.
 
void OnAllBasesInitialized ()
 
bool IsBasesInitDone ()
 
void SetLocalPlayerFaction (notnull SCR_CampaignFaction faction)
 
SCR_CampaignFaction GetLocalPlayerFaction ()
 
int UpdateBases ()
 Update the list of Conflict bases.
 
void SelectHQs (notnull array< SCR_CampaignMilitaryBaseComponent > candidates, notnull array< SCR_CampaignMilitaryBaseComponent > controlPoints, out notnull array< SCR_CampaignMilitaryBaseComponent > selectedHQs)
 Picks Main Operating Bases from a list of candidates by checking average distance to active control points.
 
void SetHQFactions (notnull array< SCR_CampaignMilitaryBaseComponent > selectedHQs)
 
void InitializeBases (notnull array< SCR_CampaignMilitaryBaseComponent > selectedHQs, bool randomizeSupplies)
 
void AddRandomSupplies (notnull array< SCR_CampaignMilitaryBaseComponent > basesSorted, notnull array< SCR_CampaignMilitaryBaseComponent > selectedHQs)
 Add randomized supplies to each base, calculate batches so each side encounters similarly stacked bases.
 
void UpdateTaskBases (Faction assignedFaction)
 On clients, the tasks are not properly synced upon deserialization due to delay in callsign assignment This method will update the task list with the proper bases.
 
void InitializeSupplyDepotIcons ()
 Show icons only for supply depots close enough to an active base.
 
void RegisterRemnantSupplyDepot (notnull SCR_CampaignSuppliesComponent comp)
 
void HideUnusedBaseIcons ()
 
void RecalculateRadioCoverage (notnull SCR_CampaignFaction faction)
 Determine the radio coverage of all bases (no coverage / can be reached / can respond / both ways)
 
void SelectPrimaryTarget (notnull SCR_CampaignFaction faction)
 Find a base which is most profitable for a faction to capture next.
 
void EvaluateControlPoints ()
 
void OnEnemyDetectedByDefenders (SCR_AIGroup group, SCR_AITargetInfo target, AIAgent reporter)
 
SCR_CampaignMilitaryBaseComponent FindClosestBase (vector position)
 
SCR_CampaignMilitaryBaseComponent FindBaseByCallsign (int callsign)
 
SCR_CampaignMilitaryBaseComponent FindBaseByPosition (vector position)
 
bool IsEntityInFactionRadioSignal (notnull IEntity entity, notnull Faction faction)
 
void StoreBasesStates (out notnull array< ref SCR_CampaignBaseStruct > outEntries)
 
void LoadBasesStates (notnull array< ref SCR_CampaignBaseStruct > entries)
 
void ProcessRemnantsPresence ()
 Clean up ambient patrols around Main Operating Bases, assign parent bases where applicable.
 
void OnPlayerDisconnected (int playerId)
 
void OnLocalPlayerPresenceChanged (notnull SCR_CampaignMilitaryBaseComponent base, bool present)
 
void OnServiceBuilt (SCR_EServicePointStatus state, notnull SCR_ServicePointComponent serviceComponent)
 
void OnServiceRemoved (notnull SCR_MilitaryBaseComponent base, notnull SCR_MilitaryBaseLogicComponent service)
 
void OnDefenderGroupSpawned (notnull SCR_MilitaryBaseLogicComponent service, notnull SCR_AIGroup group)
 Called when a new AI group is spawned by Free Roam Building.
 
void OnConflictStarted ()
 
void SCR_CampaignMilitaryBaseManager (notnull SCR_GameModeCampaign campaign)
 
void ~SCR_CampaignMilitaryBaseManager ()
 

Protected Member Functions

void DisableExtraSeizingComponents (SCR_MilitaryBaseComponent base, SCR_MilitaryBaseLogicComponent logic)
 
void SelectHQsSimple (notnull array< SCR_CampaignMilitaryBaseComponent > candidates, out notnull array< SCR_CampaignMilitaryBaseComponent > selectedHQs)
 If there are only two candidates for main HQ or the main process fails, HQs are selected simply and cheaply.
 
int GetAvgCPDistanceSq (notnull SCR_CampaignMilitaryBaseComponent HQ, notnull array< SCR_CampaignMilitaryBaseComponent > controlPoints)
 Returns squared average distance to control points - used for starting HQ location calculations.
 
void OnBaseFactionChanged (SCR_MilitaryBaseComponent base, Faction newFaction)
 

Protected Attributes

SCR_GameModeCampaign m_Campaign
 
SCR_CampaignFaction m_LocalPlayerFaction
 
ref array< SCR_CampaignMilitaryBaseComponentm_aBases = {}
 
ref array< SCR_CampaignMilitaryBaseComponentm_aControlPoints = {}
 
ref array< SCR_CampaignSuppliesComponentm_aRemnantSupplyDepots = {}
 
ref OnSignalChangedInvoker m_OnSignalChanged
 
ref OnAllBasesInitializedInvoker m_OnAllBasesInitialized
 
ref OnLocalPlayerEnteredBaseInvoker m_OnLocalPlayerEnteredBase
 
ref OnLocalPlayerLeftBaseInvoker m_OnLocalPlayerLeftBase
 
int m_iActiveBases
 
int m_iTargetActiveBases
 
bool m_bAllBasesInitialized
 

Static Protected Attributes

static const int PARENT_BASE_DISTANCE_THRESHOLD = 300
 
static const int HQ_NO_REMNANTS_RADIUS = 300
 
static const int HQ_NO_REMNANTS_PATROL_RADIUS = 600
 
static const int MAX_HQ_SELECTION_ITERATIONS = 20
 
static const int DEPOT_PLAYER_PRESENCE_CHECK_INTERVAL = 2000
 
static const float CP_AVG_DISTANCE_TOLERANCE = 0.25
 
static const string ICON_NAME_SUPPLIES = "Slot_Supplies"
 
static const float MAX_DIST_TO_BASE = 300
 
static const float PARKED_LIFETIME = 3600
 

Detailed Description

Created in SCR_GameModeCampaign.

Constructor & Destructor Documentation

◆ SCR_CampaignMilitaryBaseManager()

void SCR_CampaignMilitaryBaseManager.SCR_CampaignMilitaryBaseManager ( notnull SCR_GameModeCampaign  campaign)

◆ ~SCR_CampaignMilitaryBaseManager()

void SCR_CampaignMilitaryBaseManager.~SCR_CampaignMilitaryBaseManager ( )

Member Function Documentation

◆ AddActiveBase()

void SCR_CampaignMilitaryBaseManager.AddActiveBase ( )

◆ AddRandomSupplies()

void SCR_CampaignMilitaryBaseManager.AddRandomSupplies ( notnull array< SCR_CampaignMilitaryBaseComponent basesSorted,
notnull array< SCR_CampaignMilitaryBaseComponent selectedHQs 
)

Add randomized supplies to each base, calculate batches so each side encounters similarly stacked bases.

◆ AddTargetActiveBase()

void SCR_CampaignMilitaryBaseManager.AddTargetActiveBase ( )

◆ DisableExtraSeizingComponents()

void SCR_CampaignMilitaryBaseManager.DisableExtraSeizingComponents ( SCR_MilitaryBaseComponent  base,
SCR_MilitaryBaseLogicComponent  logic 
)
protected

◆ EvaluateControlPoints()

void SCR_CampaignMilitaryBaseManager.EvaluateControlPoints ( )

◆ FindBaseByCallsign()

SCR_CampaignMilitaryBaseComponent SCR_CampaignMilitaryBaseManager.FindBaseByCallsign ( int  callsign)

◆ FindBaseByPosition()

SCR_CampaignMilitaryBaseComponent SCR_CampaignMilitaryBaseManager.FindBaseByPosition ( vector  position)

◆ FindClosestBase()

SCR_CampaignMilitaryBaseComponent SCR_CampaignMilitaryBaseManager.FindClosestBase ( vector  position)

◆ GetActiveBasesCount()

int SCR_CampaignMilitaryBaseManager.GetActiveBasesCount ( )

Bases which have been initialized.

◆ GetAvgCPDistanceSq()

int SCR_CampaignMilitaryBaseManager.GetAvgCPDistanceSq ( notnull SCR_CampaignMilitaryBaseComponent  HQ,
notnull array< SCR_CampaignMilitaryBaseComponent controlPoints 
)
protected

Returns squared average distance to control points - used for starting HQ location calculations.

◆ GetLocalPlayerFaction()

SCR_CampaignFaction SCR_CampaignMilitaryBaseManager.GetLocalPlayerFaction ( )

◆ GetOnAllBasesInitialized()

OnAllBasesInitializedInvoker SCR_CampaignMilitaryBaseManager.GetOnAllBasesInitialized ( )

Triggered when all bases have been successfully initialized.

◆ GetOnLocalPlayerEnteredBase()

OnLocalPlayerEnteredBaseInvoker SCR_CampaignMilitaryBaseManager.GetOnLocalPlayerEnteredBase ( )

◆ GetOnLocalPlayerLeftBase()

OnLocalPlayerLeftBaseInvoker SCR_CampaignMilitaryBaseManager.GetOnLocalPlayerLeftBase ( )

◆ GetOnSignalChanged()

OnSignalChangedInvoker SCR_CampaignMilitaryBaseManager.GetOnSignalChanged ( )

Triggered when a base's radio coverage changes.

◆ GetTargetActiveBasesCount()

int SCR_CampaignMilitaryBaseManager.GetTargetActiveBasesCount ( )

Total bases expected to be initialized.

◆ HideUnusedBaseIcons()

void SCR_CampaignMilitaryBaseManager.HideUnusedBaseIcons ( )

◆ InitializeBases()

void SCR_CampaignMilitaryBaseManager.InitializeBases ( notnull array< SCR_CampaignMilitaryBaseComponent selectedHQs,
bool  randomizeSupplies 
)

◆ InitializeSupplyDepotIcons()

void SCR_CampaignMilitaryBaseManager.InitializeSupplyDepotIcons ( )

Show icons only for supply depots close enough to an active base.

◆ IsBasesInitDone()

bool SCR_CampaignMilitaryBaseManager.IsBasesInitDone ( )

◆ IsEntityInFactionRadioSignal()

bool SCR_CampaignMilitaryBaseManager.IsEntityInFactionRadioSignal ( notnull IEntity  entity,
notnull Faction  faction 
)

◆ LoadBasesStates()

void SCR_CampaignMilitaryBaseManager.LoadBasesStates ( notnull array< ref SCR_CampaignBaseStruct entries)

◆ OnAllBasesInitialized()

void SCR_CampaignMilitaryBaseManager.OnAllBasesInitialized ( )

◆ OnBaseFactionChanged()

void SCR_CampaignMilitaryBaseManager.OnBaseFactionChanged ( SCR_MilitaryBaseComponent  base,
Faction  newFaction 
)
protected

◆ OnConflictStarted()

void SCR_CampaignMilitaryBaseManager.OnConflictStarted ( )

◆ OnDefenderGroupSpawned()

void SCR_CampaignMilitaryBaseManager.OnDefenderGroupSpawned ( notnull SCR_MilitaryBaseLogicComponent  service,
notnull SCR_AIGroup  group 
)

Called when a new AI group is spawned by Free Roam Building.

◆ OnEnemyDetectedByDefenders()

void SCR_CampaignMilitaryBaseManager.OnEnemyDetectedByDefenders ( SCR_AIGroup  group,
SCR_AITargetInfo  target,
AIAgent  reporter 
)

◆ OnLocalPlayerPresenceChanged()

void SCR_CampaignMilitaryBaseManager.OnLocalPlayerPresenceChanged ( notnull SCR_CampaignMilitaryBaseComponent  base,
bool  present 
)

◆ OnPlayerDisconnected()

void SCR_CampaignMilitaryBaseManager.OnPlayerDisconnected ( int  playerId)

◆ OnServiceBuilt()

void SCR_CampaignMilitaryBaseManager.OnServiceBuilt ( SCR_EServicePointStatus  state,
notnull SCR_ServicePointComponent  serviceComponent 
)

◆ OnServiceRemoved()

void SCR_CampaignMilitaryBaseManager.OnServiceRemoved ( notnull SCR_MilitaryBaseComponent  base,
notnull SCR_MilitaryBaseLogicComponent  service 
)

◆ ProcessRemnantsPresence()

void SCR_CampaignMilitaryBaseManager.ProcessRemnantsPresence ( )

Clean up ambient patrols around Main Operating Bases, assign parent bases where applicable.

◆ RecalculateRadioCoverage()

void SCR_CampaignMilitaryBaseManager.RecalculateRadioCoverage ( notnull SCR_CampaignFaction  faction)

Determine the radio coverage of all bases (no coverage / can be reached / can respond / both ways)

◆ RegisterRemnantSupplyDepot()

void SCR_CampaignMilitaryBaseManager.RegisterRemnantSupplyDepot ( notnull SCR_CampaignSuppliesComponent  comp)

◆ SelectHQs()

void SCR_CampaignMilitaryBaseManager.SelectHQs ( notnull array< SCR_CampaignMilitaryBaseComponent candidates,
notnull array< SCR_CampaignMilitaryBaseComponent controlPoints,
out notnull array< SCR_CampaignMilitaryBaseComponent selectedHQs 
)

Picks Main Operating Bases from a list of candidates by checking average distance to active control points.

◆ SelectHQsSimple()

void SCR_CampaignMilitaryBaseManager.SelectHQsSimple ( notnull array< SCR_CampaignMilitaryBaseComponent candidates,
out notnull array< SCR_CampaignMilitaryBaseComponent selectedHQs 
)
protected

If there are only two candidates for main HQ or the main process fails, HQs are selected simply and cheaply.

◆ SelectPrimaryTarget()

void SCR_CampaignMilitaryBaseManager.SelectPrimaryTarget ( notnull SCR_CampaignFaction  faction)

Find a base which is most profitable for a faction to capture next.

◆ SetHQFactions()

void SCR_CampaignMilitaryBaseManager.SetHQFactions ( notnull array< SCR_CampaignMilitaryBaseComponent selectedHQs)

◆ SetLocalPlayerFaction()

void SCR_CampaignMilitaryBaseManager.SetLocalPlayerFaction ( notnull SCR_CampaignFaction  faction)

◆ SetTargetActiveBasesCount()

void SCR_CampaignMilitaryBaseManager.SetTargetActiveBasesCount ( int  count)

◆ StoreBasesStates()

void SCR_CampaignMilitaryBaseManager.StoreBasesStates ( out notnull array< ref SCR_CampaignBaseStruct outEntries)

◆ UpdateBases()

int SCR_CampaignMilitaryBaseManager.UpdateBases ( )

Update the list of Conflict bases.

◆ UpdateTaskBases()

void SCR_CampaignMilitaryBaseManager.UpdateTaskBases ( Faction  assignedFaction)

On clients, the tasks are not properly synced upon deserialization due to delay in callsign assignment This method will update the task list with the proper bases.

Member Data Documentation

◆ CP_AVG_DISTANCE_TOLERANCE

const float SCR_CampaignMilitaryBaseManager.CP_AVG_DISTANCE_TOLERANCE = 0.25
staticprotected

◆ DEPOT_PLAYER_PRESENCE_CHECK_INTERVAL

const int SCR_CampaignMilitaryBaseManager.DEPOT_PLAYER_PRESENCE_CHECK_INTERVAL = 2000
staticprotected

◆ HQ_NO_REMNANTS_PATROL_RADIUS

const int SCR_CampaignMilitaryBaseManager.HQ_NO_REMNANTS_PATROL_RADIUS = 600
staticprotected

◆ HQ_NO_REMNANTS_RADIUS

const int SCR_CampaignMilitaryBaseManager.HQ_NO_REMNANTS_RADIUS = 300
staticprotected

◆ ICON_NAME_SUPPLIES

const string SCR_CampaignMilitaryBaseManager.ICON_NAME_SUPPLIES = "Slot_Supplies"
staticprotected

◆ m_aBases

ref array<SCR_CampaignMilitaryBaseComponent> SCR_CampaignMilitaryBaseManager.m_aBases = {}
protected

◆ m_aControlPoints

ref array<SCR_CampaignMilitaryBaseComponent> SCR_CampaignMilitaryBaseManager.m_aControlPoints = {}
protected

◆ m_aRemnantSupplyDepots

ref array<SCR_CampaignSuppliesComponent> SCR_CampaignMilitaryBaseManager.m_aRemnantSupplyDepots = {}
protected

◆ m_bAllBasesInitialized

bool SCR_CampaignMilitaryBaseManager.m_bAllBasesInitialized
protected

◆ m_Campaign

SCR_GameModeCampaign SCR_CampaignMilitaryBaseManager.m_Campaign
protected

◆ m_iActiveBases

int SCR_CampaignMilitaryBaseManager.m_iActiveBases
protected

◆ m_iTargetActiveBases

int SCR_CampaignMilitaryBaseManager.m_iTargetActiveBases
protected

◆ m_LocalPlayerFaction

SCR_CampaignFaction SCR_CampaignMilitaryBaseManager.m_LocalPlayerFaction
protected

◆ m_OnAllBasesInitialized

ref OnAllBasesInitializedInvoker SCR_CampaignMilitaryBaseManager.m_OnAllBasesInitialized
protected

◆ m_OnLocalPlayerEnteredBase

ref OnLocalPlayerEnteredBaseInvoker SCR_CampaignMilitaryBaseManager.m_OnLocalPlayerEnteredBase
protected

◆ m_OnLocalPlayerLeftBase

ref OnLocalPlayerLeftBaseInvoker SCR_CampaignMilitaryBaseManager.m_OnLocalPlayerLeftBase
protected

◆ m_OnSignalChanged

ref OnSignalChangedInvoker SCR_CampaignMilitaryBaseManager.m_OnSignalChanged
protected

◆ MAX_DIST_TO_BASE

const float SCR_CampaignMilitaryBaseManager.MAX_DIST_TO_BASE = 300
staticprotected

◆ MAX_HQ_SELECTION_ITERATIONS

const int SCR_CampaignMilitaryBaseManager.MAX_HQ_SELECTION_ITERATIONS = 20
staticprotected

◆ PARENT_BASE_DISTANCE_THRESHOLD

const int SCR_CampaignMilitaryBaseManager.PARENT_BASE_DISTANCE_THRESHOLD = 300
staticprotected

◆ PARKED_LIFETIME

const float SCR_CampaignMilitaryBaseManager.PARKED_LIFETIME = 3600
staticprotected

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