Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_AnalyticsDataCollectionMilitaryBaseEventsModule.c
Go to the documentation of this file.
3{
5
6 //------------------------------------------------------------------------------------------------
16
17 //------------------------------------------------------------------------------------------------
27
28 //------------------------------------------------------------------------------------------------
33 protected void OnBaseFactionChanged(notnull SCR_CampaignMilitaryBaseComponent base, Faction previousFaction, Faction currentFaction)
34 {
36 {
37 if(base == baseInCreation)
38 {
39 GetGame().GetCallqueue().Remove(OnBaseCreatedAsFOB);
40 OnBaseCreatedAsFOB(base, currentFaction);
41 return;
42 }
43 }
44
45 SCR_SessionDataEvent sessionEvent = SetSessionEventBaseInfoWhenOffensive(base, previousFaction, currentFaction);
46 if (!sessionEvent)
47 return;
48
49 //Send event of SessionBaseCaptured
50 GetGame().GetStatsApi().SessionBaseCaptured(sessionEvent);
51 }
52
53 //------------------------------------------------------------------------------------------------
58 protected void OnBaseUnderAttack(notnull SCR_CampaignMilitaryBaseComponent base, Faction defendingFaction, Faction attackingFaction)
59 {
60 SCR_SessionDataEvent sessionEvent = SetSessionEventBaseInfoWhenOffensive(base, defendingFaction, attackingFaction);
61 if (!sessionEvent)
62 return;
63
64 //Send event of SessionBaseAttacked
65 GetGame().GetStatsApi().SessionBaseAttacked(sessionEvent);
66 }
67
68 //------------------------------------------------------------------------------------------------
72 protected void HandleBaseCreation(notnull SCR_CampaignMilitaryBaseComponent base, Faction establishingFaction)
73 {
75 GetGame().GetCallqueue().CallLater(OnBaseCreatedAsFOB, 1000, false, base, establishingFaction);
76 }
77
78 //------------------------------------------------------------------------------------------------
82 protected void OnBaseCreatedAsFOB(notnull SCR_CampaignMilitaryBaseComponent base, Faction establishingFaction)
83 {
85 baseInCreation = null;
86
88 if (!sessionEvent)
89 return;
90
91 //Send event of SessionBaseAttacked
92 GetGame().GetStatsApi().CreateSessionEvent(sessionEvent, "baseCreated");
93 }
94
95 //------------------------------------------------------------------------------------------------
99 protected void OnBaseDisassembledAsFOB(notnull SCR_CampaignMilitaryBaseComponent base, Faction establishingFaction)
100 {
102 if (!sessionEvent)
103 return;
104
105 //Send event of SessionBaseAttacked
106 GetGame().GetStatsApi().CreateSessionEvent(sessionEvent, "baseDisassembled");
107 }
108
109 //------------------------------------------------------------------------------------------------
111 {
112 if (!base)
113 return null;
114
116 if (!sessionEvent)
117 return null;
118
119 sessionEvent.name_base = "FoB";
120 sessionEvent.name_faction_base_def = "";
121 sessionEvent.name_faction_base_att = "";
122 if (establishingFaction)
123 sessionEvent.name_faction_base_establishing = establishingFaction.GetFactionKey();
124 else
125 sessionEvent.name_faction_base_establishing = "Unknown faction";
126
127 vector basePosition;
128
129 if (base.GetOwner())
130 basePosition = base.GetOwner().GetOrigin();
131 else
132 basePosition = vector.Zero;
133
134 sessionEvent.base_position_x = basePosition[0];
135 sessionEvent.base_position_y = basePosition[1];
136 sessionEvent.base_position_z = basePosition[2];
137
138 return sessionEvent;
139 }
140
142 {
143 if (!base || !defendingFaction || !attackingFaction)
144 return null;
145
147 if (!sessionEvent)
148 return null;
149
150 sessionEvent.name_base = base.GetBaseName();
151 sessionEvent.name_faction_base_def = defendingFaction.GetFactionKey();
152 sessionEvent.name_faction_base_att = attackingFaction.GetFactionKey();
153 sessionEvent.name_faction_base_establishing = "";
154
155 vector basePosition = base.GetOwner().GetOrigin();
156 sessionEvent.base_position_x = basePosition[0];
157 sessionEvent.base_position_y = basePosition[1];
158 sessionEvent.base_position_z = basePosition[2];
159
160 return sessionEvent;
161 }
162
163 #ifdef ENABLE_DIAG
164 //------------------------------------------------------------------------------------------------
165 override void DrawContent()
166 {
167 if (!m_bIsEnabled)
168 {
169 DbgUI.Text("Module disabled!");
170 return;
171 }
172
173 DbgUI.Text("This module does not save any data.");
174 }
175 #endif
176
177 //------------------------------------------------------------------------------------------------
182}
ArmaReforgerScripted GetGame()
Definition game.c:1398
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
Definition DbgUI.c:66
SCR_SessionDataEvent SetSessionEventBaseInfoWhenOffensive(notnull SCR_CampaignMilitaryBaseComponent base, Faction defendingFaction, Faction attackingFaction)
void OnBaseFactionChanged(notnull SCR_CampaignMilitaryBaseComponent base, Faction previousFaction, Faction currentFaction)
void OnBaseCreatedAsFOB(notnull SCR_CampaignMilitaryBaseComponent base, Faction establishingFaction)
SCR_SessionDataEvent SetSessionEventBaseInfoWhenCreatingOrErasing(notnull SCR_CampaignMilitaryBaseComponent base, Faction establishingFaction)
void OnBaseUnderAttack(notnull SCR_CampaignMilitaryBaseComponent base, Faction defendingFaction, Faction attackingFaction)
void OnBaseDisassembledAsFOB(notnull SCR_CampaignMilitaryBaseComponent base, Faction establishingFaction)
void HandleBaseCreation(notnull SCR_CampaignMilitaryBaseComponent base, Faction establishingFaction)
static OnBaseStateChangedInvoker GetOnFactionChangedExtended()
static OnBaseStateChangedInvoker GetOnBaseUnderAttack()
static OnBaseCreatedAsFOBInvoker GetOnBaseCreatedAsFOB()