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            "goal_against_boost_sample_count",
58            StatUnit::Count,
59            self.scoring_context.goal_against_boost_sample_count,
60        ));
61        visitor(ExportedStat::float(
62            "core",
63            "average_boost_on_goals_against",
64            StatUnit::Boost,
65            self.average_boost_on_goals_against(),
66        ));
67        visitor(ExportedStat::unsigned(
68            "core",
69            "goal_against_boost_leadup_sample_count",
70            StatUnit::Count,
71            self.scoring_context.goal_against_boost_leadup_sample_count,
72        ));
73        visitor(ExportedStat::float(
74            "core",
75            "average_boost_in_goal_against_leadup",
76            StatUnit::Boost,
77            self.average_boost_in_goal_against_leadup(),
78        ));
79        visitor(ExportedStat::float(
80            "core",
81            "average_min_boost_in_goal_against_leadup",
82            StatUnit::Boost,
83            self.average_min_boost_in_goal_against_leadup(),
84        ));
85        visitor(ExportedStat::unsigned(
86            "core",
87            "goal_against_position_sample_count",
88            StatUnit::Count,
89            self.scoring_context.goal_against_position_sample_count,
90        ));
91        visitor(ExportedStat::float(
92            "core",
93            "average_goal_against_position_x",
94            StatUnit::UnrealUnits,
95            self.average_goal_against_position_x(),
96        ));
97        visitor(ExportedStat::float(
98            "core",
99            "average_goal_against_position_y",
100            StatUnit::UnrealUnits,
101            self.average_goal_against_position_y(),
102        ));
103        visitor(ExportedStat::float(
104            "core",
105            "average_goal_against_position_z",
106            StatUnit::UnrealUnits,
107            self.average_goal_against_position_z(),
108        ));
109        visitor(ExportedStat::unsigned(
110            "core",
111            "scoring_goal_last_touch_position_sample_count",
112            StatUnit::Count,
113            self.scoring_context
114                .scoring_goal_last_touch_position_sample_count,
115        ));
116        visitor(ExportedStat::float(
117            "core",
118            "average_scoring_goal_last_touch_position_x",
119            StatUnit::UnrealUnits,
120            self.average_scoring_goal_last_touch_position_x(),
121        ));
122        visitor(ExportedStat::float(
123            "core",
124            "average_scoring_goal_last_touch_position_y",
125            StatUnit::UnrealUnits,
126            self.average_scoring_goal_last_touch_position_y(),
127        ));
128        visitor(ExportedStat::float(
129            "core",
130            "average_scoring_goal_last_touch_position_z",
131            StatUnit::UnrealUnits,
132            self.average_scoring_goal_last_touch_position_z(),
133        ));
134        visitor(ExportedStat::float(
135            "core",
136            "average_goal_time_after_kickoff",
137            StatUnit::Seconds,
138            self.average_goal_time_after_kickoff(),
139        ));
140        visitor(ExportedStat::float(
141            "core",
142            "median_goal_time_after_kickoff",
143            StatUnit::Seconds,
144            self.median_goal_time_after_kickoff(),
145        ));
146        visitor(ExportedStat::unsigned(
147            "core",
148            "kickoff_goal_count",
149            StatUnit::Count,
150            self.scoring_context.goal_after_kickoff.kickoff_goal_count,
151        ));
152        visitor(ExportedStat::unsigned(
153            "core",
154            "short_goal_count",
155            StatUnit::Count,
156            self.scoring_context.goal_after_kickoff.short_goal_count,
157        ));
158        visitor(ExportedStat::unsigned(
159            "core",
160            "medium_goal_count",
161            StatUnit::Count,
162            self.scoring_context.goal_after_kickoff.medium_goal_count,
163        ));
164        visitor(ExportedStat::unsigned(
165            "core",
166            "long_goal_count",
167            StatUnit::Count,
168            self.scoring_context.goal_after_kickoff.long_goal_count,
169        ));
170        visitor(ExportedStat::float(
171            "core",
172            "shooting_percentage",
173            StatUnit::Percent,
174            self.shooting_percentage(),
175        ));
176        visitor(ExportedStat::unsigned(
177            "core",
178            "counter_attack_goal_count",
179            StatUnit::Count,
180            self.scoring_context.goal_buildup.counter_attack_goal_count,
181        ));
182        visitor(ExportedStat::unsigned(
183            "core",
184            "sustained_pressure_goal_count",
185            StatUnit::Count,
186            self.scoring_context
187                .goal_buildup
188                .sustained_pressure_goal_count,
189        ));
190        visitor(ExportedStat::unsigned(
191            "core",
192            "other_buildup_goal_count",
193            StatUnit::Count,
194            self.scoring_context.goal_buildup.other_buildup_goal_count,
195        ));
196    }
197}
198
199impl StatFieldProvider for CoreTeamStats {
200    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
201        visitor(ExportedStat::signed(
202            "core",
203            "score",
204            StatUnit::Count,
205            self.score,
206        ));
207        visitor(ExportedStat::signed(
208            "core",
209            "goals",
210            StatUnit::Count,
211            self.goals,
212        ));
213        visitor(ExportedStat::signed(
214            "core",
215            "assists",
216            StatUnit::Count,
217            self.assists,
218        ));
219        visitor(ExportedStat::signed(
220            "core",
221            "saves",
222            StatUnit::Count,
223            self.saves,
224        ));
225        visitor(ExportedStat::signed(
226            "core",
227            "shots",
228            StatUnit::Count,
229            self.shots,
230        ));
231        visitor(ExportedStat::float(
232            "core",
233            "average_goal_time_after_kickoff",
234            StatUnit::Seconds,
235            self.average_goal_time_after_kickoff(),
236        ));
237        visitor(ExportedStat::float(
238            "core",
239            "median_goal_time_after_kickoff",
240            StatUnit::Seconds,
241            self.median_goal_time_after_kickoff(),
242        ));
243        visitor(ExportedStat::unsigned(
244            "core",
245            "kickoff_goal_count",
246            StatUnit::Count,
247            self.scoring_context.goal_after_kickoff.kickoff_goal_count,
248        ));
249        visitor(ExportedStat::unsigned(
250            "core",
251            "short_goal_count",
252            StatUnit::Count,
253            self.scoring_context.goal_after_kickoff.short_goal_count,
254        ));
255        visitor(ExportedStat::unsigned(
256            "core",
257            "medium_goal_count",
258            StatUnit::Count,
259            self.scoring_context.goal_after_kickoff.medium_goal_count,
260        ));
261        visitor(ExportedStat::unsigned(
262            "core",
263            "long_goal_count",
264            StatUnit::Count,
265            self.scoring_context.goal_after_kickoff.long_goal_count,
266        ));
267        visitor(ExportedStat::float(
268            "core",
269            "shooting_percentage",
270            StatUnit::Percent,
271            self.shooting_percentage(),
272        ));
273        visitor(ExportedStat::unsigned(
274            "core",
275            "counter_attack_goal_count",
276            StatUnit::Count,
277            self.scoring_context.goal_buildup.counter_attack_goal_count,
278        ));
279        visitor(ExportedStat::unsigned(
280            "core",
281            "sustained_pressure_goal_count",
282            StatUnit::Count,
283            self.scoring_context
284                .goal_buildup
285                .sustained_pressure_goal_count,
286        ));
287        visitor(ExportedStat::unsigned(
288            "core",
289            "other_buildup_goal_count",
290            StatUnit::Count,
291            self.scoring_context.goal_buildup.other_buildup_goal_count,
292        ));
293    }
294}