Skip to main content

subtr_actor/stats/export/
core.rs

1use crate::*;
2
3use super::*;
4
5impl StatFieldProvider for CorePlayerStats {
6    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
7        visitor(ExportedStat::signed(
8            "core",
9            "score",
10            StatUnit::Count,
11            self.score,
12        ));
13        visitor(ExportedStat::signed(
14            "core",
15            "goals",
16            StatUnit::Count,
17            self.goals,
18        ));
19        visitor(ExportedStat::signed(
20            "core",
21            "assists",
22            StatUnit::Count,
23            self.assists,
24        ));
25        visitor(ExportedStat::signed(
26            "core",
27            "saves",
28            StatUnit::Count,
29            self.saves,
30        ));
31        visitor(ExportedStat::signed(
32            "core",
33            "shots",
34            StatUnit::Count,
35            self.shots,
36        ));
37        visitor(ExportedStat::unsigned(
38            "core",
39            "goals_conceded_while_last_defender",
40            StatUnit::Count,
41            self.scoring_context.goals_conceded_while_last_defender,
42        ));
43        visitor(ExportedStat::unsigned(
44            "core",
45            "goals_for_while_most_back",
46            StatUnit::Count,
47            self.scoring_context.goals_for_while_most_back,
48        ));
49        visitor(ExportedStat::unsigned(
50            "core",
51            "goals_against_while_most_back",
52            StatUnit::Count,
53            self.scoring_context.goals_against_while_most_back,
54        ));
55        visitor(ExportedStat::unsigned(
56            "core",
57            "times_caught_ahead_of_play_on_conceded_goals",
58            StatUnit::Count,
59            self.scoring_context.caught_ahead_of_play_on_conceded_goals,
60        ));
61        visitor(ExportedStat::unsigned(
62            "core",
63            "goal_against_boost_sample_count",
64            StatUnit::Count,
65            self.scoring_context.goal_against_boost_sample_count,
66        ));
67        visitor(ExportedStat::float(
68            "core",
69            "average_boost_on_goals_against",
70            StatUnit::Boost,
71            self.average_boost_on_goals_against(),
72        ));
73        visitor(ExportedStat::unsigned(
74            "core",
75            "goal_against_boost_leadup_sample_count",
76            StatUnit::Count,
77            self.scoring_context.goal_against_boost_leadup_sample_count,
78        ));
79        visitor(ExportedStat::float(
80            "core",
81            "average_boost_in_goal_against_leadup",
82            StatUnit::Boost,
83            self.average_boost_in_goal_against_leadup(),
84        ));
85        visitor(ExportedStat::float(
86            "core",
87            "average_min_boost_in_goal_against_leadup",
88            StatUnit::Boost,
89            self.average_min_boost_in_goal_against_leadup(),
90        ));
91        visitor(ExportedStat::unsigned(
92            "core",
93            "goal_against_position_sample_count",
94            StatUnit::Count,
95            self.scoring_context.goal_against_position_sample_count,
96        ));
97        visitor(ExportedStat::float(
98            "core",
99            "average_goal_against_position_x",
100            StatUnit::UnrealUnits,
101            self.average_goal_against_position_x(),
102        ));
103        visitor(ExportedStat::float(
104            "core",
105            "average_goal_against_position_y",
106            StatUnit::UnrealUnits,
107            self.average_goal_against_position_y(),
108        ));
109        visitor(ExportedStat::float(
110            "core",
111            "average_goal_against_position_z",
112            StatUnit::UnrealUnits,
113            self.average_goal_against_position_z(),
114        ));
115        visitor(ExportedStat::unsigned(
116            "core",
117            "scoring_goal_last_touch_position_sample_count",
118            StatUnit::Count,
119            self.scoring_context
120                .scoring_goal_last_touch_position_sample_count,
121        ));
122        visitor(ExportedStat::float(
123            "core",
124            "average_scoring_goal_last_touch_position_x",
125            StatUnit::UnrealUnits,
126            self.average_scoring_goal_last_touch_position_x(),
127        ));
128        visitor(ExportedStat::float(
129            "core",
130            "average_scoring_goal_last_touch_position_y",
131            StatUnit::UnrealUnits,
132            self.average_scoring_goal_last_touch_position_y(),
133        ));
134        visitor(ExportedStat::float(
135            "core",
136            "average_scoring_goal_last_touch_position_z",
137            StatUnit::UnrealUnits,
138            self.average_scoring_goal_last_touch_position_z(),
139        ));
140        visitor(ExportedStat::float(
141            "core",
142            "average_goal_time_after_kickoff",
143            StatUnit::Seconds,
144            self.average_goal_time_after_kickoff(),
145        ));
146        visitor(ExportedStat::float(
147            "core",
148            "median_goal_time_after_kickoff",
149            StatUnit::Seconds,
150            self.median_goal_time_after_kickoff(),
151        ));
152        visitor(ExportedStat::unsigned(
153            "core",
154            "goal_ball_air_time_sample_count",
155            StatUnit::Count,
156            self.scoring_context
157                .goal_ball_air_time
158                .goal_ball_air_time_sample_count,
159        ));
160        visitor(ExportedStat::float(
161            "core",
162            "average_goal_ball_air_time",
163            StatUnit::Seconds,
164            self.average_goal_ball_air_time(),
165        ));
166        visitor(ExportedStat::float(
167            "core",
168            "median_goal_ball_air_time",
169            StatUnit::Seconds,
170            self.median_goal_ball_air_time(),
171        ));
172        visitor(ExportedStat::unsigned(
173            "core",
174            "kickoff_goal_count",
175            StatUnit::Count,
176            self.scoring_context.goal_after_kickoff.kickoff_goal_count,
177        ));
178        visitor(ExportedStat::unsigned(
179            "core",
180            "short_goal_count",
181            StatUnit::Count,
182            self.scoring_context.goal_after_kickoff.short_goal_count,
183        ));
184        visitor(ExportedStat::unsigned(
185            "core",
186            "medium_goal_count",
187            StatUnit::Count,
188            self.scoring_context.goal_after_kickoff.medium_goal_count,
189        ));
190        visitor(ExportedStat::unsigned(
191            "core",
192            "long_goal_count",
193            StatUnit::Count,
194            self.scoring_context.goal_after_kickoff.long_goal_count,
195        ));
196        visitor(ExportedStat::float(
197            "core",
198            "shooting_percentage",
199            StatUnit::Percent,
200            self.shooting_percentage(),
201        ));
202        visitor(ExportedStat::unsigned(
203            "core",
204            "counter_attack_goal_count",
205            StatUnit::Count,
206            self.scoring_context.goal_buildup.counter_attack_goal_count,
207        ));
208        visitor(ExportedStat::unsigned(
209            "core",
210            "sustained_pressure_goal_count",
211            StatUnit::Count,
212            self.scoring_context
213                .goal_buildup
214                .sustained_pressure_goal_count,
215        ));
216        visitor(ExportedStat::unsigned(
217            "core",
218            "other_buildup_goal_count",
219            StatUnit::Count,
220            self.scoring_context.goal_buildup.other_buildup_goal_count,
221        ));
222    }
223}
224
225impl StatFieldProvider for CoreTeamStats {
226    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
227        visitor(ExportedStat::signed(
228            "core",
229            "score",
230            StatUnit::Count,
231            self.score,
232        ));
233        visitor(ExportedStat::signed(
234            "core",
235            "goals",
236            StatUnit::Count,
237            self.goals,
238        ));
239        visitor(ExportedStat::signed(
240            "core",
241            "assists",
242            StatUnit::Count,
243            self.assists,
244        ));
245        visitor(ExportedStat::signed(
246            "core",
247            "saves",
248            StatUnit::Count,
249            self.saves,
250        ));
251        visitor(ExportedStat::signed(
252            "core",
253            "shots",
254            StatUnit::Count,
255            self.shots,
256        ));
257        visitor(ExportedStat::float(
258            "core",
259            "average_goal_time_after_kickoff",
260            StatUnit::Seconds,
261            self.average_goal_time_after_kickoff(),
262        ));
263        visitor(ExportedStat::float(
264            "core",
265            "median_goal_time_after_kickoff",
266            StatUnit::Seconds,
267            self.median_goal_time_after_kickoff(),
268        ));
269        visitor(ExportedStat::unsigned(
270            "core",
271            "goal_ball_air_time_sample_count",
272            StatUnit::Count,
273            self.scoring_context
274                .goal_ball_air_time
275                .goal_ball_air_time_sample_count,
276        ));
277        visitor(ExportedStat::float(
278            "core",
279            "average_goal_ball_air_time",
280            StatUnit::Seconds,
281            self.average_goal_ball_air_time(),
282        ));
283        visitor(ExportedStat::float(
284            "core",
285            "median_goal_ball_air_time",
286            StatUnit::Seconds,
287            self.median_goal_ball_air_time(),
288        ));
289        visitor(ExportedStat::unsigned(
290            "core",
291            "kickoff_goal_count",
292            StatUnit::Count,
293            self.scoring_context.goal_after_kickoff.kickoff_goal_count,
294        ));
295        visitor(ExportedStat::unsigned(
296            "core",
297            "short_goal_count",
298            StatUnit::Count,
299            self.scoring_context.goal_after_kickoff.short_goal_count,
300        ));
301        visitor(ExportedStat::unsigned(
302            "core",
303            "medium_goal_count",
304            StatUnit::Count,
305            self.scoring_context.goal_after_kickoff.medium_goal_count,
306        ));
307        visitor(ExportedStat::unsigned(
308            "core",
309            "long_goal_count",
310            StatUnit::Count,
311            self.scoring_context.goal_after_kickoff.long_goal_count,
312        ));
313        visitor(ExportedStat::float(
314            "core",
315            "shooting_percentage",
316            StatUnit::Percent,
317            self.shooting_percentage(),
318        ));
319        visitor(ExportedStat::unsigned(
320            "core",
321            "counter_attack_goal_count",
322            StatUnit::Count,
323            self.scoring_context.goal_buildup.counter_attack_goal_count,
324        ));
325        visitor(ExportedStat::unsigned(
326            "core",
327            "sustained_pressure_goal_count",
328            StatUnit::Count,
329            self.scoring_context
330                .goal_buildup
331                .sustained_pressure_goal_count,
332        ));
333        visitor(ExportedStat::unsigned(
334            "core",
335            "other_buildup_goal_count",
336            StatUnit::Count,
337            self.scoring_context.goal_buildup.other_buildup_goal_count,
338        ));
339    }
340}