Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_SeizeCampaignMilitaryBaseTask.c
Go to the documentation of this file.
2{
3}
4
5class SCR_SeizeCampaignMilitaryBaseTaskEntity : SCR_CampaignMilitaryBaseTaskEntity
6{
7 //------------------------------------------------------------------------------------------------
8 override void SetMilitaryBaseCallSign(int callSign)
9 {
10 super.SetMilitaryBaseCallSign(callSign);
11
12 if (!m_MilitaryBase)
13 return;
14
15 SCR_GameModeCampaign.GetInstance().GetBaseManager().GetOnSignalChanged().Insert(OnCampaignBaseSignalChanged);
16 }
17
18 //------------------------------------------------------------------------------------------------
19 override void AwardXP(notnull SCR_XPHandlerComponent handlerXP)
20 {
21 array<int> players = GetTaskAssigneePlayerIDs();
22 foreach (int playerId : players)
23 {
24 handlerXP.AwardXP(playerId, SCR_EXPRewards.SEIZE_TASK_COMPLETED, 1, false);
25 }
26 }
27
28 //------------------------------------------------------------------------------------------------
30 {
32 return;
33
34 FactionManager factionManager = GetGame().GetFactionManager();
35 if (!factionManager)
36 return;
37
38 bool hasAnyFactionHQSignal = false;
39 SCR_CampaignFaction campaignFaction;
40 foreach (string factionKey : m_MilitaryBaseTaskData.m_aOwnerFactionKeys)
41 {
42 if (factionKey.IsEmpty())
43 continue;
44
45 campaignFaction = SCR_CampaignFaction.Cast(factionManager.GetFactionByKey(factionKey));
46 if (!campaignFaction)
47 continue;
48
49 if (m_MilitaryBase.IsHQRadioTrafficPossible(campaignFaction))
50 {
51 hasAnyFactionHQSignal = true;
52 break;
53 }
54 }
55
56 if (!hasAnyFactionHQSignal)
57 {
59 DeleteTask();
60 }
61 }
62
63 //------------------------------------------------------------------------------------------------
65 {
66 SCR_GameModeCampaign gameMode = SCR_GameModeCampaign.GetInstance();
67 if (!gameMode)
68 return;
69
70 SCR_CampaignMilitaryBaseManager baseManager = gameMode.GetBaseManager();
71 if (baseManager)
73 }
74}
ArmaReforgerScripted GetGame()
Definition game.c:1398
void DeleteTask()
override void SetTaskState(SCR_ETaskState state)
void SetMilitaryBaseCallSign(int callSign)
SCR_CampaignMilitaryBaseComponent m_MilitaryBase
SCR_CampaignMilitaryBaseTaskEntityClass m_MilitaryBaseTaskData
void SCR_GameModeCampaign(IEntitySource src, IEntity parent)
void OnCampaignBaseSignalChanged(SCR_CampaignMilitaryBaseComponent base)
void ~SCR_SeizeCampaignMilitaryBaseTaskEntity()
array< int > GetTaskAssigneePlayerIDs()
Definition SCR_Task.c:458
SCR_ETaskState
Definition SCR_Task.c:3
OnSignalChangedInvoker GetOnSignalChanged()
Triggered when a base's radio coverage changes.