﻿battlefield_duel_agot_not_war_decider_trigger = {
	# Keep war leaders and their heirs out of automatic duels.
	OR = {

		NOT = { exists = scope:combat_side.combat.combat_war }
		AND = {
			NOT = { scope:combat_side.combat.combat_war.primary_attacker ?= this }
			NOT = { scope:combat_side.combat.combat_war.primary_defender ?= this }
			NOT = { scope:combat_side.combat.combat_war.primary_attacker.primary_heir ?= this }
			NOT = { scope:combat_side.combat.combat_war.primary_defender.primary_heir ?= this }
			NOT = { scope:combat_side.combat.combat_war.primary_attacker.player_heir ?= this }
			NOT = { scope:combat_side.combat.combat_war.primary_defender.player_heir ?= this }
		}
	}
}

battlefield_duel_agot_not_war_decider_from_actor_army_strict_trigger = {
	OR = {

		NOT = { exists = scope:actor.commanding_army.involved_combat_side.combat.combat_war }
		AND = {
			NOT = { scope:actor.commanding_army.involved_combat_side.combat.combat_war.primary_attacker ?= this }
			NOT = { scope:actor.commanding_army.involved_combat_side.combat.combat_war.primary_defender ?= this }
			NOT = { scope:actor.commanding_army.involved_combat_side.combat.combat_war.primary_attacker.primary_heir ?= this }
			NOT = { scope:actor.commanding_army.involved_combat_side.combat.combat_war.primary_defender.primary_heir ?= this }
			NOT = { scope:actor.commanding_army.involved_combat_side.combat.combat_war.primary_attacker.player_heir ?= this }
			NOT = { scope:actor.commanding_army.involved_combat_side.combat.combat_war.primary_defender.player_heir ?= this }
		}
	}
}

battlefield_duel_agot_not_war_decider_from_actor_army_trigger = {
	# Manual Seek can reach a primary war leader only after the 75% war-score gate.
	OR = {
		battlefield_duel_agot_not_war_decider_from_actor_army_strict_trigger = yes
		AND = {
			exists = scope:actor.commanding_army.involved_combat_side.combat.combat_war
			scope:actor.commanding_army.involved_combat_side.combat.combat_war.primary_defender ?= this
			scope:actor.commanding_army.involved_combat_side.combat.combat_war = {
				attacker_war_score >= 75
			}
		}
		AND = {
			exists = scope:actor.commanding_army.involved_combat_side.combat.combat_war
			scope:actor.commanding_army.involved_combat_side.combat.combat_war.primary_attacker ?= this
			scope:actor.commanding_army.involved_combat_side.combat.combat_war = {
				attacker_war_score <= -75
			}
		}
	}
}

battlefield_duel_seek_combat_late_war_primary_target_trigger = {
	exists = scope:battlefield_duel_manual_actor
	scope:battlefield_duel_manual_actor = {
		is_commanding_army = yes
		commanding_army = { is_army_in_combat = yes }
	}
	exists = scope:battlefield_duel_manual_actor.commanding_army.involved_combat_side.combat.combat_war
	OR = {
		AND = {
			scope:battlefield_duel_manual_actor.commanding_army.involved_combat_side.combat.combat_war.primary_defender ?= this
			scope:battlefield_duel_manual_actor.commanding_army.involved_combat_side.combat.combat_war = { attacker_war_score >= 75 }
		}
		AND = {
			scope:battlefield_duel_manual_actor.commanding_army.involved_combat_side.combat.combat_war.primary_attacker ?= this
			scope:battlefield_duel_manual_actor.commanding_army.involved_combat_side.combat.combat_war = { attacker_war_score <= -75 }
		}
	}
}

battlefield_duel_shared_duel_will_end_in_my_death_trigger = {
	NOT = { scope:fatality = flag:no }
	OR = {

		scope:sc_attacker = {
			OR = {
				AND = { is_ruler = yes government_has_flag = government_is_tribal }
				AND = { is_ruler = no exists = court_owner court_owner = { government_has_flag = government_is_tribal } }
				AND = { is_ruler = no exists = host host = { government_has_flag = government_is_tribal } }
				AND = {
					is_ruler = no
					NOR = { exists = court_owner exists = host }
					scope:sc_defender = {
						OR = {
							AND = { is_ruler = yes government_has_flag = government_is_tribal }
							AND = { is_ruler = no exists = court_owner court_owner = { government_has_flag = government_is_tribal } }
							AND = { is_ruler = no exists = host host = { government_has_flag = government_is_tribal } }
						}
					}
				}
			}
		}
		AND = { scope:fatality = flag:possible has_trait = wounded_3 }
		scope:fatality = flag:always
	}
}

battlefield_duel_shared_rocky_locale_trigger = {
	OR = {
		agot_is_hills_terrain = yes
		agot_is_mountains_terrain = yes
		agot_is_desert_mountains_terrain = yes
		agot_is_glacier_terrain = yes
		agot_is_canyon_terrain = yes
		agot_is_highlands_terrain = yes
	}
}

