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::float(
44            "core",
45            "average_goal_time_after_kickoff",
46            StatUnit::Seconds,
47            self.average_goal_time_after_kickoff(),
48        ));
49        visitor(ExportedStat::float(
50            "core",
51            "median_goal_time_after_kickoff",
52            StatUnit::Seconds,
53            self.median_goal_time_after_kickoff(),
54        ));
55        visitor(ExportedStat::unsigned(
56            "core",
57            "kickoff_goal_count",
58            StatUnit::Count,
59            self.scoring_context.goal_after_kickoff.kickoff_goal_count,
60        ));
61        visitor(ExportedStat::unsigned(
62            "core",
63            "short_goal_count",
64            StatUnit::Count,
65            self.scoring_context.goal_after_kickoff.short_goal_count,
66        ));
67        visitor(ExportedStat::unsigned(
68            "core",
69            "medium_goal_count",
70            StatUnit::Count,
71            self.scoring_context.goal_after_kickoff.medium_goal_count,
72        ));
73        visitor(ExportedStat::unsigned(
74            "core",
75            "long_goal_count",
76            StatUnit::Count,
77            self.scoring_context.goal_after_kickoff.long_goal_count,
78        ));
79        visitor(ExportedStat::float(
80            "core",
81            "shooting_percentage",
82            StatUnit::Percent,
83            self.shooting_percentage(),
84        ));
85        visitor(ExportedStat::unsigned(
86            "core",
87            "counter_attack_goal_count",
88            StatUnit::Count,
89            self.scoring_context.goal_buildup.counter_attack_goal_count,
90        ));
91        visitor(ExportedStat::unsigned(
92            "core",
93            "sustained_pressure_goal_count",
94            StatUnit::Count,
95            self.scoring_context
96                .goal_buildup
97                .sustained_pressure_goal_count,
98        ));
99        visitor(ExportedStat::unsigned(
100            "core",
101            "other_buildup_goal_count",
102            StatUnit::Count,
103            self.scoring_context.goal_buildup.other_buildup_goal_count,
104        ));
105    }
106}
107
108impl StatFieldProvider for CoreTeamStats {
109    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
110        visitor(ExportedStat::signed(
111            "core",
112            "score",
113            StatUnit::Count,
114            self.score,
115        ));
116        visitor(ExportedStat::signed(
117            "core",
118            "goals",
119            StatUnit::Count,
120            self.goals,
121        ));
122        visitor(ExportedStat::signed(
123            "core",
124            "assists",
125            StatUnit::Count,
126            self.assists,
127        ));
128        visitor(ExportedStat::signed(
129            "core",
130            "saves",
131            StatUnit::Count,
132            self.saves,
133        ));
134        visitor(ExportedStat::signed(
135            "core",
136            "shots",
137            StatUnit::Count,
138            self.shots,
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            "kickoff_goal_count",
155            StatUnit::Count,
156            self.scoring_context.goal_after_kickoff.kickoff_goal_count,
157        ));
158        visitor(ExportedStat::unsigned(
159            "core",
160            "short_goal_count",
161            StatUnit::Count,
162            self.scoring_context.goal_after_kickoff.short_goal_count,
163        ));
164        visitor(ExportedStat::unsigned(
165            "core",
166            "medium_goal_count",
167            StatUnit::Count,
168            self.scoring_context.goal_after_kickoff.medium_goal_count,
169        ));
170        visitor(ExportedStat::unsigned(
171            "core",
172            "long_goal_count",
173            StatUnit::Count,
174            self.scoring_context.goal_after_kickoff.long_goal_count,
175        ));
176        visitor(ExportedStat::float(
177            "core",
178            "shooting_percentage",
179            StatUnit::Percent,
180            self.shooting_percentage(),
181        ));
182        visitor(ExportedStat::unsigned(
183            "core",
184            "counter_attack_goal_count",
185            StatUnit::Count,
186            self.scoring_context.goal_buildup.counter_attack_goal_count,
187        ));
188        visitor(ExportedStat::unsigned(
189            "core",
190            "sustained_pressure_goal_count",
191            StatUnit::Count,
192            self.scoring_context
193                .goal_buildup
194                .sustained_pressure_goal_count,
195        ));
196        visitor(ExportedStat::unsigned(
197            "core",
198            "other_buildup_goal_count",
199            StatUnit::Count,
200            self.scoring_context.goal_buildup.other_buildup_goal_count,
201        ));
202    }
203}