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_RadioRelayBuildingDisassemblyUserAction.c
Go to the documentation of this file.
1
class
SCR_RadioRelayBuildingDisassemblyUserAction
:
SCR_CampaignBuildingDisassemblyUserAction
2
{
3
//------------------------------------------------------------------------------------------------
4
override
bool
CanBePerformedScript(
IEntity
user)
5
{
6
if
(!super.CanBePerformedScript(user))
7
return
false
;
8
9
SCR_ChimeraCharacter character = SCR_ChimeraCharacter.Cast(user);
10
if
(!character)
11
return
false
;
12
13
return
CanRelayBeDismantled
(character);
14
}
15
16
//------------------------------------------------------------------------------------------------
17
override
protected
void
DeleteComposition
(notnull
IEntity
composition, notnull SCR_ChimeraCharacter character)
18
{
19
if
(!
CanRelayBeDismantled
(character))
20
return
;
21
22
super.DeleteComposition(composition, character);
23
}
24
25
//------------------------------------------------------------------------------------------------
26
protected
bool
CanRelayBeDismantled
(notnull SCR_ChimeraCharacter dismantlingUser)
27
{
28
if
(!
m_FactionComponent
)
29
return
true
;
30
31
Faction
structureFaction =
m_FactionComponent
.GetAffiliatedFaction();
32
if
(!structureFaction)
33
return
false
;
34
35
if
(!
IsPlayerFactionSame
(dismantlingUser))
36
return
true
;
37
38
SCR_GameModeCampaign
campaign =
SCR_GameModeCampaign
.GetInstance();
39
if
(!campaign)
40
return
true
;
41
42
SCR_CampaignMilitaryBaseComponent
campaignBase =
GetBase
();
43
if
(!campaignBase)
44
return
false
;
45
46
SCR_DismantleCampaignMilitaryBaseTaskEntity
task
= SCR_DismantleCampaignMilitaryBaseTaskEntity.Cast(
SCR_CampaignTaskHelper
.GetTaskOnBase(campaignBase, structureFaction, SCR_DismantleCampaignMilitaryBaseTaskEntity));
47
if
(
task
)
48
return
true
;
// if base is meant to be dismantled then this will have to be dismantled
49
50
SCR_CampaignBuildingManagerComponent buildingManagerComponent = SCR_CampaignBuildingManagerComponent.Cast(campaign.FindComponent(SCR_CampaignBuildingManagerComponent));
51
if
(!buildingManagerComponent)
52
return
false
;
53
54
array<SCR_CampaignBuildingCompositionComponent> compositions = {};
55
buildingManagerComponent.GetBuildingCompositions(campaignBase, compositions);
56
foreach
(SCR_CampaignBuildingCompositionComponent composition : compositions)
57
{
58
if
(composition && composition !=
m_CompositionComponent
&&
HasCompositionLabel
(composition,
EEditableEntityLabel
.SERVICE_ANTENNA))
59
return
true
;
// if there is more than one relay then player is allowed to dismantle this one
60
}
61
62
return
false
;
63
}
64
}
EEditableEntityLabel
EEditableEntityLabel
Definition
EEditableEntityLabel.c:2
SCR_GameModeCampaign
void SCR_GameModeCampaign(IEntitySource src, IEntity parent)
Definition
SCR_GameModeCampaign.c:1812
task
from task
Definition
SCR_TaskNotificationConfigs.c:12
Faction
Definition
Faction.c:13
IEntity
Definition
IEntity.c:13
SCR_CampaignBuildingDisassemblyUserAction
Definition
SCR_CampaignBuildingDisassemblyUserAction.c:2
SCR_CampaignBuildingDisassemblyUserAction::m_CompositionComponent
SCR_CampaignBuildingCompositionComponent m_CompositionComponent
Definition
SCR_CampaignBuildingDisassemblyUserAction.c:4
SCR_CampaignBuildingDisassemblyUserAction::HasCompositionLabel
bool HasCompositionLabel(EEditableEntityLabel label=EEditableEntityLabel.TRAIT_SERVICE)
Definition
SCR_CampaignBuildingDisassemblyUserAction.c:304
SCR_CampaignBuildingDisassemblyUserAction::m_FactionComponent
FactionAffiliationComponent m_FactionComponent
Definition
SCR_CampaignBuildingDisassemblyUserAction.c:7
SCR_CampaignBuildingDisassemblyUserAction::IsPlayerFactionSame
bool IsPlayerFactionSame(notnull SCR_ChimeraCharacter user)
Is user faction same as the composition one.
Definition
SCR_CampaignBuildingDisassemblyUserAction.c:583
SCR_CampaignBuildingDisassemblyUserAction::GetBase
SCR_CampaignMilitaryBaseComponent GetBase()
Definition
SCR_CampaignBuildingDisassemblyUserAction.c:613
SCR_CampaignMilitaryBaseComponent
Definition
SCR_CampaignMilitaryBaseComponent.c:38
SCR_CampaignTaskHelper
Definition
SCR_CampaignTaskHelper.c:2
SCR_RadioRelayBuildingDisassemblyUserAction
Definition
SCR_RadioRelayBuildingDisassemblyUserAction.c:2
SCR_RadioRelayBuildingDisassemblyUserAction::CanRelayBeDismantled
bool CanRelayBeDismantled(notnull SCR_ChimeraCharacter dismantlingUser)
Definition
SCR_RadioRelayBuildingDisassemblyUserAction.c:26
SCR_RadioRelayBuildingDisassemblyUserAction::DeleteComposition
void DeleteComposition(notnull IEntity composition, notnull SCR_ChimeraCharacter character)
Definition
SCR_RadioRelayBuildingDisassemblyUserAction.c:17
scripts
Game
UserActions
SCR_RadioRelayBuildingDisassemblyUserAction.c
Generated by
1.17.0