Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_DismantleCampaignMilitaryBaseTaskEntity.c
Go to the documentation of this file.
4
5class SCR_DismantleCampaignMilitaryBaseTaskEntity : SCR_CampaignMilitaryBaseTaskEntity
6{
7 protected RplComponent m_RplComponent;
8
9 //------------------------------------------------------------------------------------------------
10 override protected void OnTargetBaseCaptured(SCR_MilitaryBaseComponent base, Faction faction)
11 {
13 return;
14
15 m_TaskSystem.SetTaskState(this, SCR_ETaskState.CANCELLED);
16 DeleteTask();
17 }
18
19 //------------------------------------------------------------------------------------------------
20 override protected void OnBaseUnregistered(SCR_MilitaryBaseComponent base)
21 {
22 if (SCR_Global.IsEditMode(this) || !GetGame().GetGameMode())
23 return;
24
25 // base is removed - cancel task
26 SCR_MilitaryBaseComponent targetBase = GetMilitaryBase();
27 if (!base || base != targetBase)
28 return;
29
30 m_TaskSystem.SetTaskState(this, SCR_ETaskState.COMPLETED);
31 DeleteTask();
32 }
33
34 //------------------------------------------------------------------------------------------------
36 {
37 if (task != this)
38 return;
39
40 if (newState == SCR_ETaskState.COMPLETED)
41 {
43 }
44 }
45
46 //------------------------------------------------------------------------------------------------
47 protected void AddXPReward()
48 {
49 SCR_XPHandlerComponent comp = SCR_XPHandlerComponent.Cast(GetGame().GetGameMode().FindComponent(SCR_XPHandlerComponent));
50 if (!comp || !m_RplComponent || m_RplComponent.IsProxy())
51 return;
52
53 // add XP to all players in the assigned group
54 array<int> assigneePlayerIDs = GetTaskAssigneePlayerIDs();
55 if (!assigneePlayerIDs)
56 return;
57
58 foreach (int playerID : assigneePlayerIDs)
59 {
60 comp.AwardXP(playerID, SCR_EXPRewards.DISMANTLE_BASE_COMPLETED, 1.0, false);
61 }
62 }
63
64 //------------------------------------------------------------------------------------------------
65 override void EOnInit(IEntity owner)
66 {
67 super.EOnInit(owner);
68
69 m_RplComponent = RplComponent.Cast(FindComponent(RplComponent));
70 if (!m_RplComponent || m_RplComponent.IsProxy())
71 return;
72
73 GetOnTaskStateChanged().Insert(OnTaskStateChanged);
74 }
75
76 //------------------------------------------------------------------------------------------------
78 {
79 GetOnTaskStateChanged().Remove(OnTaskStateChanged);
80 }
81}
ArmaReforgerScripted GetGame()
Definition game.c:1398
void DeleteTask()
SCR_BaseGameMode GetGameMode()
void OnTargetBaseCaptured(SCR_MilitaryBaseComponent base, Faction faction)
RplComponent m_RplComponent
void OnTaskStateChanged(SCR_Task task, SCR_ETaskState newState)
SCR_CampaignMilitaryBaseComponent m_MilitaryBase
SCR_CampaignMilitaryBaseComponent GetMilitaryBase()
void AddXPReward()
void ~SCR_DismantleCampaignMilitaryBaseTaskEntity()
void OnBaseUnregistered(notnull SCR_MilitaryBaseComponent base)
array< int > GetTaskAssigneePlayerIDs()
Definition SCR_Task.c:458
void SCR_Task(IEntitySource src, IEntity parent)
Definition SCR_Task.c:1938
SCR_ETaskState
Definition SCR_Task.c:3
SCR_TaskSystem m_TaskSystem
static bool IsEditMode()
Definition Functions.c:1566
override void EOnInit(IEntity owner)