subtr_actor/stats/export/
whiff.rs1use crate::*;
2
3use super::*;
4
5impl StatFieldProvider for WhiffStats {
6 fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
7 visitor(ExportedStat::unsigned(
8 "whiff",
9 "whiff_count",
10 StatUnit::Count,
11 self.whiff_count,
12 ));
13 visitor(ExportedStat::unsigned(
14 "whiff",
15 "grounded_whiff_count",
16 StatUnit::Count,
17 self.grounded_whiff_count,
18 ));
19 visitor(ExportedStat::unsigned(
20 "whiff",
21 "aerial_whiff_count",
22 StatUnit::Count,
23 self.aerial_whiff_count,
24 ));
25 visitor(ExportedStat::unsigned(
26 "whiff",
27 "dodge_whiff_count",
28 StatUnit::Count,
29 self.dodge_whiff_count,
30 ));
31 visitor(ExportedStat::unsigned(
32 "whiff",
33 "is_last_whiff",
34 StatUnit::Count,
35 u32::from(self.is_last_whiff),
36 ));
37 if let Some(value) = self.last_whiff_time {
38 visitor(ExportedStat::float(
39 "whiff",
40 "last_whiff_time",
41 StatUnit::Seconds,
42 value,
43 ));
44 }
45 if let Some(value) = self.last_whiff_frame {
46 visitor(ExportedStat::unsigned(
47 "whiff",
48 "last_whiff_frame",
49 StatUnit::Count,
50 u32::try_from(value).unwrap_or(u32::MAX),
51 ));
52 }
53 if let Some(value) = self.time_since_last_whiff {
54 visitor(ExportedStat::float(
55 "whiff",
56 "time_since_last_whiff",
57 StatUnit::Seconds,
58 value,
59 ));
60 }
61 if let Some(value) = self.frames_since_last_whiff {
62 visitor(ExportedStat::unsigned(
63 "whiff",
64 "frames_since_last_whiff",
65 StatUnit::Count,
66 u32::try_from(value).unwrap_or(u32::MAX),
67 ));
68 }
69 if let Some(value) = self.last_closest_approach_distance {
70 visitor(ExportedStat::float(
71 "whiff",
72 "last_closest_approach_distance",
73 StatUnit::UnrealUnits,
74 value,
75 ));
76 }
77 if let Some(value) = self.best_closest_approach_distance {
78 visitor(ExportedStat::float(
79 "whiff",
80 "best_closest_approach_distance",
81 StatUnit::UnrealUnits,
82 value,
83 ));
84 }
85 visitor(ExportedStat::float(
86 "whiff",
87 "average_closest_approach_distance",
88 StatUnit::UnrealUnits,
89 self.average_closest_approach_distance(),
90 ));
91 }
92}