﻿battlefield_duel_opportunity_clear_candidates_effect = {
	clear_saved_scope = battlefield_duel_opportunity_candidate_1
	clear_saved_scope = battlefield_duel_opportunity_candidate_2
	clear_saved_scope = battlefield_duel_opportunity_actor
	clear_saved_scope = battlefield_duel_opportunity_combat_side
}

battlefield_duel_opportunity_clear_transient_effect = {
	remove_character_flag = battlefield_duel_opportunity_window
	remove_character_flag = battlefield_duel_opportunity_prompt
	battlefield_duel_opportunity_clear_candidates_effect = yes
}

battlefield_duel_opportunity_schedule_effect = {
	add_character_flag = { flag = battlefield_duel_opportunity_window days = 30 }

	trigger_event = { id = battlefield_duel.9300 days = 1 }
}

battlefield_duel_opportunity_roll_once_effect = {
	# Unexpected goes first. Opportunity rolls once and waits if the battle is busy.
	add_character_flag = { flag = battlefield_duel_opportunity_roll_done_current_battle days = 30 }

	if = {

		limit = { has_character_flag = battlefield_duel_ai_challenge_auto_window }
	}
	else_if = {
		limit = { has_game_rule = agot_battlefield_duel_opportunity_disabled }
	}
	else_if = {
		limit = { has_game_rule = agot_battlefield_duel_opportunity_every_battle }
		battlefield_duel_opportunity_schedule_effect = yes
	}
	else_if = {
		limit = { has_game_rule = agot_battlefield_duel_opportunity_frequent }
		random_list = {
			75 = { battlefield_duel_opportunity_schedule_effect = yes }
			25 = { }
		}
	}
	else_if = {
		limit = { has_game_rule = agot_battlefield_duel_opportunity_occasional }
		random_list = {
			25 = { battlefield_duel_opportunity_schedule_effect = yes }
			75 = { }
		}
	}
	else = {

		random_list = {
			50 = { battlefield_duel_opportunity_schedule_effect = yes }
			50 = { }
		}
	}
}

battlefield_duel_opportunity_collect_candidates_effect = {
	# Only pull fighters from the player's exact enemy side.
	battlefield_duel_opportunity_clear_candidates_effect = yes
	root = { save_scope_as = battlefield_duel_opportunity_actor }
	commanding_army = {
		involved_combat_side = { save_scope_as = battlefield_duel_opportunity_combat_side }
	}

	if = {
		limit = { exists = scope:battlefield_duel_opportunity_combat_side.enemy_side }
		scope:battlefield_duel_opportunity_combat_side.enemy_side = {
			random_side_knight = {
				limit = { battlefield_duel_opportunity_candidate_trigger = yes }
				save_scope_as = battlefield_duel_opportunity_candidate_1
			}
			random_side_knight = {
				limit = {
					battlefield_duel_opportunity_candidate_trigger = yes
					trigger_if = {
						limit = { exists = scope:battlefield_duel_opportunity_candidate_1 }
						NOT = { this = scope:battlefield_duel_opportunity_candidate_1 }
					}
				}
				save_scope_as = battlefield_duel_opportunity_candidate_2
			}
		}
	}

	if = {
		limit = {
			exists = scope:battlefield_duel_opportunity_combat_side.enemy_side.side_commander
			scope:battlefield_duel_opportunity_combat_side.enemy_side.side_commander = {
				battlefield_duel_opportunity_candidate_trigger = yes
				trigger_if = {
					limit = { exists = scope:battlefield_duel_opportunity_candidate_1 }
					NOT = { this = scope:battlefield_duel_opportunity_candidate_1 }
				}
				trigger_if = {
					limit = { exists = scope:battlefield_duel_opportunity_candidate_2 }
					NOT = { this = scope:battlefield_duel_opportunity_candidate_2 }
				}
			}
		}
		if = {
			limit = { NOT = { exists = scope:battlefield_duel_opportunity_candidate_1 } }
			scope:battlefield_duel_opportunity_combat_side.enemy_side.side_commander = { save_scope_as = battlefield_duel_opportunity_candidate_1 }
		}
		else_if = {
			limit = { NOT = { exists = scope:battlefield_duel_opportunity_candidate_2 } }
			scope:battlefield_duel_opportunity_combat_side.enemy_side.side_commander = { save_scope_as = battlefield_duel_opportunity_candidate_2 }
		}
	}
}

battlefield_duel_opportunity_begin_manual_seek_effect = {
	add_character_flag = { flag = battlefield_duel_ai_challenge_resolved_current_battle days = 30 }
	remove_character_flag = battlefield_duel_ai_challenge_auto_window
	remove_character_flag = battlefield_duel_opportunity_window
	remove_character_flag = battlefield_duel_opportunity_prompt
	battlefield_duel_opportunity_clear_candidates_effect = yes
	battlefield_duel_seek_combat_prepare_effect = yes
	trigger_event = { id = battlefield_duel.9000 }
}
