use crate::*;
use super::*;
impl StatFieldProvider for CorePlayerStats {
fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
visitor(ExportedStat::signed(
"core",
"score",
StatUnit::Count,
self.score,
));
visitor(ExportedStat::signed(
"core",
"goals",
StatUnit::Count,
self.goals,
));
visitor(ExportedStat::signed(
"core",
"assists",
StatUnit::Count,
self.assists,
));
visitor(ExportedStat::signed(
"core",
"saves",
StatUnit::Count,
self.saves,
));
visitor(ExportedStat::signed(
"core",
"shots",
StatUnit::Count,
self.shots,
));
visitor(ExportedStat::unsigned(
"core",
"goals_conceded_while_last_defender",
StatUnit::Count,
self.scoring_context.goals_conceded_while_last_defender,
));
visitor(ExportedStat::unsigned(
"core",
"goals_for_while_most_back",
StatUnit::Count,
self.scoring_context.goals_for_while_most_back,
));
visitor(ExportedStat::unsigned(
"core",
"goals_against_while_most_back",
StatUnit::Count,
self.scoring_context.goals_against_while_most_back,
));
visitor(ExportedStat::unsigned(
"core",
"goal_against_boost_sample_count",
StatUnit::Count,
self.scoring_context.goal_against_boost_sample_count,
));
visitor(ExportedStat::float(
"core",
"average_boost_on_goals_against",
StatUnit::Boost,
self.average_boost_on_goals_against(),
));
visitor(ExportedStat::unsigned(
"core",
"goal_against_boost_leadup_sample_count",
StatUnit::Count,
self.scoring_context.goal_against_boost_leadup_sample_count,
));
visitor(ExportedStat::float(
"core",
"average_boost_in_goal_against_leadup",
StatUnit::Boost,
self.average_boost_in_goal_against_leadup(),
));
visitor(ExportedStat::float(
"core",
"average_min_boost_in_goal_against_leadup",
StatUnit::Boost,
self.average_min_boost_in_goal_against_leadup(),
));
visitor(ExportedStat::unsigned(
"core",
"goal_against_position_sample_count",
StatUnit::Count,
self.scoring_context.goal_against_position_sample_count,
));
visitor(ExportedStat::float(
"core",
"average_goal_against_position_x",
StatUnit::UnrealUnits,
self.average_goal_against_position_x(),
));
visitor(ExportedStat::float(
"core",
"average_goal_against_position_y",
StatUnit::UnrealUnits,
self.average_goal_against_position_y(),
));
visitor(ExportedStat::float(
"core",
"average_goal_against_position_z",
StatUnit::UnrealUnits,
self.average_goal_against_position_z(),
));
visitor(ExportedStat::unsigned(
"core",
"scoring_goal_last_touch_position_sample_count",
StatUnit::Count,
self.scoring_context
.scoring_goal_last_touch_position_sample_count,
));
visitor(ExportedStat::float(
"core",
"average_scoring_goal_last_touch_position_x",
StatUnit::UnrealUnits,
self.average_scoring_goal_last_touch_position_x(),
));
visitor(ExportedStat::float(
"core",
"average_scoring_goal_last_touch_position_y",
StatUnit::UnrealUnits,
self.average_scoring_goal_last_touch_position_y(),
));
visitor(ExportedStat::float(
"core",
"average_scoring_goal_last_touch_position_z",
StatUnit::UnrealUnits,
self.average_scoring_goal_last_touch_position_z(),
));
visitor(ExportedStat::float(
"core",
"average_goal_time_after_kickoff",
StatUnit::Seconds,
self.average_goal_time_after_kickoff(),
));
visitor(ExportedStat::float(
"core",
"median_goal_time_after_kickoff",
StatUnit::Seconds,
self.median_goal_time_after_kickoff(),
));
visitor(ExportedStat::unsigned(
"core",
"goal_ball_air_time_sample_count",
StatUnit::Count,
self.scoring_context
.goal_ball_air_time
.goal_ball_air_time_sample_count,
));
visitor(ExportedStat::float(
"core",
"average_goal_ball_air_time",
StatUnit::Seconds,
self.average_goal_ball_air_time(),
));
visitor(ExportedStat::float(
"core",
"median_goal_ball_air_time",
StatUnit::Seconds,
self.median_goal_ball_air_time(),
));
visitor(ExportedStat::unsigned(
"core",
"kickoff_goal_count",
StatUnit::Count,
self.scoring_context.goal_after_kickoff.kickoff_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"short_goal_count",
StatUnit::Count,
self.scoring_context.goal_after_kickoff.short_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"medium_goal_count",
StatUnit::Count,
self.scoring_context.goal_after_kickoff.medium_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"long_goal_count",
StatUnit::Count,
self.scoring_context.goal_after_kickoff.long_goal_count,
));
visitor(ExportedStat::float(
"core",
"shooting_percentage",
StatUnit::Percent,
self.shooting_percentage(),
));
visitor(ExportedStat::unsigned(
"core",
"counter_attack_goal_count",
StatUnit::Count,
self.scoring_context.goal_buildup.counter_attack_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"sustained_pressure_goal_count",
StatUnit::Count,
self.scoring_context
.goal_buildup
.sustained_pressure_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"other_buildup_goal_count",
StatUnit::Count,
self.scoring_context.goal_buildup.other_buildup_goal_count,
));
}
}
impl StatFieldProvider for CoreTeamStats {
fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
visitor(ExportedStat::signed(
"core",
"score",
StatUnit::Count,
self.score,
));
visitor(ExportedStat::signed(
"core",
"goals",
StatUnit::Count,
self.goals,
));
visitor(ExportedStat::signed(
"core",
"assists",
StatUnit::Count,
self.assists,
));
visitor(ExportedStat::signed(
"core",
"saves",
StatUnit::Count,
self.saves,
));
visitor(ExportedStat::signed(
"core",
"shots",
StatUnit::Count,
self.shots,
));
visitor(ExportedStat::float(
"core",
"average_goal_time_after_kickoff",
StatUnit::Seconds,
self.average_goal_time_after_kickoff(),
));
visitor(ExportedStat::float(
"core",
"median_goal_time_after_kickoff",
StatUnit::Seconds,
self.median_goal_time_after_kickoff(),
));
visitor(ExportedStat::unsigned(
"core",
"goal_ball_air_time_sample_count",
StatUnit::Count,
self.scoring_context
.goal_ball_air_time
.goal_ball_air_time_sample_count,
));
visitor(ExportedStat::float(
"core",
"average_goal_ball_air_time",
StatUnit::Seconds,
self.average_goal_ball_air_time(),
));
visitor(ExportedStat::float(
"core",
"median_goal_ball_air_time",
StatUnit::Seconds,
self.median_goal_ball_air_time(),
));
visitor(ExportedStat::unsigned(
"core",
"kickoff_goal_count",
StatUnit::Count,
self.scoring_context.goal_after_kickoff.kickoff_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"short_goal_count",
StatUnit::Count,
self.scoring_context.goal_after_kickoff.short_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"medium_goal_count",
StatUnit::Count,
self.scoring_context.goal_after_kickoff.medium_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"long_goal_count",
StatUnit::Count,
self.scoring_context.goal_after_kickoff.long_goal_count,
));
visitor(ExportedStat::float(
"core",
"shooting_percentage",
StatUnit::Percent,
self.shooting_percentage(),
));
visitor(ExportedStat::unsigned(
"core",
"counter_attack_goal_count",
StatUnit::Count,
self.scoring_context.goal_buildup.counter_attack_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"sustained_pressure_goal_count",
StatUnit::Count,
self.scoring_context
.goal_buildup
.sustained_pressure_goal_count,
));
visitor(ExportedStat::unsigned(
"core",
"other_buildup_goal_count",
StatUnit::Count,
self.scoring_context.goal_buildup.other_buildup_goal_count,
));
}
}