down one-on-one

Created Diff never expires
19 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
273 lines
26 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
280 lines
{
{
version_array: [
version_array: [
// Latest ME Version Physical Constraints always at the top, enter new ME version constraints here:
// Latest ME Version Physical Constraints always at the top, enter new ME version constraints here:


// January 2020 fix
// January 2020 fix
{
{
"min_me_version": 2037, // any match from this version onwards will use these constraints (if there are no newer sets)
"min_me_version": 2037, // any match from this version onwards will use these constraints (if there are no newer sets)


// Speed constraints - all values as ms-1 - used directly in the ME after being scaled
// Speed constraints - all values as ms-1 - used directly in the ME after being scaled
"speed_scaler": 10000, // below values are divided by this to get the correct Match Real value
"speed_scaler": 10000, // below values are divided by this to get the correct Match Real value
"very_slow_walk_speed": 4470,
"very_slow_walk_speed": 4470,
"slow_walk_speed": 8940,
"slow_walk_speed": 8940,
"walk_speed": 13410,
"walk_speed": 13410,
"fast_walk_speed": 17880,
"fast_walk_speed": 17880,
"slow_jog_speed": 23000,
"slow_jog_speed": 23000,
"jog_speed": 26820,
"jog_speed": 26820,
"moderate_jog_speed": 31290,
"moderate_jog_speed": 31290,
"fast_jog_speed": 35760,
"fast_jog_speed": 35760,
"run_speed": 44704,
"run_speed": 44704,
"sprint_speed": 67056,
"sprint_speed": 67056,
"top_speed": 89408,
"top_speed": 89408,
"base_top_speed": 78000,
"base_top_speed": 78000,
"theoretical_max_running_speed": 122700,
"theoretical_max_running_speed": 122700,
"theoretical_min_diving_speed": 50000,
"theoretical_min_diving_speed": 50000,
"theoretical_max_diving_speed": 75000,
"theoretical_max_diving_speed": 75000,


// The min/max speeds of walk/jog/run speed ranges are calculated in PHYSICAL_CONSTRAINTS helper class based on the above values
// The min/max speeds of walk/jog/run speed ranges are calculated in PHYSICAL_CONSTRAINTS helper class based on the above values


// Acceleration/deceleration constraints - all values as ms-2 - theoretical values
// Acceleration/deceleration constraints - all values as ms-2 - theoretical values
"acceleration_scaler": 10000, // below values are divided by this to get the correct Match Real value
"acceleration_scaler": 10000, // below values are divided by this to get the correct Match Real value
"theoretical_min_acceleration": 2500,
"theoretical_min_acceleration": 2500,
"theoretical_max_acceleration": 89408,
"theoretical_max_acceleration": 89408,
"theoretical_min_diving_acceleration": 25000,
"theoretical_min_diving_acceleration": 25000,
"theoretical_max_diving_acceleration": 89408, // should always be the same as top speed
"theoretical_max_diving_acceleration": 89408, // should always be the same as top speed
"theoretical_min_deceleration": 15000,
"theoretical_min_deceleration": 15000,
"theoretical_max_deceleration": 44704, // should always be top speed / 2
"theoretical_max_deceleration": 67056, // should always be top speed / 2


// Turning rate constraints for turning facing - all values as angles / second - theoretical values
// Turning rate constraints for turning facing - all values as angles / second - theoretical values
"theoretical_max_turning_rate": 180,
"theoretical_max_turning_rate": 180,
"theoretical_min_turning_rate": 30,


// Direction change rate constraints - all values as angles / second - theoretical values per speed range (walk/jog/run)
// Direction change rate constraints - all values as angles / second - theoretical values per speed range (walk/jog/run)
"theoretical_max_potential_direction_change_walk": 192,
"theoretical_max_potential_direction_change_walk": 300,
"theoretical_min_potential_direction_change_walk": 52,
"theoretical_min_potential_direction_change_walk": 40,
"theoretical_max_potential_direction_change_jog": 104,
"theoretical_max_potential_direction_change_jog": 150,
"theoretical_min_potential_direction_change_jog": 15,
"theoretical_min_potential_direction_change_jog": 20,
"theoretical_max_potential_direction_change_run": 53,
"theoretical_max_potential_direction_change_run": 75,
"theoretical_min_potential_direction_change_run": 15,
"theoretical_min_potential_direction_change_run": 10,


// Delays - all values as milliseconds at 250ms intervals (these will be stored internally as match slices - one slice is 0.25s, so 4 slices are 1s)
// Delays - all values as milliseconds at 250ms intervals (these will be stored internally as match slices - one slice is 0.25s, so 4 slices are 1s)
"min_delay_for_diving_header": 2000, // 2s - 8 slices
"min_delay_for_diving_header": 2000, // 2s - 8 slices
"min_delay_for_normal_header": 1000, // 1s - 4 slices
"min_delay_for_normal_header": 1000, // 1s - 4 slices


"min_delay_for_slide_tackle_do": 1500, // 1.5s - 6 slices
"min_delay_for_slide_tackle_do": 1700, // 1.5s - 6
"max_delay_for_slide_tackle_do": 1800, // 1.5s - 6 slices
"min_delay_for_slide_tackle_receive": 750, // 0.75s - 3 slices
"min_delay_for_slide_tackle_receive": 750, // 0.75s - 3 slices
"min_delay_for_ball_lunge_do": 1500, // 1.5s - 6 slices
"min_delay_for_ball_lunge_do": 700, // 1.5s - 6 slices
"max_delay_for_ball_lunge_do": 900, // 1.5s - 6 slices
"min_delay_for_ball_lunge_receive": 750, // 0.75s - 3 slices
"min_delay_for_ball_lunge_receive": 750, // 0.75s - 3 slices
"min_delay_for_block_tackle_do": 500, // 0.5s - 2 slices
"min_delay_for_block_tackle_do": 450, // 0.5s - 2 slices
"max_delay_for_block_tackle_do": 550, // 0.5s - 2 slices
"min_delay_for_block_tackle_receive": 750, // 0.75s - 3 slices
"min_delay_for_block_tackle_receive": 750, // 0.75s - 3 slices
"min_delay_for_deflect_ball_do": 250, // 0.25s - 1 slices
"min_delay_for_deflect_ball_do": 250, // 0.25s - 1 slices
"min_delay_for_deflect_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_deflect_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_shoulder_charge_do": 500, // 0.5s - 2 slices
"min_delay_for_shoulder_charge_do": 500, // 0.5s - 2 slices
"min_delay_for_shoulder_charge_receive": 2000, // 2s - 8 slices
"min_delay_for_shoulder_charge_receive": 2000, // 2s - 8 slices
"min_delay_for_force_opponent_to_lose_ball_do": 500, // 0.5s - 2 slices
"min_delay_for_force_opponent_to_lose_ball_do": 450, // 0.5s - 2 slices
"max_delay_for_force_opponent_to_lose_ball_do": 550, // 0.5s - 2 slices
"min_delay_for_force_opponent_to_lose_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_force_opponent_to_lose_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_shirt_tug_do": 0, // 0
"min_delay_for_shirt_tug_do": 0, // 0
"min_delay_for_shirt_tug_receive": 500, // 0.5s - 2 slices
"min_delay_for_shirt_tug_receive": 500, // 0.5s - 2 slices
"min_delay_for_obstruct_do": 1000, // 1s - 4 slices
"min_delay_for_obstruct_do": 1000, // 1s - 4 slices
"min_delay_for_obstruct_receive": 2000, // 2s - 8 slices
"min_delay_for_obstruct_receive": 2000, // 2s - 8 slices
"min_delay_for_two_footed_tackle_do": 1500, // 1.5s - 6 slices
"min_delay_for_two_footed_tackle_do": 1500, // 1.5s - 6 slices
"min_delay_for_two_footed_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_two_footed_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_trip_do": 750, // 0.75s - 3 slices
"min_delay_for_trip_do": 750, // 0.75s - 3 slices
"min_delay_for_trip_receive": 3000, // 3s - 12 slices
"min_delay_for_trip_receive": 3000, // 3s - 12 slices
"min_delay_for_foot_up_in_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_foot_up_in_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_foot_up_in_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_foot_up_in_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_push_opponent_do": 500, // 0.5s - 2 slices
"min_delay_for_push_opponent_do": 500, // 0.5s - 2 slices
"min_delay_for_push_opponen_receive": 2000, // 2s - 8 slices
"min_delay_for_push_opponen_receive": 2000, // 2s - 8 slices
"min_delay_for_violent_act_do": 500, // 0.5s - 2 slices - elbow, punch, head butt, kick, shove
"min_delay_for_violent_act_do": 500, // 0.5s - 2 slices - elbow, punch, head butt, kick, shove
"min_delay_for_violent_act_receive": 1000, // 1s - 4 slices
"min_delay_for_violent_act_receive": 1000, // 1s - 4 slices
"min_delay_for_celebrating_a_goal": 3000, // 3s - 12 slices
"min_delay_for_celebrating_a_goal": 3000, // 3s - 12 slices


"min_delay_keeper_save_intentionally_drop_ball": 500, // 0.5s - 2 slices
"min_delay_keeper_save_intentionally_drop_ball": 300, // 0.5s - 2 slices
"min_delay_keeper_save_dive_and_hold_ball": 2000, // 2s - 8 slices
"min_delay_keeper_save_dive_and_hold_ball": 2000, // 2s - 8 slices
"min_delay_keeper_save_dive_but_not_held": 750, // 0.75s - 3 slices
"min_delay_keeper_save_dive_but_not_held": 500, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_hold_ball": 500, // 0.5s - 2 slices
"max_delay_keeper_save_dive_but_not_held": 650, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_not_held": 500, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_hold_ball": 700, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_not_held": 400, // 0.5s - 2 slices
"max_delay_keeper_save_no_dive_not_held": 550, // 0.5s - 2 slices
"min_delay_keeper_drop_ball_for_distribution": 1000, // 1s - 4 slices
"min_delay_keeper_drop_ball_for_distribution": 1000, // 1s - 4 slices


"min_delay_for_getting_injured": 2000, // 2s - 8 slices
"min_delay_for_getting_injured": 2000, // 2s - 8 slices
"min_extra_delay_for_falling_down_before_injury": 4000, // 4s - 16 slices
"min_extra_delay_for_falling_down_before_injury": 4000, // 4s - 16 slices


"min_delay_for_player_stop_to_avoid_collision": 500 // 0.5s - 2 slices
"min_delay_for_player_stop_to_avoid_collision": 200 // 0.5s - 2 slices
},
},


// October 2019 fix
// October 2019 fix
{
{
"min_me_version": 1957, // any match from this version onwards will use these constraints (if there are no newer sets)
"min_me_version": 1957, // any match from this version onwards will use these constraints (if there are no newer sets)


// Speed constraints - all values as ms-1 - used directly in the ME after being scaled
// Speed constraints - all values as ms-1 - used directly in the ME after being scaled
"speed_scaler": 10000, // below values are divided by this to get the correct Match Real value
"speed_scaler": 10000, // below values are divided by this to get the correct Match Real value
"very_slow_walk_speed": 4470,
"very_slow_walk_speed": 4470,
"slow_walk_speed": 8940,
"slow_walk_speed": 8940,
"walk_speed": 13410,
"walk_speed": 13410,
"fast_walk_speed": 17880,
"fast_walk_speed": 17880,
"slow_jog_speed": 23000,
"slow_jog_speed": 23000,
"jog_speed": 26820,
"jog_speed": 26820,
"moderate_jog_speed": 31290,
"moderate_jog_speed": 31290,
"fast_jog_speed": 35760,
"fast_jog_speed": 35760,
"run_speed": 44704,
"run_speed": 44704,
"sprint_speed": 67056,
"sprint_speed": 67056,
"top_speed": 89408,
"top_speed": 89408,
"base_top_speed": 78000,
"base_top_speed": 78000,
"theoretical_max_running_speed": 122700,
"theoretical_max_running_speed": 122700,
"theoretical_min_diving_speed": 50000,
"theoretical_min_diving_speed": 50000,
"theoretical_max_diving_speed": 75000,
"theoretical_max_diving_speed": 75000,


// The min/max speeds of walk/jog/run speed ranges are calculated in PHYSICAL_CONSTRAINTS helper class based on the above values
// The min/max speeds of walk/jog/run speed ranges are calculated in PHYSICAL_CONSTRAINTS helper class based on the above values


// Acceleration/deceleration constraints - all values as ms-2 - theoretical values
// Acceleration/deceleration constraints - all values as ms-2 - theoretical values
"acceleration_scaler": 10000, // below values are divided by this to get the correct Match Real value
"acceleration_scaler": 10000, // below values are divided by this to get the correct Match Real value
"theoretical_min_acceleration": 2500,
"theoretical_min_acceleration": 2500,
"theoretical_max_acceleration": 89408,
"theoretical_max_acceleration": 89408,
"theoretical_min_diving_acceleration": 25000,
"theoretical_min_diving_acceleration": 25000,
"theoretical_max_diving_acceleration": 89408, // should always be the same as top speed
"theoretical_max_diving_acceleration": 89408, // should always be the same as top speed
"theoretical_min_deceleration": 15000,
"theoretical_min_deceleration": 15000,
"theoretical_max_deceleration": 44704, // should always be top speed / 2
"theoretical_max_deceleration": 44704, // should always be top speed / 2


// Turning rate constraints for turning facing - all values as angles / second - theoretical values
// Turning rate constraints for turning facing - all values as angles / second - theoretical values
"theoretical_max_turning_rate": 180,
"theoretical_max_turning_rate": 180,


// Direction change rate constraints - all values as angles / second - theoretical values per speed range (walk/jog/run)
// Direction change rate constraints - all values as angles / second - theoretical values per speed range (walk/jog/run)
"theoretical_max_potential_direction_change_walk": 192,
"theoretical_max_potential_direction_change_walk": 192,
"theoretical_min_potential_direction_change_walk": 52,
"theoretical_min_potential_direction_change_walk": 52,
"theoretical_max_potential_direction_change_jog": 104,
"theoretical_max_potential_direction_change_jog": 104,
"theoretical_min_potential_direction_change_jog": 15,
"theoretical_min_potential_direction_change_jog": 15,
"theoretical_max_potential_direction_change_run": 53,
"theoretical_max_potential_direction_change_run": 53,
"theoretical_min_potential_direction_change_run": 15,
"theoretical_min_potential_direction_change_run": 15,


// Delays - all values as milliseconds at 250ms intervals (these will be stored internally as match slices - one slice is 0.25s, so 4 slices are 1s)
// Delays - all values as milliseconds at 250ms intervals (these will be stored internally as match slices - one slice is 0.25s, so 4 slices are 1s)
"min_delay_for_diving_header": 2000, // 2s - 8 slices
"min_delay_for_diving_header": 2000, // 2s - 8 slices
"min_delay_for_normal_header": 1000, // 1s - 4 slices
"min_delay_for_normal_header": 1000, // 1s - 4 slices


"min_delay_for_slide_tackle_do": 500, // 0.5s - 2 slices
"min_delay_for_slide_tackle_do": 500, // 0.5s - 2 slices
"min_delay_for_slide_tackle_receive": 750, // 0.75s - 3 slices
"min_delay_for_slide_tackle_receive": 750, // 0.75s - 3 slices
"min_delay_for_ball_lunge_do": 500, // 0.5s - 2 slices
"min_delay_for_ball_lunge_do": 500, // 0.5s - 2 slices
"min_delay_for_ball_lunge_receive": 750, // 0.75s - 3 slices
"min_delay_for_ball_lunge_receive": 750, // 0.75s - 3 slices
"min_delay_for_block_tackle_do": 250, // 0.25s - 1 slices
"min_delay_for_block_tackle_do": 250, // 0.25s - 1 slices
"min_delay_for_block_tackle_receive": 500, // 0.5s - 2 slices
"min_delay_for_block_tackle_receive": 500, // 0.5s - 2 slices
"min_delay_for_deflect_ball_do": 250, // 0.25s - 1 slices
"min_delay_for_deflect_ball_do": 250, // 0.25s - 1 slices
"min_delay_for_deflect_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_deflect_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_shoulder_charge_do": 500, // 0.5s - 2 slices
"min_delay_for_shoulder_charge_do": 500, // 0.5s - 2 slices
"min_delay_for_shoulder_charge_receive": 2000, // 2s - 8 slices
"min_delay_for_shoulder_charge_receive": 2000, // 2s - 8 slices
"min_delay_for_force_opponent_to_lose_ball_do": 500, // 0.5s - 2 slices
"min_delay_for_force_opponent_to_lose_ball_do": 500, // 0.5s - 2 slices
"min_delay_for_force_opponent_to_lose_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_force_opponent_to_lose_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_shirt_tug_do": 0, // 0
"min_delay_for_shirt_tug_do": 0, // 0
"min_delay_for_shirt_tug_receive": 500, // 0.5s - 2 slices
"min_delay_for_shirt_tug_receive": 500, // 0.5s - 2 slices
"min_delay_for_obstruct_do": 1000, // 1s - 4 slices
"min_delay_for_obstruct_do": 1000, // 1s - 4 slices
"min_delay_for_obstruct_receive": 2000, // 2s - 8 slices
"min_delay_for_obstruct_receive": 2000, // 2s - 8 slices
"min_delay_for_two_footed_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_two_footed_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_two_footed_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_two_footed_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_trip_do": 750, // 0.75s - 3 slices
"min_delay_for_trip_do": 750, // 0.75s - 3 slices
"min_delay_for_trip_receive": 3000, // 3s - 12 slices
"min_delay_for_trip_receive": 3000, // 3s - 12 slices
"min_delay_for_foot_up_in_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_foot_up_in_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_foot_up_in_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_foot_up_in_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_push_opponent_do": 500, // 0.5s - 2 slices
"min_delay_for_push_opponent_do": 500, // 0.5s - 2 slices
"min_delay_for_push_opponen_receive": 2000, // 2s - 8 slices
"min_delay_for_push_opponen_receive": 2000, // 2s - 8 slices
"min_delay_for_violent_act_do": 500, // 0.5s - 2 slices - elbow, punch, head butt, kick, shove
"min_delay_for_violent_act_do": 500, // 0.5s - 2 slices - elbow, punch, head butt, kick, shove
"min_delay_for_violent_act_receive": 1000, // 1s - 4 slices
"min_delay_for_violent_act_receive": 1000, // 1s - 4 slices
"min_delay_for_celebrating_a_goal": 3000, // 3s - 12 slices
"min_delay_for_celebrating_a_goal": 3000, // 3s - 12 slices


"min_delay_keeper_save_intentionally_drop_ball": 500, // 0.5s - 2 slices
"min_delay_keeper_save_intentionally_drop_ball": 500, // 0.5s - 2 slices
"min_delay_keeper_save_dive_and_hold_ball": 2000, // 2s - 8 slices
"min_delay_keeper_save_dive_and_hold_ball": 2000, // 2s - 8 slices
"min_delay_keeper_save_dive_but_not_held": 750, // 0.75s - 3 slices
"min_delay_keeper_save_dive_but_not_held": 750, // 0.75s - 3 slices
"min_delay_keeper_save_no_dive_hold_ball": 500, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_hold_ball": 500, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_not_held": 500, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_not_held": 500, // 0.5s - 2 slices
"min_delay_keeper_drop_ball_for_distribution": 1000, // 1s - 4 slices
"min_delay_keeper_drop_ball_for_distribution": 1000, // 1s - 4 slices


"min_delay_for_getting_injured": 2000, // 2s - 8 slices
"min_delay_for_getting_injured": 2000, // 2s - 8 slices
"min_extra_delay_for_falling_down_before_injury": 4000, // 4s - 16 slices
"min_extra_delay_for_falling_down_before_injury": 4000, // 4s - 16 slices


"min_delay_for_player_stop_to_avoid_collision": 500 // 0.5s - 2 slices
"min_delay_for_player_stop_to_avoid_collision": 500 // 0.5s - 2 slices
},
},


// Initial version
// Initial version
{
{
"min_me_version": 1, // any match from this version onwards will use these constraints (if there are no newer sets)
"min_me_version": 1, // any match from this version onwards will use these constraints (if there are no newer sets)


// Speed constraints - all values as ms-1 - used directly in the ME after being scaled
// Speed constraints - all values as ms-1 - used directly in the ME after being scaled
"speed_scaler": 10000, // below values are divided by this to get the correct Match Real value
"speed_scaler": 10000, // below values are divided by this to get the correct Match Real value
"very_slow_walk_speed": 4470,
"very_slow_walk_speed": 4470,
"slow_walk_speed": 8940,
"slow_walk_speed": 8940,
"walk_speed": 13410,
"walk_speed": 13410,
"fast_walk_speed": 17880,
"fast_walk_speed": 17880,
"slow_jog_speed": 23000,
"slow_jog_speed": 23000,
"jog_speed": 26820,
"jog_speed": 26820,
"moderate_jog_speed": 31290,
"moderate_jog_speed": 31290,
"fast_jog_speed": 35760,
"fast_jog_speed": 35760,
"run_speed": 44704,
"run_speed": 44704,
"sprint_speed": 67056,
"sprint_speed": 67056,
"top_speed": 89408,
"top_speed": 89408,
"base_top_speed": 78000,
"base_top_speed": 78000,
"theoretical_max_running_speed": 122700,
"theoretical_max_running_speed": 122700,
"theoretical_min_diving_speed": 50000,
"theoretical_min_diving_speed": 50000,
"theoretical_max_diving_speed": 75000,
"theoretical_max_diving_speed": 75000,


// The min/max speeds of walk/jog/run speed ranges are calculated in PHYSICAL_CONSTRAINTS helper class based on the above values
// The min/max speeds of walk/jog/run speed ranges are calculated in PHYSICAL_CONSTRAINTS helper class based on the above values


// Acceleration/deceleration constraints - all values as ms-2 - theoretical values
// Acceleration/deceleration constraints - all values as ms-2 - theoretical values
"acceleration_scaler": 10000, // below values are divided by this to get the correct Match Real value
"acceleration_scaler": 10000, // below values are divided by this to get the correct Match Real value
"theoretical_min_acceleration": 2500,
"theoretical_min_acceleration": 2500,
"theoretical_max_acceleration": 89408,
"theoretical_max_acceleration": 89408,
"theoretical_min_diving_acceleration": 25000,
"theoretical_min_diving_acceleration": 25000,
"theoretical_max_diving_acceleration": 89408, // should always be the same as top speed
"theoretical_max_diving_acceleration": 89408, // should always be the same as top speed
"theoretical_min_deceleration": 15000,
"theoretical_min_deceleration": 15000,
"theoretical_max_deceleration": 44704, // should always be top speed / 2
"theoretical_max_deceleration": 44704, // should always be top speed / 2


// Turning rate constraints for turning facing - all values as angles / second - theoretical values
// Turning rate constraints for turning facing - all values as angles / second - theoretical values
"theoretical_max_turning_rate": 180,
"theoretical_max_turning_rate": 180,


// Direction change rate constraints - all values as angles / second - theoretical values per speed range (walk/jog/run)
// Direction change rate constraints - all values as angles / second - theoretical values per speed range (walk/jog/run)
"theoretical_max_potential_direction_change_walk": 192,
"theoretical_max_potential_direction_change_walk": 192,
"theoretical_min_potential_direction_change_walk": 52,
"theoretical_min_potential_direction_change_walk": 52,
"theoretical_max_potential_direction_change_jog": 104,
"theoretical_max_potential_direction_change_jog": 104,
"theoretical_min_potential_direction_change_jog": 15,
"theoretical_min_potential_direction_change_jog": 15,
"theoretical_max_potential_direction_change_run": 53,
"theoretical_max_potential_direction_change_run": 53,
"theoretical_min_potential_direction_change_run": 15,
"theoretical_min_potential_direction_change_run": 15,


// Delays - all values as milliseconds at 250ms intervals (these will be stored internally as match slices - one slice is 0.25s, so 4 slices are 1s)
// Delays - all values as milliseconds at 250ms intervals (these will be stored internally as match slices - one slice is 0.25s, so 4 slices are 1s)
"min_delay_for_diving_header": 2000, // 2s - 8 slices
"min_delay_for_diving_header": 2000, // 2s - 8 slices
"min_delay_for_normal_header": 1000, // 1s - 4 slices
"min_delay_for_normal_header": 1000, // 1s - 4 slices


"min_delay_for_slide_tackle_do": 2000, // 2s - 8 slices
"min_delay_for_slide_tackle_do": 2000, // 2s - 8 slices
"min_delay_for_slide_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_slide_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_ball_lunge_do": 2000, // 2s - 8 slices
"min_delay_for_ball_lunge_do": 2000, // 2s - 8 slices
"min_delay_for_ball_lunge_receive": 3000, // 3s - 12 slices
"min_delay_for_ball_lunge_receive": 3000, // 3s - 12 slices
"min_delay_for_block_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_block_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_block_tackle_receive": 1000, // 1s - 4 slices
"min_delay_for_block_tackle_receive": 1000, // 1s - 4 slices
"min_delay_for_deflect_ball_do": 250, // 0.25s - 1 slices
"min_delay_for_deflect_ball_do": 250, // 0.25s - 1 slices
"min_delay_for_deflect_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_deflect_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_shoulder_charge_do": 500, // 0.5s - 2 slices
"min_delay_for_shoulder_charge_do": 500, // 0.5s - 2 slices
"min_delay_for_shoulder_charge_receive": 2000, // 2s - 8 slices
"min_delay_for_shoulder_charge_receive": 2000, // 2s - 8 slices
"min_delay_for_force_opponent_to_lose_ball_do": 500, // 0.5s - 2 slices
"min_delay_for_force_opponent_to_lose_ball_do": 500, // 0.5s - 2 slices
"min_delay_for_force_opponent_to_lose_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_force_opponent_to_lose_ball_receive": 500, // 0.5s - 2 slices
"min_delay_for_shirt_tug_do": 0, // 0
"min_delay_for_shirt_tug_do": 0, // 0
"min_delay_for_shirt_tug_receive": 500, // 0.5s - 2 slices
"min_delay_for_shirt_tug_receive": 500, // 0.5s - 2 slices
"min_delay_for_obstruct_do": 1000, // 1s - 4 slices
"min_delay_for_obstruct_do": 1000, // 1s - 4 slices
"min_delay_for_obstruct_receive": 2000, // 2s - 8 slices
"min_delay_for_obstruct_receive": 2000, // 2s - 8 slices
"min_delay_for_two_footed_tackle_do": 2000, // 2s - 8 slices
"min_delay_for_two_footed_tackle_do": 2000, // 2s - 8 slices
"min_delay_for_two_footed_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_two_footed_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_trip_do": 1000, // 1s - 4 slices
"min_delay_for_trip_do": 1000, // 1s - 4 slices
"min_delay_for_trip_receive": 3000, // 3s - 12 slices
"min_delay_for_trip_receive": 3000, // 3s - 12 slices
"min_delay_for_foot_up_in_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_foot_up_in_tackle_do": 1000, // 1s - 4 slices
"min_delay_for_foot_up_in_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_foot_up_in_tackle_receive": 3000, // 3s - 12 slices
"min_delay_for_push_opponent_do": 500, // 0.5s - 2 slices
"min_delay_for_push_opponent_do": 500, // 0.5s - 2 slices
"min_delay_for_push_opponen_receive": 2000, // 2s - 8 slices
"min_delay_for_push_opponen_receive": 2000, // 2s - 8 slices
"min_delay_for_violent_act_do": 500, // 0.5s - 2 slices - elbow, punch, head butt, kick, shove
"min_delay_for_violent_act_do": 500, // 0.5s - 2 slices - elbow, punch, head butt, kick, shove
"min_delay_for_violent_act_receive": 1000, // 1s - 4 slices
"min_delay_for_violent_act_receive": 1000, // 1s - 4 slices
"min_delay_for_celebrating_a_goal": 3000, // 3s - 12 slices
"min_delay_for_celebrating_a_goal": 3000, // 3s - 12 slices


"min_delay_keeper_save_intentionally_drop_ball": 500, // 0.5s - 2 slices
"min_delay_keeper_save_intentionally_drop_ball": 500, // 0.5s - 2 slices
"min_delay_keeper_save_dive_and_hold_ball": 2000, // 2s - 8 slices
"min_delay_keeper_save_dive_and_hold_ball": 2000, // 2s - 8 slices
"min_delay_keeper_save_dive_but_not_held": 750, // 0.75s - 3 slices
"min_delay_keeper_save_dive_but_not_held": 750, // 0.75s - 3 slices
"min_delay_keeper_save_no_dive_hold_ball": 500, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_hold_ball": 500, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_not_held": 500, // 0.5s - 2 slices
"min_delay_keeper_save_no_dive_not_held": 500, // 0.5s - 2 slices
"min_delay_keeper_drop_ball_for_distribution": 1000, // 1s - 4 slices
"min_delay_keeper_drop_ball_for_distribution": 1000, // 1s - 4 slices


"min_delay_for_getting_injured": 2000, // 2s - 8 slices
"min_delay_for_getting_injured": 2000, // 2s - 8 slices
"min_extra_delay_for_falling_down_before_injury": 4000, // 4s - 16 slices
"min_extra_delay_for_falling_down_before_injury": 4000, // 4s - 16 slices


"min_delay_for_player_stop_to_avoid_collision": 500 // 0.5s - 2 slices
"min_delay_for_player_stop_to_avoid_collision": 500 // 0.5s - 2 slices
}
}


],
],
}
}