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_ResupplyCampaignMilitaryBaseTaskEntity.c
Go to the documentation of this file.
1
class
SCR_ResupplyCampaignMilitaryBaseTaskEntityClass
:
SCR_CampaignMilitaryBaseTaskEntityClass
2
{
3
}
4
5
class
SCR_ResupplyCampaignMilitaryBaseTaskEntity : SCR_CampaignMilitaryBaseTaskEntity
6
{
7
protected
SCR_ResourceComponent
m_BaseResourceComponent
;
8
protected
SCR_ResourceGenerator
m_BaseResourceGenerator
;
9
10
//------------------------------------------------------------------------------------------------
11
override
protected
void
OnTargetBaseCaptured
(SCR_MilitaryBaseComponent
base
,
Faction
faction)
12
{
13
if
(!
m_MilitaryBase
||
base
!=
m_MilitaryBase
)
14
return
;
15
16
SetTaskState
(
SCR_ETaskState
.CANCELLED);
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
//------------------------------------------------------------------------------------------------
49
protected
void
OnSignalChanged
(
SCR_CampaignMilitaryBaseComponent
campaignBase)
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
58
SetTaskState
(
SCR_ETaskState
.CANCELLED);
59
DeleteTask
();
60
}
61
62
//------------------------------------------------------------------------------------------------
63
protected
void
OnGameEnd
()
64
{
65
UnregisterEvents
();
66
}
67
68
//------------------------------------------------------------------------------------------------
69
protected
void
OnResourcesChanged
(SCR_ResourceInteractor interactor,
float
previousSupplies)
70
{
71
TryFinishTaskDelayed
();
72
}
73
74
//------------------------------------------------------------------------------------------------
75
protected
void
OnSupplyLimitChanged
(
SCR_CampaignMilitaryBaseComponent
campaignBase,
float
supplyLimit)
76
{
77
TryFinishTaskDelayed
();
78
}
79
80
//------------------------------------------------------------------------------------------------
81
protected
void
TryFinishTask
()
82
{
83
if
(!
m_MilitaryBase
)
84
return
;
85
86
if
(
m_MilitaryBase
.IsResupplyNeeded())
87
return
;
88
89
SetTaskState
(
SCR_ETaskState
.COMPLETED);
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
//------------------------------------------------------------------------------------------------
127
void
~SCR_ResupplyCampaignMilitaryBaseTaskEntity
()
128
{
129
UnregisterEvents
();
130
}
131
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
OnGameEnd
override void OnGameEnd()
Called on all machines when the world ends.
Definition
SCR_AnalyticsDataCollectionComponent.c:65
DeleteTask
void DeleteTask()
Definition
SCR_AttackTaskEntity.c:298
SetTaskState
override void SetTaskState(SCR_ETaskState state)
Definition
SCR_AttackTaskEntity.c:290
OnTargetBaseCaptured
void OnTargetBaseCaptured(SCR_MilitaryBaseComponent base, Faction faction)
Definition
SCR_BuildingCampaignMilitaryBaseTaskEntity.c:40
OnSupplyLimitChanged
void OnSupplyLimitChanged(SCR_CampaignMilitaryBaseComponent campaignBase, float supplyLimit)
Definition
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c:75
SetMilitaryBaseCallSign
void SetMilitaryBaseCallSign(int callSign)
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:46
m_MilitaryBase
SCR_CampaignMilitaryBaseComponent m_MilitaryBase
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:12
SCR_GameModeCampaign
void SCR_GameModeCampaign(IEntitySource src, IEntity parent)
Definition
SCR_GameModeCampaign.c:1812
base
around base
Definition
SCR_HoldCampaignMilitaryBaseTaskEntity.c:9
m_BaseResourceComponent
SCR_ResupplyCampaignMilitaryBaseTaskEntityClass m_BaseResourceComponent
OnSignalChanged
void OnSignalChanged(SCR_CampaignMilitaryBaseComponent campaignBase)
Definition
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c:49
TryFinishTaskDelayed
void TryFinishTaskDelayed()
Definition
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c:94
TryFinishTask
void TryFinishTask()
Definition
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c:81
m_BaseResourceGenerator
SCR_ResourceGenerator m_BaseResourceGenerator
Definition
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c:8
~SCR_ResupplyCampaignMilitaryBaseTaskEntity
void ~SCR_ResupplyCampaignMilitaryBaseTaskEntity()
Definition
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c:127
OnResourcesChanged
void OnResourcesChanged(SCR_ResourceInteractor interactor, float previousSupplies)
Definition
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c:69
UnregisterEvents
void UnregisterEvents()
Definition
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c:101
SCR_ETaskState
SCR_ETaskState
Definition
SCR_Task.c:3
Faction
Definition
Faction.c:13
SCR_CampaignFaction
Definition
SCR_CampaignFaction.c:2
SCR_CampaignMilitaryBaseComponent
Definition
SCR_CampaignMilitaryBaseComponent.c:38
SCR_CampaignMilitaryBaseComponent::GetCampaignFaction
SCR_CampaignFaction GetCampaignFaction()
Returns the owning faction.
Definition
SCR_CampaignMilitaryBaseComponent.c:2183
SCR_CampaignMilitaryBaseManager
Created in SCR_GameModeCampaign.
Definition
SCR_CampaignMilitaryBaseManager.c:25
SCR_CampaignMilitaryBaseManager::GetOnSignalChanged
OnSignalChangedInvoker GetOnSignalChanged()
Triggered when a base's radio coverage changes.
Definition
SCR_CampaignMilitaryBaseManager.c:258
SCR_CampaignMilitaryBaseTaskEntityClass
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:6
SCR_ResourceGenerator
Definition
SCR_ResourceGenerator.c:80
SCR_ResupplyCampaignMilitaryBaseTaskEntityClass
Definition
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c:2
scripts
Game
Tasks
Campaign
SCR_ResupplyCampaignMilitaryBaseTaskEntity.c
Generated by
1.17.0