subtr_actor/stats/analysis_graph/nodes/
boost.rs1use super::*;
2use crate::stats::calculators::*;
3use crate::*;
4
5pub struct BoostNode {
6 calculator: BoostCalculator,
7}
8
9impl BoostNode {
10 pub fn new() -> Self {
11 Self::with_config(BoostCalculatorConfig::default())
12 }
13
14 pub fn with_config(config: BoostCalculatorConfig) -> Self {
15 Self {
16 calculator: BoostCalculator::with_config(config),
17 }
18 }
19}
20
21impl_analysis_node! {
22 node = BoostNode,
23 state = BoostCalculator,
24 name = "boost",
25 dependencies = [
26 frame_info_dependency(),
27 gameplay_state_dependency(),
28 player_frame_state_dependency(),
29 frame_events_state_dependency(),
30 player_vertical_state_dependency(),
31 live_play_dependency(),
32 ],
33 inputs = {
34 frame_info: FrameInfo,
35 gameplay_state: GameplayState,
36 player_frame_state: PlayerFrameState,
37 frame_events_state: FrameEventsState,
38 player_vertical_state: PlayerVerticalState,
39 live_play_state: LivePlayState,
40 },
41 evaluate = |node| {
42 node.calculator.update_parts(
43 frame_info,
44 gameplay_state,
45 player_frame_state,
46 frame_events_state,
47 player_vertical_state,
48 live_play_state.counts_toward_player_motion(),
49 )
50 },
51 state_ref = |node| &node.calculator,
52}