Skip to main content

subtr_actor/stats/analysis_graph/nodes/
fifty_fifty_state.rs

1use super::*;
2use crate::stats::calculators::*;
3use crate::*;
4
5/// Tracks 50/50 contest state from ball/player/touch/possession state as shared state.
6pub struct FiftyFiftyStateNode {
7    calculator: FiftyFiftyStateCalculator,
8    state: FiftyFiftyState,
9}
10
11impl FiftyFiftyStateNode {
12    pub fn new() -> Self {
13        Self {
14            calculator: FiftyFiftyStateCalculator::new(),
15            state: FiftyFiftyState::default(),
16        }
17    }
18}
19
20impl_analysis_node! {
21    node = FiftyFiftyStateNode,
22    state = FiftyFiftyState,
23    name = "fifty_fifty_state",
24    dependencies = [
25        frame_info_dependency() => FrameInfo,
26        gameplay_state_dependency() => GameplayState,
27        ball_frame_state_dependency() => BallFrameState,
28        player_frame_state_dependency() => PlayerFrameState,
29        touch_state_dependency() => TouchState,
30        possession_state_dependency() => PossessionState,
31        live_play_dependency() => LivePlayState,
32    ],
33    update_state = calculator.update,
34}