#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Knobs {
pub delta: f64,
pub k: f64,
pub s: f64,
pub home_bias: f64,
pub b_pass: f64,
pub b_takeon: f64,
pub b_cross_delivery: f64,
pub k_ontarget: f64,
pub k_gk: f64,
pub b_ontarget: f64,
pub b_beat: f64,
pub p_off_frac: f64,
pub p_rebound: f64,
pub q_rebound: f64,
pub q_through: f64,
pub q_dribble: f64,
pub q_cutback: f64,
pub q_header: f64,
pub q_long: f64,
pub p_def_advance: f64,
pub p_mid_advance: f64,
pub p_wide: f64,
pub p_attc_penetrate: f64,
pub p_attc_dribble_box: f64,
pub p_attw_cutback: f64,
pub p_attw_cut_inside: f64,
pub w_pass_mid: f64,
pub w_takeon_mid: f64,
pub w_pass_attc: f64,
pub w_takeon_attc: f64,
pub w_longshot_attc: f64,
pub w_cross_attw: f64,
pub w_takeon_attw: f64,
pub w_pass_attw: f64,
pub fatigue_base: f64,
pub fatigue_wr: f64,
pub support: f64,
}
impl Default for Knobs {
fn default() -> Self {
Knobs {
delta: 0.11,
k: 1.0,
s: 12.0,
home_bias: 0.52,
b_pass: 1.35,
b_takeon: -0.15,
b_cross_delivery: -1.3,
k_ontarget: 0.9,
k_gk: 0.9,
b_ontarget: -0.9,
b_beat: -1.05,
p_off_frac: 0.5,
p_rebound: 0.08,
q_rebound: -0.6,
q_through: 0.56,
q_dribble: 0.02,
q_cutback: 0.6,
q_header: -0.45,
q_long: -1.8,
p_def_advance: 0.55,
p_mid_advance: 0.2,
p_wide: 0.34,
p_attc_penetrate: 0.08,
p_attc_dribble_box: 0.06,
p_attw_cutback: 0.08,
p_attw_cut_inside: 0.30,
w_pass_mid: 0.85,
w_takeon_mid: 0.15,
w_pass_attc: 0.58,
w_takeon_attc: 0.27,
w_longshot_attc: 0.05,
w_cross_attw: 0.35,
w_takeon_attw: 0.35,
w_pass_attw: 0.20,
fatigue_base: 0.12,
fatigue_wr: 0.5,
support: 0.25,
}
}
}