Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c
Go to the documentation of this file.
4
5class SCR_ResupplyCampaignMilitaryBaseTaskEntity : SCR_CampaignMilitaryBaseTaskEntity
6{
7 protected SCR_ResourceComponent m_BaseResourceComponent;
9
10 //------------------------------------------------------------------------------------------------
11 override protected void OnTargetBaseCaptured(SCR_MilitaryBaseComponent base, Faction faction)
12 {
14 return;
15
17 DeleteTask();
18 }
19
20 //------------------------------------------------------------------------------------------------
21 override void SetMilitaryBaseCallSign(int callSign)
22 {
23 super.SetMilitaryBaseCallSign(callSign);
24
25 if (!m_MilitaryBase)
26 return;
27
28 SCR_ResourceConsumer consumerComponent = m_MilitaryBase.GetResourceConsumer();
29 if (!consumerComponent)
30 return;
31
32 consumerComponent.GetOnResourcesChanged().Insert(OnResourcesChanged);
33 m_MilitaryBase.GetOnSupplyLimitChanged().Insert(OnSupplyLimitChanged);
34
35 SCR_GameModeCampaign campaign = SCR_GameModeCampaign.GetInstance();
36 if (!campaign || !campaign.IsMaster())
37 return;
38
39 campaign.GetOnGameEnd().Insert(OnGameEnd);
40
41 SCR_CampaignMilitaryBaseManager baseManager = campaign.GetBaseManager();
42 if (!baseManager)
43 return;
44
45 baseManager.GetOnSignalChanged().Insert(OnSignalChanged);
46 }
47
48 //------------------------------------------------------------------------------------------------
50 {
51 if (!m_MilitaryBase || campaignBase != m_MilitaryBase)
52 return;
53
54 SCR_CampaignFaction faction = campaignBase.GetCampaignFaction();
55 if (m_MilitaryBase.IsHQRadioTrafficPossible(faction, SCR_ERadioCoverageStatus.BOTH_WAYS))
56 return;
57
59 DeleteTask();
60 }
61
62 //------------------------------------------------------------------------------------------------
63 protected void OnGameEnd()
64 {
66 }
67
68 //------------------------------------------------------------------------------------------------
69 protected void OnResourcesChanged(SCR_ResourceInteractor interactor, float previousSupplies)
70 {
72 }
73
74 //------------------------------------------------------------------------------------------------
75 protected void OnSupplyLimitChanged(SCR_CampaignMilitaryBaseComponent campaignBase, float supplyLimit)
76 {
78 }
79
80 //------------------------------------------------------------------------------------------------
81 protected void TryFinishTask()
82 {
83 if (!m_MilitaryBase)
84 return;
85
86 if (m_MilitaryBase.IsResupplyNeeded())
87 return;
88
90 DeleteTask();
91 }
92
93 //------------------------------------------------------------------------------------------------
94 protected void TryFinishTaskDelayed()
95 {
96 // Delay to avoid Recursive call of Invoke from ResourceConsumer
97 GetGame().GetCallqueue().Call(TryFinishTask);
98 }
99
100 //------------------------------------------------------------------------------------------------
101 protected void UnregisterEvents()
102 {
103 SCR_GameModeCampaign campaign = SCR_GameModeCampaign.GetInstance();
104 if (campaign && campaign.IsMaster())
105 {
106 campaign.GetOnGameEnd().Remove(OnGameEnd);
107
108 SCR_CampaignMilitaryBaseManager baseManager = campaign.GetBaseManager();
109 if (!baseManager)
110 {
111 baseManager.GetOnSignalChanged().Remove(OnSignalChanged);
112 }
113 }
114
115 if (!m_MilitaryBase)
116 return;
117
118 SCR_ResourceConsumer consumerComponent = m_MilitaryBase.GetResourceConsumer();
119 if (!consumerComponent)
120 return;
121
122 consumerComponent.GetOnResourcesChanged().Remove(OnResourcesChanged);
123 m_MilitaryBase.GetOnSupplyLimitChanged().Remove(OnSupplyLimitChanged);
124 }
125
126 //------------------------------------------------------------------------------------------------
131}
ArmaReforgerScripted GetGame()
Definition game.c:1398
override void OnGameEnd()
Called on all machines when the world ends.
void DeleteTask()
override void SetTaskState(SCR_ETaskState state)
void OnTargetBaseCaptured(SCR_MilitaryBaseComponent base, Faction faction)
void OnSupplyLimitChanged(SCR_CampaignMilitaryBaseComponent campaignBase, float supplyLimit)
void SetMilitaryBaseCallSign(int callSign)
SCR_CampaignMilitaryBaseComponent m_MilitaryBase
void SCR_GameModeCampaign(IEntitySource src, IEntity parent)
SCR_ResupplyCampaignMilitaryBaseTaskEntityClass m_BaseResourceComponent
void OnSignalChanged(SCR_CampaignMilitaryBaseComponent campaignBase)
SCR_ResourceGenerator m_BaseResourceGenerator
void ~SCR_ResupplyCampaignMilitaryBaseTaskEntity()
void OnResourcesChanged(SCR_ResourceInteractor interactor, float previousSupplies)
SCR_ETaskState
Definition SCR_Task.c:3
SCR_CampaignFaction GetCampaignFaction()
Returns the owning faction.
OnSignalChangedInvoker GetOnSignalChanged()
Triggered when a base's radio coverage changes.