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_BaseRequestedTaskEntity.c
Go to the documentation of this file.
1
void
TaskRequesterIdInvokerDelegate
(SCR_BaseRequestedTaskEntity
task
,
int
requesterId);
2
typedef
func
TaskRequesterIdInvokerDelegate
;
3
typedef
ScriptInvokerBase<TaskRequesterIdInvokerDelegate>
SCR_TaskRequesterIdInvoker
;
4
5
class
SCR_BaseRequestedTaskEntityClass
:
SCR_TaskClass
6
{
7
}
8
9
class
SCR_BaseRequestedTaskEntity :
SCR_Task
10
{
11
static
const
int
REQUEST_MAX_COUNT
= 2;
12
static
const
int
INVALID_REQUESTER_ID = -1;
13
14
protected
SCR_BaseRequestedTaskData
m_BaseRequestedTaskData
;
15
protected
ref
SCR_TaskRequesterIdInvoker
m_OnRequesterIdChanged
;
16
17
//------------------------------------------------------------------------------------------------
18
SCR_TaskRequesterIdInvoker
GetOnRequesterIdChanged
()
19
{
20
if
(!
m_OnRequesterIdChanged
)
21
m_OnRequesterIdChanged
=
new
SCR_TaskRequesterIdInvoker
();
22
23
return
m_OnRequesterIdChanged
;
24
}
25
26
//------------------------------------------------------------------------------------------------
27
void
SetTaskRequesterId
(
int
groupId)
28
{
29
Rpc(
RpcDo_SetTaskRequesterId
, groupId);
30
RpcDo_SetTaskRequesterId
(groupId);
31
}
32
33
//------------------------------------------------------------------------------------------------
34
[
RplRpc
(
RplChannel
.Reliable,
RplRcver
.Broadcast)]
35
protected
void
RpcDo_SetTaskRequesterId
(
int
groupId)
36
{
37
OnSetRequesterId
(groupId);
38
39
if
(
m_OnDisplayDataChanged
)
40
m_OnDisplayDataChanged
.Invoke();
41
}
42
43
//------------------------------------------------------------------------------------------------
44
protected
void
OnSetRequesterId
(
int
requesterId)
45
{
46
if
(!
m_BaseRequestedTaskData
|| requesterId == INVALID_REQUESTER_ID ||
m_BaseRequestedTaskData
.m_iRequesterId == requesterId)
47
return
;
48
49
m_BaseRequestedTaskData
.m_iRequesterId = requesterId;
50
51
SCR_RequestedTaskUIInfo
taskUIInfo =
SCR_RequestedTaskUIInfo
.Cast(
m_BaseRequestedTaskData
.m_UIInfo);
52
if
(taskUIInfo)
53
taskUIInfo.
SetRequesterGroupId
(requesterId);
54
55
if
(
m_OnRequesterIdChanged
)
56
m_OnRequesterIdChanged
.Invoke(
this
, requesterId);
57
}
58
59
//------------------------------------------------------------------------------------------------
60
override
protected
void
ReadUIInfo
(
ScriptBitReader
reader, out
SCR_TaskUIInfo
info)
61
{
62
super.ReadUIInfo(reader, info);
63
64
array<LocalizedString> nameParams;
65
array<LocalizedString> descParams;
66
info.GetUnformattedName(nameParams);
67
info.GetUnformattedDescription(descParams);
68
69
info =
SCR_RequestedTaskUIInfo
.
CreateRequestedTaskUIInfo
(info.GetName(), nameParams, info.GetDescription(), descParams, info.GetImageSetPath(), info.GetIconSetName());
70
}
71
72
//------------------------------------------------------------------------------------------------
74
bool
CanBeCanceledByLocalPlayer
()
75
{
76
// commander can cancel all requests
77
if
(SCR_FactionCommanderPlayerComponent.IsLocalPlayerCommander())
78
return
true
;
79
80
SCR_PlayerControllerGroupComponent playerControllerGroupComponent = SCR_PlayerControllerGroupComponent.GetLocalPlayerControllerGroupComponent();
81
if
(!playerControllerGroupComponent)
82
return
false
;
83
84
// group leader can't cancel own request if a group is already assigned
85
if
(
m_BaseRequestedTaskData
.m_aAssignees.Count() > 0 ||
86
!
RequestedByLocalPlayerGroup
() ||
87
!playerControllerGroupComponent.IsPlayerLeaderOwnGroup())
88
return
false
;
89
90
return
true
;
91
}
92
93
//------------------------------------------------------------------------------------------------
96
bool
IsPlayerFromRequesterGroup
(
int
playerId)
97
{
98
SCR_GroupsManagerComponent
comp =
SCR_GroupsManagerComponent
.GetInstance();
99
if
(!comp)
100
return
false
;
101
102
SCR_AIGroup
playerGroup = comp.GetPlayerGroup(playerId);
103
if
(!playerGroup)
104
return
false
;
105
106
if
(!
m_BaseRequestedTaskData
)
107
return
false
;
108
109
return
m_BaseRequestedTaskData
.m_iRequesterId == playerGroup.
GetGroupID
();
110
}
111
112
//------------------------------------------------------------------------------------------------
114
bool
RequestedByLocalPlayerGroup
()
115
{
116
return
IsPlayerFromRequesterGroup
(
SCR_PlayerController
.
GetLocalPlayerId
());
117
}
118
119
//------------------------------------------------------------------------------------------------
121
int
GetRequesterId
()
122
{
123
return
m_BaseRequestedTaskData
.m_iRequesterId;
124
}
125
126
//------------------------------------------------------------------------------------------------
127
protected
void
DeleteTask
()
128
{
129
if
(!
m_TaskSystem
)
130
return
;
131
132
m_TaskSystem
.DeleteTask(
this
);
133
}
134
135
//------------------------------------------------------------------------------------------------
136
override
bool
RplSave
(ScriptBitWriter writer)
137
{
138
if
(!super.RplSave(writer))
139
return
false
;
140
141
if
(
m_BaseRequestedTaskData
)
142
writer.WriteInt(
m_BaseRequestedTaskData
.m_iRequesterId);
143
else
144
writer.WriteInt(INVALID_REQUESTER_ID);
145
146
return
true
;
147
}
148
149
//------------------------------------------------------------------------------------------------
150
override
bool
RplLoad
(
ScriptBitReader
reader)
151
{
152
if
(!super.RplLoad(reader))
153
return
false
;
154
155
if
(!
m_BaseRequestedTaskData
)
156
m_BaseRequestedTaskData
=
SCR_BaseRequestedTaskData
.Cast(
m_TaskData
);
157
158
int
requesterId;
159
reader.ReadInt(requesterId);
160
RpcDo_SetTaskRequesterId
(requesterId);
161
162
return
true
;
163
}
164
165
//------------------------------------------------------------------------------------------------
166
override
protected
void
InitializeData
()
167
{
168
if
(!
m_TaskData
)
169
m_TaskData
=
new
SCR_BaseRequestedTaskData
();
170
171
super.InitializeData();
172
173
m_BaseRequestedTaskData
=
SCR_BaseRequestedTaskData
.Cast(
m_TaskData
);
174
}
175
}
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
GetOnRequesterIdChanged
SCR_TaskRequesterIdInvoker GetOnRequesterIdChanged()
Definition
SCR_BaseRequestedTaskEntity.c:18
SCR_TaskRequesterIdInvoker
ScriptInvokerBase< TaskRequesterIdInvokerDelegate > SCR_TaskRequesterIdInvoker
Definition
SCR_BaseRequestedTaskEntity.c:3
TaskRequesterIdInvokerDelegate
func TaskRequesterIdInvokerDelegate
Definition
SCR_BaseRequestedTaskEntity.c:2
InitializeData
void InitializeData()
Definition
SCR_BaseRequestedTaskEntity.c:166
ReadUIInfo
void ReadUIInfo(ScriptBitReader reader, out SCR_TaskUIInfo info)
Definition
SCR_BaseRequestedTaskEntity.c:60
m_BaseRequestedTaskData
SCR_BaseRequestedTaskData m_BaseRequestedTaskData
Definition
SCR_BaseRequestedTaskEntity.c:14
RequestedByLocalPlayerGroup
bool RequestedByLocalPlayerGroup()
Definition
SCR_BaseRequestedTaskEntity.c:114
SetTaskRequesterId
void SetTaskRequesterId(int groupId)
Definition
SCR_BaseRequestedTaskEntity.c:27
RpcDo_SetTaskRequesterId
void RpcDo_SetTaskRequesterId(int groupId)
Definition
SCR_BaseRequestedTaskEntity.c:35
GetRequesterId
int GetRequesterId()
Definition
SCR_BaseRequestedTaskEntity.c:121
REQUEST_MAX_COUNT
SCR_BaseRequestedTaskEntityClass REQUEST_MAX_COUNT
m_OnRequesterIdChanged
ref SCR_TaskRequesterIdInvoker m_OnRequesterIdChanged
Definition
SCR_BaseRequestedTaskEntity.c:15
OnSetRequesterId
void OnSetRequesterId(int requesterId)
Definition
SCR_BaseRequestedTaskEntity.c:44
CanBeCanceledByLocalPlayer
bool CanBeCanceledByLocalPlayer()
Definition
SCR_BaseRequestedTaskEntity.c:74
IsPlayerFromRequesterGroup
bool IsPlayerFromRequesterGroup(int playerId)
Definition
SCR_BaseRequestedTaskEntity.c:96
RplSave
override bool RplSave(ScriptBitWriter writer)
Definition
SCR_CampaignBuildingCompositionComponent.c:549
SCR_GroupsManagerComponent
void SCR_GroupsManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition
SCR_GroupsManagerComponent.c:1747
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
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
SCR_AIGroup
Definition
SCR_AIGroup.c:75
SCR_AIGroup::GetGroupID
int GetGroupID()
Definition
SCR_AIGroup.c:935
SCR_BaseRequestedTaskData
Definition
SCR_BaseRequestedTaskData.c:2
SCR_BaseRequestedTaskEntityClass
Definition
SCR_BaseRequestedTaskEntity.c:6
SCR_PlayerController
Definition
SCR_PlayerController.c:31
SCR_PlayerController::GetLocalPlayerId
static int GetLocalPlayerId()
Returns either a valid ID of local player or 0.
Definition
SCR_PlayerController.c:481
SCR_RequestedTaskUIInfo
Definition
SCR_RequestedTaskUIInfo.c:3
SCR_RequestedTaskUIInfo::CreateRequestedTaskUIInfo
static SCR_RequestedTaskUIInfo CreateRequestedTaskUIInfo(LocalizedString name, array< LocalizedString > nameParams, LocalizedString description, array< LocalizedString > descParams, ResourceName icon=ResourceName.Empty, string iconSetName=string.Empty, int requesterGroupId=0)
Definition
SCR_RequestedTaskUIInfo.c:50
SCR_RequestedTaskUIInfo::SetRequesterGroupId
void SetRequesterGroupId(int groupId)
Definition
SCR_RequestedTaskUIInfo.c:7
SCR_TaskClass
Definition
SCR_Task.c:75
SCR_TaskUIInfo
Definition
SCR_TaskUIInfo.c:3
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
scripts
Game
Tasks
Campaign
SCR_BaseRequestedTaskEntity.c
Generated by
1.17.0