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_FactionCommanderEstablishBaseMenuHandlerHelper.c
Go to the documentation of this file.
1
[
BaseContainerProps
()]
2
class
SCR_FactionCommanderEstablishBaseMenuHandlerHelper
3
{
4
protected
const
static
string
BASE_TOO_CLOSE_TEXT
=
"#AR-FactionCommander_BaseTooClose"
;
5
protected
const
static
string
TASK_TOO_CLOSE_TEXT
=
"#AR-FactionCommander_TaskTooClose"
;
6
7
//------------------------------------------------------------------------------------------------
8
static
bool
IsNearAnyBase
(notnull
Faction
commanderFaction,
vector
position
)
9
{
10
array<SCR_MilitaryBaseComponent> bases = {};
11
SCR_MilitaryBaseSystem
.
GetInstance
().
GetBases
(bases);
12
13
SCR_CampaignMilitaryBaseComponent
campaignBase;
14
int
threshold;
15
16
foreach
(SCR_MilitaryBaseComponent
base
: bases)
17
{
18
campaignBase =
SCR_CampaignMilitaryBaseComponent
.Cast(
base
);
19
20
if
(!campaignBase || !campaignBase.
IsInitialized
())
21
continue
;
22
23
threshold = SCR_CampaignFactionCommanderHandlerComponent.Cast(SCR_FactionCommanderHandlerComponent.GetInstance()).GetBaseMinDistance(campaignBase);
24
25
if
(
vector
.DistanceSqXZ(
base
.GetOwner().GetOrigin(),
position
) < (threshold * threshold))
26
return
true
;
27
}
28
29
return
false
;
30
}
31
32
//------------------------------------------------------------------------------------------------
33
static
bool
IsNearAnyEstablishTask
(notnull
Faction
commanderFaction,
vector
position
)
34
{
35
array<SCR_Task> tasks = {};
36
SCR_TaskSystem
.GetInstance().GetTasksByState(tasks,
SCR_ETaskState
.CREATED |
SCR_ETaskState
.ASSIGNED, commanderFaction.GetFactionKey());
37
38
int
threshold = SCR_CampaignFactionCommanderHandlerComponent.Cast(SCR_FactionCommanderHandlerComponent.GetInstance()).GetBaseMinDistance(
SCR_ECampaignBaseType
.BASE);
39
40
foreach
(
SCR_Task
task
: tasks)
41
{
42
SCR_EstablishBaseTaskEntity establishTask = SCR_EstablishBaseTaskEntity.Cast(
task
);
43
44
if
(!establishTask)
45
continue
;
46
47
if
(
vector
.DistanceSqXZ(establishTask.GetOrigin(),
position
) < (threshold * threshold))
48
return
true
;
49
}
50
51
return
false
;
52
}
53
54
//------------------------------------------------------------------------------------------------
55
static
bool
CanEstablishBase
(notnull
Faction
commanderFaction,
int
playerId,
vector
position
,
IEntity
hoveredEntity, out
string
disabledText =
""
)
56
{
57
SCR_GameModeCampaign
gameModeCampaign =
SCR_GameModeCampaign
.Cast(
GetGame
().
GetGameMode
());
58
if
(!gameModeCampaign || !gameModeCampaign.GetEstablishingBasesEnabled())
59
return
false
;
60
61
SCR_EstablishBaseTaskEntity hoveredTask = SCR_EstablishBaseTaskEntity.Cast(hoveredEntity);
62
if
(hoveredTask)
63
return
true
;
64
65
if
(
IsNearAnyBase
(commanderFaction,
position
))
66
{
67
disabledText =
BASE_TOO_CLOSE_TEXT
;
68
return
false
;
69
}
70
71
if
(
IsNearAnyEstablishTask
(commanderFaction,
position
))
72
{
73
disabledText =
TASK_TOO_CLOSE_TEXT
;
74
return
false
;
75
}
76
77
return
true
;
78
}
79
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
BaseContainerProps
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
Definition
SCR_AIAnimationWaypoint.c:14
GetGameMode
SCR_BaseGameMode GetGameMode()
Definition
SCR_BaseGameModeComponent.c:15
SCR_ECampaignBaseType
SCR_ECampaignBaseType
Definition
SCR_CampaignMilitaryBaseComponent.c:2966
position
vector position
Definition
SCR_DestructibleTreeV2.c:30
SCR_GameModeCampaign
void SCR_GameModeCampaign(IEntitySource src, IEntity parent)
Definition
SCR_GameModeCampaign.c:1812
base
around base
Definition
SCR_HoldCampaignMilitaryBaseTaskEntity.c:9
SCR_Task
void SCR_Task(IEntitySource src, IEntity parent)
Definition
SCR_Task.c:1938
SCR_ETaskState
SCR_ETaskState
Definition
SCR_Task.c:3
task
from task
Definition
SCR_TaskNotificationConfigs.c:12
Faction
Definition
Faction.c:13
IEntity
Definition
IEntity.c:13
SCR_CampaignMilitaryBaseComponent
Definition
SCR_CampaignMilitaryBaseComponent.c:38
SCR_CampaignMilitaryBaseComponent::IsInitialized
bool IsInitialized()
Definition
SCR_CampaignMilitaryBaseComponent.c:975
SCR_FactionCommanderEstablishBaseMenuHandlerHelper
Definition
SCR_FactionCommanderEstablishBaseMenuHandlerHelper.c:3
SCR_FactionCommanderEstablishBaseMenuHandlerHelper::TASK_TOO_CLOSE_TEXT
static const string TASK_TOO_CLOSE_TEXT
Definition
SCR_FactionCommanderEstablishBaseMenuHandlerHelper.c:5
SCR_FactionCommanderEstablishBaseMenuHandlerHelper::IsNearAnyBase
static bool IsNearAnyBase(notnull Faction commanderFaction, vector position)
Definition
SCR_FactionCommanderEstablishBaseMenuHandlerHelper.c:8
SCR_FactionCommanderEstablishBaseMenuHandlerHelper::CanEstablishBase
static bool CanEstablishBase(notnull Faction commanderFaction, int playerId, vector position, IEntity hoveredEntity, out string disabledText="")
Definition
SCR_FactionCommanderEstablishBaseMenuHandlerHelper.c:55
SCR_FactionCommanderEstablishBaseMenuHandlerHelper::IsNearAnyEstablishTask
static bool IsNearAnyEstablishTask(notnull Faction commanderFaction, vector position)
Definition
SCR_FactionCommanderEstablishBaseMenuHandlerHelper.c:33
SCR_FactionCommanderEstablishBaseMenuHandlerHelper::BASE_TOO_CLOSE_TEXT
static const string BASE_TOO_CLOSE_TEXT
Definition
SCR_FactionCommanderEstablishBaseMenuHandlerHelper.c:4
SCR_MilitaryBaseSystem
Definition
SCR_MilitaryBaseSystem.c:18
SCR_MilitaryBaseSystem::GetBases
int GetBases(notnull out array< SCR_MilitaryBaseComponent > bases)
Definition
SCR_MilitaryBaseSystem.c:330
SCR_MilitaryBaseSystem::GetInstance
static SCR_MilitaryBaseSystem GetInstance()
Definition
SCR_MilitaryBaseSystem.c:37
SCR_TaskSystem
Definition
SCR_TaskSystem.c:6
vector
Definition
vector.c:13
scripts
Game
FactionCommander
MenuHandlers
SCR_FactionCommanderEstablishBaseMenuHandlerHelper.c
Generated by
1.17.0