Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_EstablishBaseRequestedTaskEntity.c
Go to the documentation of this file.
4
5class SCR_EstablishBaseRequestedTaskEntity : SCR_BaseRequestedTaskEntity
6{
8
9 //------------------------------------------------------------------------------------------------
10 protected void OnGroupTaskSet(SCR_Task task, int byPlayerID)
11 {
13 }
14
15 //------------------------------------------------------------------------------------------------
17 {
18 SCR_CampaignFactionCommanderHandlerComponent handlerComponent = SCR_CampaignFactionCommanderHandlerComponent.Cast(SCR_FactionCommanderHandlerComponent.GetInstance());
19 if (!handlerComponent)
20 return;
21
22 int threshold = handlerComponent.GetBaseMinDistance(SCR_ECampaignBaseType.BASE);
23
24 SCR_EstablishBaseTaskEntity establishTask = SCR_EstablishBaseTaskEntity.Cast(task);
25 if (!establishTask)
26 return;
27
28 bool isAnyFactionMatch = false;
29 foreach (string factionKey : m_TaskData.m_aOwnerFactionKeys)
30 {
31 if (factionKey.IsEmpty())
32 continue;
33
34 if (establishTask.GetTaskData().m_aOwnerFactionKeys.Contains(factionKey))
35 {
36 isAnyFactionMatch = true;
37 break;
38 }
39 }
40
41 if (!isAnyFactionMatch)
42 return;
43
44 if (vector.DistanceSqXZ(establishTask.GetOrigin(), GetOrigin()) > threshold * threshold)
45 return;
46
47 // clear establish requests in range
49 DeleteTask();
50 }
51
52 //------------------------------------------------------------------------------------------------
53 override void EOnInit(IEntity owner)
54 {
55 super.EOnInit(owner);
56
57 RplComponent rpl = RplComponent.Cast(owner.FindComponent(RplComponent));
58 if (!rpl || rpl.IsProxy())
59 return;
60
62
64 m_GroupTaskManager.GetOnGroupTaskSet().Insert(OnGroupTaskSet);
65 }
66
67 //------------------------------------------------------------------------------------------------
69 {
70 if (!m_TaskSystem)
71 return;
72
74 m_GroupTaskManager.GetOnGroupTaskSet().Remove(OnGroupTaskSet);
75 }
76}
vector GetOrigin()
void DeleteTask()
override void SetTaskState(SCR_ETaskState state)
void VerifyTaskExistence(SCR_Task task)
void OnGroupTaskSet(SCR_Task task, int byPlayerID)
void ~SCR_EstablishBaseRequestedTaskEntity()
SCR_GroupTaskManagerComponent m_GroupTaskManager
void SCR_GroupTaskManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
void SCR_Task(IEntitySource src, IEntity parent)
Definition SCR_Task.c:1938
ref SCR_TaskData m_TaskData
Definition SCR_Task.c:110
SCR_ETaskState
Definition SCR_Task.c:3
SCR_TaskSystem m_TaskSystem
proto external Managed FindComponent(typename typeName)
override void EOnInit(IEntity owner)