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_CampaignMilitaryBaseTaskEntity.c
Go to the documentation of this file.
1
void
TaskMilitaryBaseCallsignInvokerDelegate
(SCR_CampaignMilitaryBaseTaskEntity
task
,
int
callsign);
2
typedef
func
TaskMilitaryBaseCallsignInvokerDelegate
;
3
typedef
ScriptInvokerBase<TaskMilitaryBaseCallsignInvokerDelegate>
SCR_TaskMilitaryBaseCallsignInvoker
;
4
5
class
SCR_CampaignMilitaryBaseTaskEntityClass
:
SCR_TaskClass
6
{
7
}
8
9
class
SCR_CampaignMilitaryBaseTaskEntity :
SCR_Task
10
{
11
protected
SCR_CampaignMilitaryBaseTaskData
m_MilitaryBaseTaskData
;
12
protected
SCR_CampaignMilitaryBaseComponent
m_MilitaryBase
;
13
protected
ref
SCR_TaskMilitaryBaseCallsignInvoker
m_OnMilitaryBaseCallsignAssigned
;
14
15
//------------------------------------------------------------------------------------------------
16
SCR_CampaignMilitaryBaseComponent
GetMilitaryBase
()
17
{
18
return
m_MilitaryBase
;
19
}
20
21
SCR_TaskMilitaryBaseCallsignInvoker
GetOnMilitaryBaseCallsignAssigned
()
22
{
23
if
(!
m_OnMilitaryBaseCallsignAssigned
)
24
m_OnMilitaryBaseCallsignAssigned
=
new
SCR_TaskMilitaryBaseCallsignInvoker
();
25
26
return
m_OnMilitaryBaseCallsignAssigned
;
27
}
28
29
//------------------------------------------------------------------------------------------------
30
override
void
SetTaskState
(
SCR_ETaskState
state)
31
{
32
SCR_XPHandlerComponent comp = SCR_XPHandlerComponent.Cast(
GetGame
().
GetGameMode
().FindComponent(SCR_XPHandlerComponent));
33
34
// Award XP
35
if
(comp &&
m_MilitaryBase
&& state ==
SCR_ETaskState
.COMPLETED)
36
AwardXP
(comp);
37
38
super.SetTaskState(state);
39
}
40
41
//------------------------------------------------------------------------------------------------
43
protected
void
AwardXP
(notnull SCR_XPHandlerComponent handlerXP);
44
45
//------------------------------------------------------------------------------------------------
46
void
SetMilitaryBaseCallSign
(
int
callSign)
47
{
48
if
(callSign == SCR_MilitaryBaseComponent.INVALID_BASE_CALLSIGN)
49
return
;
50
51
RpcDo_SetMilitaryBaseCallSign
(callSign);
52
Rpc(
RpcDo_SetMilitaryBaseCallSign
, callSign);
53
54
if
(!
m_MilitaryBase
)
55
return
;
56
57
SCR_MilitaryBaseSystem
baseSystem =
SCR_MilitaryBaseSystem
.
GetInstance
();
58
if
(!baseSystem)
59
return
;
60
61
baseSystem.
GetOnBaseFactionChanged
().Insert(
OnTargetBaseCaptured
);
62
baseSystem.
GetOnBaseUnregistered
().Insert(
OnBaseUnregistered
);
63
}
64
65
//------------------------------------------------------------------------------------------------
66
[
RplRpc
(
RplChannel
.Reliable,
RplRcver
.Broadcast)]
67
protected
void
RpcDo_SetMilitaryBaseCallSign
(
int
callSign)
68
{
69
if
(!
m_MilitaryBaseTaskData
)
70
return
;
71
72
m_MilitaryBaseTaskData
.m_iBaseCallSign = callSign;
73
74
AssignMilitaryBaseByCallsign
(callSign);
75
}
76
77
//------------------------------------------------------------------------------------------------
78
void
AssignMilitaryBaseByCallsign
(
int
callsign)
79
{
80
SCR_GameModeCampaign
campaign =
SCR_GameModeCampaign
.GetInstance();
81
if
(!campaign)
82
return
;
83
84
SCR_CampaignMilitaryBaseManager
baseManager = campaign.GetBaseManager();
85
if
(!baseManager)
86
return
;
87
88
m_MilitaryBase
= baseManager.
FindBaseByCallsign
(callsign);
89
90
if
(
m_OnDisplayDataChanged
)
91
m_OnDisplayDataChanged
.Invoke();
92
93
if
(
m_OnMilitaryBaseCallsignAssigned
)
94
m_OnMilitaryBaseCallsignAssigned
.Invoke(
this
, callsign);
95
}
96
97
//------------------------------------------------------------------------------------------------
98
protected
void
OnTargetBaseCaptured
(SCR_MilitaryBaseComponent
base
,
Faction
faction)
99
{
100
if
(!
m_MilitaryBase
||
base
!=
m_MilitaryBase
|| !faction || !
GetOwnerFactionKeys
().
Contains
(faction.GetFactionKey()))
101
return
;
102
103
SetTaskState
(
SCR_ETaskState
.COMPLETED);
104
DeleteTask
();
105
}
106
107
//------------------------------------------------------------------------------------------------
108
protected
void
OnBaseUnregistered
(SCR_MilitaryBaseComponent
base
)
109
{
110
if
(
SCR_Global
.
IsEditMode
(
this
) || !
GetGame
().
GetGameMode
())
111
return
;
112
113
// base is removed - cancel task
114
SCR_MilitaryBaseComponent targetBase =
GetMilitaryBase
();
115
if
(!
base
||
base
!= targetBase)
116
return
;
117
118
m_TaskSystem
.SetTaskState(
this
,
SCR_ETaskState
.CANCELLED);
119
DeleteTask
();
120
}
121
122
//------------------------------------------------------------------------------------------------
123
protected
void
DeleteTask
()
124
{
125
if
(!
m_TaskSystem
)
126
return
;
127
128
m_TaskSystem
.DeleteTask(
this
);
129
}
130
131
//------------------------------------------------------------------------------------------------
132
override
bool
RplSave
(ScriptBitWriter writer)
133
{
134
if
(!super.RplSave(writer))
135
return
false
;
136
137
if
(!
m_MilitaryBaseTaskData
)
138
writer.WriteInt(SCR_MilitaryBaseComponent.INVALID_BASE_CALLSIGN);
139
else
140
writer.WriteInt(
m_MilitaryBaseTaskData
.m_iBaseCallSign);
141
142
return
true
;
143
}
144
145
//------------------------------------------------------------------------------------------------
146
override
bool
RplLoad
(
ScriptBitReader
reader)
147
{
148
if
(!super.RplLoad(reader))
149
return
false
;
150
151
if
(!
m_MilitaryBaseTaskData
)
152
m_MilitaryBaseTaskData
=
SCR_CampaignMilitaryBaseTaskData
.Cast(
m_TaskData
);
153
154
int
baseCallSign;
155
reader.ReadInt(baseCallSign);
156
RpcDo_SetMilitaryBaseCallSign
(baseCallSign);
157
158
return
true
;
159
}
160
161
//------------------------------------------------------------------------------------------------
162
override
protected
void
InitializeData
()
163
{
164
if
(!
m_TaskData
)
165
m_TaskData
=
new
SCR_CampaignMilitaryBaseTaskData
();
166
167
super.InitializeData();
168
169
m_MilitaryBaseTaskData
=
SCR_CampaignMilitaryBaseTaskData
.Cast(
m_TaskData
);
170
}
171
172
//------------------------------------------------------------------------------------------------
173
void
~SCR_CampaignMilitaryBaseTaskEntity
()
174
{
175
SCR_MilitaryBaseSystem
militaryBaseSystem =
SCR_MilitaryBaseSystem
.
GetInstance
();
176
if
(militaryBaseSystem)
177
militaryBaseSystem.
GetOnBaseFactionChanged
().Remove(
OnTargetBaseCaptured
);
178
179
SCR_MilitaryBaseSystem
baseManager =
SCR_MilitaryBaseSystem
.
GetInstance
();
180
if
(baseManager)
181
baseManager.
GetOnBaseUnregistered
().Remove(
OnBaseUnregistered
);
182
}
183
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
RplLoad
override bool RplLoad(ScriptBitReader reader)
Definition
SCR_AIGroupInfoComponent.c:149
func
func
Definition
SCR_AIThreatSystem.c:6
DeleteTask
void DeleteTask()
Definition
SCR_AttackTaskEntity.c:298
SetTaskState
override void SetTaskState(SCR_ETaskState state)
Definition
SCR_AttackTaskEntity.c:290
GetGameMode
SCR_BaseGameMode GetGameMode()
Definition
SCR_BaseGameModeComponent.c:15
InitializeData
void InitializeData()
Definition
SCR_BaseRequestedTaskEntity.c:166
OnTargetBaseCaptured
void OnTargetBaseCaptured(SCR_MilitaryBaseComponent base, Faction faction)
Definition
SCR_BuildingCampaignMilitaryBaseTaskEntity.c:40
RplSave
override bool RplSave(ScriptBitWriter writer)
Definition
SCR_CampaignBuildingCompositionComponent.c:549
SCR_TaskMilitaryBaseCallsignInvoker
ScriptInvokerBase< TaskMilitaryBaseCallsignInvokerDelegate > SCR_TaskMilitaryBaseCallsignInvoker
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:3
SetMilitaryBaseCallSign
void SetMilitaryBaseCallSign(int callSign)
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:46
~SCR_CampaignMilitaryBaseTaskEntity
void ~SCR_CampaignMilitaryBaseTaskEntity()
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:173
m_MilitaryBase
SCR_CampaignMilitaryBaseComponent m_MilitaryBase
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:12
RpcDo_SetMilitaryBaseCallSign
void RpcDo_SetMilitaryBaseCallSign(int callSign)
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:67
TaskMilitaryBaseCallsignInvokerDelegate
func TaskMilitaryBaseCallsignInvokerDelegate
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:2
AssignMilitaryBaseByCallsign
void AssignMilitaryBaseByCallsign(int callsign)
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:78
GetOnMilitaryBaseCallsignAssigned
SCR_TaskMilitaryBaseCallsignInvoker GetOnMilitaryBaseCallsignAssigned()
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:21
GetMilitaryBase
SCR_CampaignMilitaryBaseComponent GetMilitaryBase()
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:16
m_OnMilitaryBaseCallsignAssigned
ref SCR_TaskMilitaryBaseCallsignInvoker m_OnMilitaryBaseCallsignAssigned
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:13
m_MilitaryBaseTaskData
SCR_CampaignMilitaryBaseTaskEntityClass m_MilitaryBaseTaskData
AwardXP
bool AwardXP()
Definition
SCR_CampaignSuppliesComponent.c:217
SCR_GameModeCampaign
void SCR_GameModeCampaign(IEntitySource src, IEntity parent)
Definition
SCR_GameModeCampaign.c:1812
base
around base
Definition
SCR_HoldCampaignMilitaryBaseTaskEntity.c:9
OnBaseUnregistered
void OnBaseUnregistered(notnull SCR_MilitaryBaseComponent base)
Definition
SCR_ServicePointComponent.c:135
SCR_Task
void SCR_Task(IEntitySource src, IEntity parent)
Definition
SCR_Task.c:1938
m_TaskData
ref SCR_TaskData m_TaskData
Definition
SCR_Task.c:110
GetOwnerFactionKeys
array< string > GetOwnerFactionKeys()
Definition
SCR_Task.c:951
SCR_ETaskState
SCR_ETaskState
Definition
SCR_Task.c:3
m_OnDisplayDataChanged
ref ScriptInvokerVoid m_OnDisplayDataChanged
Definition
SCR_Task.c:133
m_TaskSystem
SCR_TaskSystem m_TaskSystem
Definition
SCR_TaskNotificationComponent.c:11
task
from task
Definition
SCR_TaskNotificationConfigs.c:12
Faction
Definition
Faction.c:13
SCR_CampaignMilitaryBaseComponent
Definition
SCR_CampaignMilitaryBaseComponent.c:38
SCR_CampaignMilitaryBaseManager
Created in SCR_GameModeCampaign.
Definition
SCR_CampaignMilitaryBaseManager.c:25
SCR_CampaignMilitaryBaseManager::FindBaseByCallsign
SCR_CampaignMilitaryBaseComponent FindBaseByCallsign(int callsign)
Definition
SCR_CampaignMilitaryBaseManager.c:914
SCR_CampaignMilitaryBaseTaskData
Definition
SCR_CampaignMilitaryBaseTaskData.c:2
SCR_CampaignMilitaryBaseTaskEntityClass
Definition
SCR_CampaignMilitaryBaseTaskEntity.c:6
SCR_Global
Definition
Functions.c:7
SCR_Global::IsEditMode
static bool IsEditMode()
Definition
Functions.c:1566
SCR_MilitaryBaseSystem
Definition
SCR_MilitaryBaseSystem.c:18
SCR_MilitaryBaseSystem::GetOnBaseFactionChanged
OnBaseFactionChangedInvoker GetOnBaseFactionChanged()
Definition
SCR_MilitaryBaseSystem.c:96
SCR_MilitaryBaseSystem::GetInstance
static SCR_MilitaryBaseSystem GetInstance()
Definition
SCR_MilitaryBaseSystem.c:37
SCR_MilitaryBaseSystem::GetOnBaseUnregistered
OnBaseUnregisteredInvoker GetOnBaseUnregistered()
Definition
SCR_MilitaryBaseSystem.c:57
SCR_TaskClass
Definition
SCR_Task.c:75
ScriptBitReader
Definition
EnNetwork.c:199
RplRpc
void RplRpc(RplChannel channel, RplRcver rcver, RplCondition condition=RplCondition.None, string customConditionName="")
Definition
EnNetwork.c:95
RplRcver
RplRcver
Definition
RplRcver.c:59
RplChannel
RplChannel
Communication channel. Reliable is guaranteed to be delivered. Unreliable not.
Definition
RplChannel.c:14
Contains
proto bool Contains(T value)
scripts
Game
Tasks
Campaign
SCR_CampaignMilitaryBaseTaskEntity.c
Generated by
1.17.0