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_EnableDefendersAction.c
Go to the documentation of this file.
1
class
SCR_EnableDefendersAction
:
ScriptedUserAction
2
{
3
4
protected
SCR_DefenderSpawnerComponent
m_DefenderSpawner
;
5
protected
SCR_SpawnerAIGroupManagerComponent
m_GroupSpawningManager
;
6
7
//------------------------------------------------------------------------------------------------
8
override
void
PerformAction
(
IEntity
pOwnerEntity,
IEntity
pUserEntity)
9
{
10
if
(!
m_DefenderSpawner
)
11
return
;
12
13
PlayerController playerController =
GetGame
().GetPlayerController();
14
if
(!playerController)
15
return
;
16
17
SCR_SpawnerRequestComponent playerReqComponent = SCR_SpawnerRequestComponent.Cast(playerController.FindComponent(SCR_SpawnerRequestComponent));
18
if
(!playerReqComponent)
19
return
;
20
21
playerReqComponent.EnableSpawning(
m_DefenderSpawner
, !
m_DefenderSpawner
.IsSpawningEnabled(), playerController.GetPlayerId());
22
}
23
24
//------------------------------------------------------------------------------------------------
25
override
bool
CanBePerformedScript
(
IEntity
user)
26
{
27
if
(
m_GroupSpawningManager
.IsAtAILimit())
28
{
29
SetCannotPerformReason
(
"#AR-Campaign_Action_BuildBlocked-UC"
);
30
return
false
;
31
}
32
33
if
(!
m_DefenderSpawner
.UserRankCheck(user))
34
{
35
string
rankName;
36
FactionAffiliationComponent factionAffiliationComp = FactionAffiliationComponent.Cast(user.
FindComponent
(FactionAffiliationComponent));
37
if
(!factionAffiliationComp)
38
return
false
;
39
40
SCR_Faction
faction =
SCR_Faction
.Cast(factionAffiliationComp.GetAffiliatedFaction());
41
if
(!faction)
42
return
false
;
43
44
rankName = faction.
GetRanks
().
GetRankName
(
m_DefenderSpawner
.GetMinimumRank());
45
46
SetCannotPerformReason
(rankName);
47
return
false
;
48
}
49
50
return
true
;
51
}
52
53
//------------------------------------------------------------------------------------------------
54
override
bool
CanBeShownScript
(
IEntity
user)
55
{
56
if
(!
m_DefenderSpawner
)
57
return
false
;
58
59
SCR_PlayerController
playerController =
SCR_PlayerController
.Cast(
GetGame
().
GetPlayerController
());
60
if
(!playerController)
61
return
false
;
62
63
SCR_ChimeraCharacter chimeraCharacter = SCR_ChimeraCharacter.Cast(playerController.GetControlledEntity());
64
if
(!chimeraCharacter || chimeraCharacter.GetFaction() !=
m_DefenderSpawner
.GetFaction())
65
return
false
;
66
67
return
true
;
68
}
69
70
//------------------------------------------------------------------------------------------------
71
protected
override
bool
HasLocalEffectOnlyScript
()
72
{
73
return
true
;
74
}
75
76
//------------------------------------------------------------------------------------------------
77
override
bool
GetActionNameScript
(out
string
outName)
78
{
79
if
(
m_DefenderSpawner
.IsSpawningEnabled())
80
outName =
"#AR-DefenderSpawner_DisableSpawning"
;
81
else
82
outName =
"#AR-DefenderSpawner_EnableSpawning"
;
83
84
return
true
;
85
}
86
87
//------------------------------------------------------------------------------------------------
88
override
void
Init
(
IEntity
pOwnerEntity,
GenericComponent
pManagerComponent)
89
{
90
m_DefenderSpawner
=
SCR_DefenderSpawnerComponent
.Cast(pOwnerEntity.
FindComponent
(
SCR_DefenderSpawnerComponent
));
91
92
BaseGameMode gameMode =
GetGame
().GetGameMode();
93
if
(!gameMode)
94
return
;
95
96
m_GroupSpawningManager
= SCR_SpawnerAIGroupManagerComponent.Cast(gameMode.FindComponent(SCR_SpawnerAIGroupManagerComponent));
97
if
(!
m_GroupSpawningManager
)
98
{
99
Print
(
"SCR_DefenderSpawnerComponent requires SCR_SpawnerAIGroupManagerComponent attached to gamemode to work properly!"
,
LogLevel
.ERROR);
100
return
;
101
}
102
}
103
};
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
BaseUserAction::SetCannotPerformReason
void SetCannotPerformReason(string reason)
Definition
BaseUserAction.c:21
GenericComponent
Definition
GenericComponent.c:13
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
SCR_DefenderSpawnerComponent
Service providing group of defenders defined in faction. Requires SCR_EnableDefenderAction on ActionM...
Definition
SCR_DefenderSpawnerComponent.c:41
SCR_EnableDefendersAction
Definition
SCR_EnableDefendersAction.c:2
SCR_EnableDefendersAction::GetActionNameScript
override bool GetActionNameScript(out string outName)
Definition
SCR_EnableDefendersAction.c:77
SCR_EnableDefendersAction::HasLocalEffectOnlyScript
override bool HasLocalEffectOnlyScript()
Definition
SCR_EnableDefendersAction.c:71
SCR_EnableDefendersAction::CanBePerformedScript
override bool CanBePerformedScript(IEntity user)
Definition
SCR_EnableDefendersAction.c:25
SCR_EnableDefendersAction::Init
override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
Definition
SCR_EnableDefendersAction.c:88
SCR_EnableDefendersAction::m_DefenderSpawner
SCR_DefenderSpawnerComponent m_DefenderSpawner
Definition
SCR_EnableDefendersAction.c:4
SCR_EnableDefendersAction::m_GroupSpawningManager
SCR_SpawnerAIGroupManagerComponent m_GroupSpawningManager
Definition
SCR_EnableDefendersAction.c:5
SCR_EnableDefendersAction::CanBeShownScript
override bool CanBeShownScript(IEntity user)
Definition
SCR_EnableDefendersAction.c:54
SCR_EnableDefendersAction::PerformAction
override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity)
Definition
SCR_EnableDefendersAction.c:8
SCR_Faction
Definition
SCR_Faction.c:6
SCR_Faction::GetRanks
SCR_RankContainer GetRanks()
Definition
SCR_Faction.c:199
SCR_PlayerController
Definition
SCR_PlayerController.c:31
SCR_RankContainer::GetRankName
string GetRankName(SCR_ECharacterRank rankID)
Definition
SCR_RankContainer.c:213
ScriptedUserAction
Definition
ScriptedUserAction.c:13
Print
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
LogLevel
Enum with severity of the logging message.
Definition
LogLevel.c:14
GetPlayerController
proto external PlayerController GetPlayerController()
Definition
SCR_PlayerDeployMenuHandlerComponent.c:307
scripts
Game
UserActions
SCR_EnableDefendersAction.c
Generated by
1.17.0