﻿-- chunkname: @scripts/extension_systems/behavior/utility_considerations/renegade_captain_utility_considerations.lua

local considerations = {
	renegade_captain_charge = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "charge",
			is_condition = true,
		},
		last_weapon_switch = {
			blackboard_component = "weapon_switch",
			component_field = "last_weapon_switch_t",
			max_value = 10,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 15,
			spline = {
				0,
				0,
				0.4,
				0,
				0.7,
				1,
				1,
				1,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_time = {
			component_field = "last_time",
			max_value = 10,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	renegade_captain_throw_fire_grenade = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "fire_grenade",
			is_condition = true,
		},
		last_weapon_switch = {
			blackboard_component = "weapon_switch",
			component_field = "last_weapon_switch_t",
			max_value = 10,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 12,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_done_time = {
			component_field = "last_done_time",
			max_value = 30,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	renegade_captain_throw_frag_grenade = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 12,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_done_time = {
			component_field = "last_done_time",
			max_value = 10,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	renegade_captain_kick = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 6,
			spline = {
				0,
				1,
				0.52,
				1,
				0.57002,
				0,
				1,
				0,
			},
		},
		distance_to_target_z = {
			blackboard_component = "perception",
			component_field = "target_distance_z",
			max_value = 3.75,
			spline = {
				0,
				1,
				0.5,
				0,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_done_time = {
			component_field = "last_done_time",
			max_value = 10,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	renegade_captain_punch = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "punch",
			is_condition = true,
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 6,
			spline = {
				0,
				1,
				0.52,
				1,
				0.57002,
				0,
				1,
				0,
			},
		},
		target_speed_away = {
			blackboard_component = "perception",
			component_field = "target_speed_away",
			max_value = 4,
			spline = {
				0,
				1,
				0.1,
				1,
				0.1001,
				0,
				1,
				0,
			},
		},
		distance_to_target_z = {
			blackboard_component = "perception",
			component_field = "target_distance_z",
			max_value = 3.75,
			spline = {
				0,
				1,
				0.5,
				0,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_done_time = {
			component_field = "last_done_time",
			max_value = 20,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	renegade_captain_void_shield_explosion = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "void_shield_explosion",
			is_condition = true,
		},
		shield_toughness = {
			blackboard_component = "toughness",
			component_field = "toughness_percent",
			max_value = 1,
			spline = {
				0,
				0,
				0.01,
				1,
				0.5,
				0.5,
				0.5001,
				0,
				1,
				0,
			},
		},
		nearby_units = {
			blackboard_component = "nearby_units_broadphase",
			component_field = "num_units",
			max_value = 4,
			spline = {
				0,
				0,
				0.25,
				0.25,
				0.5,
				0.5,
				0.75,
				0.75,
				1,
				1,
			},
		},
		distance_to_target_z = {
			blackboard_component = "perception",
			component_field = "target_distance_z",
			max_value = 2.25,
			spline = {
				0,
				1,
				0.5,
				0,
				1,
				0,
			},
		},
		last_done_time = {
			component_field = "last_done_time",
			max_value = 30,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		has_slot = {
			blackboard_component = "slot",
			component_field = "has_slot",
			is_condition = true,
		},
	},
	renegade_captain_hellgun_shoot = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "hellgun_shoot",
			is_condition = true,
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 60,
			spline = {
				0,
				1,
				0.5,
				1,
				0.900001,
				1,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	renegade_captain_hellgun_spray_and_pray = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 60,
			spline = {
				0,
				1,
				0.5,
				1,
				0.900001,
				1,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_time = {
			component_field = "last_time",
			max_value = 60,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	renegade_captain_hellgun_sweep_shoot = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "hellgun_sweep_shoot",
			is_condition = true,
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 60,
			spline = {
				0,
				1,
				0.5,
				1,
				0.900001,
				1,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	renegade_captain_hellgun_strafe_shoot = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "hellgun_strafe_shoot",
			is_condition = true,
		},
		distance_to_combat_vector = {
			blackboard_component = "combat_vector",
			component_field = "distance",
			max_value = 2,
			spline = {
				0,
				0,
				0.5,
				0,
				0.50001,
				1,
				1,
				1,
			},
		},
		has_combat_vector_position = {
			blackboard_component = "combat_vector",
			component_field = "has_position",
			is_condition = true,
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	renegade_captain_bolt_pistol_shoot = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 22,
			spline = {
				0,
				1,
				0.5,
				1,
				0.900001,
				0.25,
				1,
				0.1,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	renegade_captain_shotgun_shoot = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "shotgun_shoot",
			is_condition = true,
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 10,
			spline = {
				0,
				1,
				0.5,
				1,
				0.900001,
				0.25,
				1,
				0.1,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	renegade_captain_shotgun_strafe_shoot = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "shotgun_strafe_shoot",
			is_condition = true,
		},
		distance_to_combat_vector = {
			blackboard_component = "combat_vector",
			component_field = "distance",
			max_value = 2,
			spline = {
				0,
				0,
				0.5,
				0,
				0.50001,
				1,
				1,
				1,
			},
		},
		has_combat_vector_position = {
			blackboard_component = "combat_vector",
			component_field = "has_position",
			is_condition = true,
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	renegade_captain_power_sword_moving_melee_attack = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 5.6,
			spline = {
				0,
				1,
				0.589,
				1,
				0.62002,
				0,
				1,
				0,
			},
		},
		target_speed_away = {
			blackboard_component = "perception",
			component_field = "target_speed_away",
			max_value = 4,
			spline = {
				0,
				1,
				0.1,
				1,
				0.1001,
				0,
				1,
				0,
			},
		},
		distance_to_target_z = {
			blackboard_component = "perception",
			component_field = "target_distance_z",
			max_value = 3.75,
			spline = {
				0,
				1,
				0.5,
				0,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	renegade_captain_power_sword_melee_combo_attack = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "power_sword_melee_combo_attack",
			is_condition = true,
		},
		slot_distance = {
			blackboard_component = "slot",
			component_field = "slot_distance",
			max_value = 4,
			spline = {
				0,
				1,
				0.5,
				1,
				0.9,
				0,
				1,
				0,
			},
		},
		distance_to_target_z = {
			blackboard_component = "perception",
			component_field = "target_distance_z",
			max_value = 3.75,
			spline = {
				0,
				1,
				0.5,
				0,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		has_slot = {
			blackboard_component = "slot",
			component_field = "has_slot",
			is_condition = true,
		},
	},
	renegade_captain_power_sword_melee_sweep = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 7,
			spline = {
				0,
				1,
				0.589,
				1,
				0.60002,
				0,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		nearby_units = {
			blackboard_component = "nearby_units_broadphase",
			component_field = "num_units",
			max_value = 4,
			spline = {
				0,
				0,
				0.25,
				0.25,
				0.5,
				0.5,
				0.75,
				0.75,
				1,
				1,
			},
		},
		last_time = {
			component_field = "last_time",
			max_value = 20,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	renegade_captain_powermaul_ground_slam_attack = {
		is_available = {
			blackboard_component = "available_attacks",
			component_field = "powermaul_ground_slam_attack",
			is_condition = true,
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 5.4,
			spline = {
				0,
				1,
				0.589,
				1,
				0.62002,
				0,
				1,
				0,
			},
		},
		target_speed_away = {
			blackboard_component = "perception",
			component_field = "target_speed_away",
			max_value = 4,
			spline = {
				0,
				1,
				0.1,
				1,
				0.1001,
				0,
				1,
				0,
			},
		},
		distance_to_target_z = {
			blackboard_component = "perception",
			component_field = "target_distance_z",
			max_value = 3.75,
			spline = {
				0,
				1,
				0.5,
				0,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	renegade_captain_plasma_pistol_shoot = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 22,
			spline = {
				0,
				1,
				0.5,
				1,
				0.900001,
				0.25,
				1,
				0.1,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	renegade_captain_plasma_pistol_shoot_volley = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 22,
			spline = {
				0,
				1,
				0.5,
				1,
				0.900001,
				0.25,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_time = {
			component_field = "last_time",
			max_value = 20,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	twin_captain_power_sword_melee_combo_attack = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 6,
			spline = {
				0,
				1,
				0.52,
				1,
				0.57002,
				0,
				1,
				0,
			},
		},
		distance_to_target_z = {
			blackboard_component = "perception",
			component_field = "target_distance_z",
			max_value = 3.75,
			spline = {
				0,
				1,
				0.5,
				0,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	twin_captain_dash = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 15,
			spline = {
				0,
				0,
				0.4,
				0,
				0.7,
				1,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_time = {
			component_field = "last_time",
			max_value = 8,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	twin_captain_random_dash = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 20,
			spline = {
				0,
				0,
				0.4,
				0,
				0.7,
				1,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_time = {
			component_field = "last_time",
			max_value = 30,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	twin_captain_multithrow = {
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_done_time = {
			component_field = "last_done_time",
			max_value = 20,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 15,
			spline = {
				0,
				0,
				0.2,
				0,
				0.7,
				1,
				1,
				0,
			},
		},
	},
	twin_captain_multithrow_empowered = {
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_done_time = {
			component_field = "last_done_time",
			max_value = 8,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 20,
			spline = {
				0,
				0,
				0.2,
				0,
				0.7,
				1,
				1,
				0,
			},
		},
	},
	twin_captain_quickthrow = {
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_done_time = {
			component_field = "last_done_time",
			max_value = 10,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 20,
			spline = {
				0,
				0,
				0.2,
				0,
				0.7,
				1,
				1,
				0,
			},
		},
	},
	twin_captain_void_shield_explosion = {
		shield_toughness = {
			blackboard_component = "toughness",
			component_field = "toughness_percent",
			max_value = 1,
			spline = {
				0,
				0,
				0.01,
				1,
				0.5,
				0.5,
				0.5001,
				0,
				1,
				0,
			},
		},
		nearby_units = {
			blackboard_component = "nearby_units_broadphase",
			component_field = "num_units",
			max_value = 4,
			spline = {
				0,
				0,
				0.25,
				0.25,
				0.5,
				0.5,
				0.75,
				0.75,
				1,
				1,
			},
		},
		distance_to_target_z = {
			blackboard_component = "perception",
			component_field = "target_distance_z",
			max_value = 2.25,
			spline = {
				0,
				1,
				0.5,
				0,
				1,
				0,
			},
		},
		last_done_time = {
			component_field = "last_done_time",
			max_value = 30,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
	},
	twin_captain_dash_and_sweep = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 20,
			spline = {
				0,
				0,
				0.4,
				0,
				0.7,
				1,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_time = {
			component_field = "last_time",
			max_value = 30,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
	twin_kick = {
		distance_to_target = {
			blackboard_component = "perception",
			component_field = "target_distance",
			max_value = 4,
			spline = {
				0,
				1,
				0.52,
				1,
				0.57002,
				0,
				1,
				0,
			},
		},
		distance_to_target_z = {
			blackboard_component = "perception",
			component_field = "target_distance_z",
			max_value = 3.75,
			spline = {
				0,
				1,
				0.5,
				0,
				1,
				0,
			},
		},
		has_line_of_sight = {
			blackboard_component = "perception",
			component_field = "has_line_of_sight",
			is_condition = true,
		},
		last_time = {
			component_field = "last_time",
			max_value = 15,
			time_diff = true,
			spline = {
				0,
				0,
				0.5,
				0,
				0.5001,
				1,
				1,
				1,
			},
		},
	},
}

return considerations
