﻿battlefield_duel_torturer_clear_rescue_scopes_effect = {
	clear_saved_scope = battlefield_duel_torturer_rescuer
	clear_saved_scope = battlefield_duel_torturer_enemy_side
	clear_saved_scope = battlefield_duel_torturer_candidate_1
	clear_saved_scope = battlefield_duel_torturer_candidate_2
}

battlefield_duel_torturer_family_opinion_effect = {
	scope:enemy_knight = {
		every_spouse = {
			limit = {
				is_alive = yes
				NOT = { this = root }
			}
			add_to_temporary_list = battlefield_duel_torturer_close_family_list
		}
		every_close_family_member = {
			limit = {
				is_alive = yes
				NOT = { this = root }
				OR = {
					is_parent_of = scope:enemy_knight
					is_child_of = scope:enemy_knight
					is_sibling_of = scope:enemy_knight
				}
			}
			add_to_temporary_list = battlefield_duel_torturer_close_family_list
		}
	}

	every_in_list = {
		list = battlefield_duel_torturer_close_family_list
		if = {
			limit = { scope:enemy_knight = { has_trait = blind } }
			add_opinion = {
				target = root
				modifier = battlefield_duel_blinded_my_family_member_opinion
			}
		}
		else = {
			add_opinion = {
				target = root
				modifier = battlefield_duel_mutilated_my_family_member_opinion
			}
		}
	}
}

battlefield_duel_torturer_find_rescuer_effect = {
	# Rescuers come from the victim's side, strongest duty first.
	battlefield_duel_torturer_clear_rescue_scopes_effect = yes

	if = {
		limit = { exists = commanding_army.involved_combat_side.enemy_side }
		commanding_army = {
			involved_combat_side = {
				enemy_side = { save_scope_as = battlefield_duel_torturer_enemy_side }
			}
		}
	}

	if = {
		limit = { exists = scope:battlefield_duel_torturer_enemy_side }
		scope:enemy_knight = {
			random_relation = {
				type = bodyguard
				limit = { battlefield_duel_torturer_rescuer_candidate_trigger = yes }
				save_scope_as = battlefield_duel_torturer_rescuer
			}
		}
	}

	if = {
		limit = {
			exists = scope:battlefield_duel_torturer_enemy_side
			NOT = { exists = scope:battlefield_duel_torturer_rescuer }
		}
		scope:enemy_knight = {
			random_court_position_holder = {
				type = bodyguard_court_position
				limit = { battlefield_duel_torturer_rescuer_candidate_trigger = yes }
				save_scope_as = battlefield_duel_torturer_rescuer
			}
		}
	}

	if = {
		limit = {
			exists = scope:battlefield_duel_torturer_enemy_side
			NOT = { exists = scope:battlefield_duel_torturer_rescuer }
		}
		scope:enemy_knight = {
			random_court_position_holder = {
				type = household_guard_court_position
				limit = { battlefield_duel_torturer_rescuer_candidate_trigger = yes }
				save_scope_as = battlefield_duel_torturer_rescuer
			}
		}
	}

	if = {
		limit = {
			exists = scope:battlefield_duel_torturer_enemy_side
			NOT = { exists = scope:battlefield_duel_torturer_rescuer }
			exists = title:h_the_iron_throne.holder
			scope:enemy_knight = {
				OR = {
					this = title:h_the_iron_throne.holder
					is_primary_heir_of = title:h_the_iron_throne.holder
					is_child_of = title:h_the_iron_throne.holder
				}
			}
		}
		title:h_the_iron_throne.holder = {
			random_councillor = {
				limit = {
					OR = {
						has_council_position = kingsguard_lord_commander
						has_council_position = kingsguard_1
						has_council_position = kingsguard_2
						has_council_position = kingsguard_3
						has_council_position = kingsguard_4
						has_council_position = kingsguard_5
						has_council_position = kingsguard_6
					}
					battlefield_duel_torturer_rescuer_candidate_trigger = yes
				}
				save_scope_as = battlefield_duel_torturer_rescuer
			}
		}
	}

	if = {
		limit = {
			exists = scope:battlefield_duel_torturer_enemy_side
			NOT = { exists = scope:battlefield_duel_torturer_rescuer }
		}
		scope:battlefield_duel_torturer_enemy_side = {
			random_side_knight = {
				limit = { battlefield_duel_torturer_close_rescuer_trigger = yes }
				save_scope_as = battlefield_duel_torturer_candidate_1
			}
			if = {
				limit = {
					exists = side_commander
					side_commander = { battlefield_duel_torturer_close_rescuer_trigger = yes }
				}
				side_commander = { save_scope_as = battlefield_duel_torturer_candidate_2 }
			}
		}
		if = {
			limit = {
				OR = {
					exists = scope:battlefield_duel_torturer_candidate_1
					exists = scope:battlefield_duel_torturer_candidate_2
				}
			}
			random_list = {
				50 = {
					trigger = { exists = scope:battlefield_duel_torturer_candidate_1 }
					scope:battlefield_duel_torturer_candidate_1 = { save_scope_as = battlefield_duel_torturer_rescuer }
				}
				50 = {
					trigger = { exists = scope:battlefield_duel_torturer_candidate_2 }
					scope:battlefield_duel_torturer_candidate_2 = { save_scope_as = battlefield_duel_torturer_rescuer }
				}
			}
		}
	}

	clear_saved_scope = battlefield_duel_torturer_candidate_1
	clear_saved_scope = battlefield_duel_torturer_candidate_2

	if = {
		limit = {
			exists = scope:battlefield_duel_torturer_enemy_side
			NOT = { exists = scope:battlefield_duel_torturer_rescuer }
		}
		scope:battlefield_duel_torturer_enemy_side = {
			random_side_knight = {
				limit = { battlefield_duel_torturer_rescuer_candidate_trigger = yes }
				save_scope_as = battlefield_duel_torturer_candidate_1
			}
			if = {
				limit = {
					exists = side_commander
					side_commander = { battlefield_duel_torturer_rescuer_candidate_trigger = yes }
				}
				side_commander = { save_scope_as = battlefield_duel_torturer_candidate_2 }
			}
		}
		if = {
			limit = {
				OR = {
					exists = scope:battlefield_duel_torturer_candidate_1
					exists = scope:battlefield_duel_torturer_candidate_2
				}
			}
			random_list = {
				50 = {
					trigger = { exists = scope:battlefield_duel_torturer_candidate_1 }
					scope:battlefield_duel_torturer_candidate_1 = { save_scope_as = battlefield_duel_torturer_rescuer }
				}
				50 = {
					trigger = { exists = scope:battlefield_duel_torturer_candidate_2 }
					scope:battlefield_duel_torturer_candidate_2 = { save_scope_as = battlefield_duel_torturer_rescuer }
				}
			}
		}
	}

	clear_saved_scope = battlefield_duel_torturer_candidate_1
	clear_saved_scope = battlefield_duel_torturer_candidate_2
}