battlefield_duel_ai_challenge_interceptor_eligible_trigger = {
	is_alive = yes
	is_imprisoned = no
	is_in_army = yes
	is_at_same_location = scope:battlefield_duel_ai_challenge_player
	NOT = { this = scope:battlefield_duel_ai_challenge_player }
	is_current_dragonrider_warfare = no
	NOT = { has_trait = incapable }
	NOT = { has_character_flag = already_fighting }
	NOT = { has_character_flag = battlefiel_duel_recipient_spare }
	NOT = { has_variable = engaged_in_single_combat }
	trigger_if = {
		limit = { has_game_rule = agot_battlefield_duel_cooldown_on }
		NOT = { has_character_flag = agot_battlefield_duel_cooldown }
	}
	OR = {
		AND = {
			exists = knight_army
			knight_army = {
				is_army_in_combat = yes
				involved_combat_side = {
					this = scope:battlefield_duel_ai_challenge_player.commanding_army.involved_combat_side
				}
			}
		}
		AND = {
			exists = commanding_army
			commanding_army = {
				is_army_in_combat = yes
				involved_combat_side = {
					this = scope:battlefield_duel_ai_challenge_player.commanding_army.involved_combat_side
				}
			}
		}
	}
}

battlefield_duel_seek_combat_present_protector_eligible_trigger = {
	exists = scope:battlefield_duel_manual_actor
	is_alive = yes
	is_imprisoned = no
	is_in_army = yes
	is_at_same_location = scope:battlefield_duel_manual_actor
	NOT = { scope:battlefield_duel_manual_actor ?= this }
	NOT = { this = scope:battlefield_duel_seek_combat_target }
	is_current_dragonrider_warfare = no
	NOT = { has_trait = incapable }
	NOT = { has_character_flag = already_fighting }
	NOT = { has_character_flag = battlefiel_duel_recipient_spare }
	NOT = { has_variable = engaged_in_single_combat }
	NOT = { has_character_flag = battlefield_duel_seek_combat_gauntlet_defeated }
	battlefield_duel_agot_not_war_decider_from_actor_army_strict_trigger = yes
	trigger_if = {
		limit = { has_game_rule = agot_battlefield_duel_cooldown_on }
		NOT = { has_character_flag = agot_battlefield_duel_cooldown }
	}
	OR = {
		AND = {
			exists = knight_army
			knight_army = {
				is_army_in_combat = yes
				involved_combat_side = {
					this = scope:battlefield_duel_seek_combat_target_army.involved_combat_side
				}
			}
		}
		AND = {
			exists = commanding_army
			commanding_army = {
				is_army_in_combat = yes
				involved_combat_side = {
					this = scope:battlefield_duel_seek_combat_target_army.involved_combat_side
				}
			}
		}
	}
}

battlefield_duel_seek_combat_personal_protector_fallback_trigger = {
	# Personal protectors may accompany the campaign without being moved into the army.
	exists = scope:battlefield_duel_manual_actor
	is_alive = yes
	is_imprisoned = no
	is_hostage = no
	is_travelling = no
	NOT = { exists = involved_activity }
	is_in_army = no
	NOT = { scope:battlefield_duel_manual_actor ?= this }
	NOT = { this = scope:battlefield_duel_seek_combat_target }
	is_current_dragonrider_warfare = no
	NOT = { has_trait = incapable }
	NOT = { has_character_flag = already_fighting }
	NOT = { has_character_flag = battlefiel_duel_recipient_spare }
	NOT = { has_variable = engaged_in_single_combat }
	NOT = { has_character_flag = battlefield_duel_seek_combat_gauntlet_defeated }
	battlefield_duel_agot_not_war_decider_from_actor_army_strict_trigger = yes
	trigger_if = {
		limit = { has_game_rule = agot_battlefield_duel_cooldown_on }
		NOT = { has_character_flag = agot_battlefield_duel_cooldown }
	}
}

battlefield_duel_seek_combat_current_opponent_present_trigger = {
	OR = {
		is_at_same_location = root
		bdp_seek_current_force_owner_opponent_present_trigger = yes
		AND = {
			root = { has_character_flag = battlefield_duel_seek_combat_bodyguard_gate }
			exists = scope:battlefield_duel_seek_combat_bodyguard
			scope:battlefield_duel_seek_combat_bodyguard ?= this
		}
	}
}

battlefield_duel_ai_challenge_prodigy_squire_eligible_trigger = {
	# Prodigies are the one narrow under-16 exception.
	is_alive = yes
	is_imprisoned = no
	is_hostage = no
	is_travelling = no
	NOT = { exists = involved_activity }
	is_in_the_same_court_as = scope:battlefield_duel_ai_challenge_player
	is_current_dragonrider_warfare = no
	NOT = { has_trait = incapable }
	NOT = { has_character_flag = already_fighting }
	NOT = { has_variable = engaged_in_single_combat }
	has_trait = squire
	age >= 12
	age < 16
	prowess >= extremely_high_skill_rating
	trigger_if = {
		limit = { has_game_rule = agot_battlefield_duel_cooldown_on }
		NOT = { has_character_flag = agot_battlefield_duel_cooldown }
	}
}

battlefield_duel_ai_challenge_squire_eligible_trigger = {
	has_trait = squire
	OR = {
		AND = {
			age >= 16
			battlefield_duel_ai_challenge_interceptor_eligible_trigger = yes
		}
		battlefield_duel_ai_challenge_prodigy_squire_eligible_trigger = yes
	}
}
