﻿battlefield_duel_lunatic_clear_selection_effect = {
	remove_character_flag = battlefield_duel_lunatic_prompt_ready
	clear_saved_scope = battlefield_duel_lunatic_actor
	clear_saved_scope = battlefield_duel_lunatic_combat_side
	clear_saved_scope = battlefield_duel_lunatic_target
}

battlefield_duel_lunatic_collect_friendly_target_effect = {
	clear_saved_scope = battlefield_duel_lunatic_actor
	clear_saved_scope = battlefield_duel_lunatic_combat_side
	clear_saved_scope = battlefield_duel_lunatic_target

	save_scope_as = actor
	save_scope_as = battlefield_duel_lunatic_actor
	commanding_army = {
		involved_combat_side = { save_scope_as = battlefield_duel_lunatic_combat_side }
	}

	if = {
		limit = {
			exists = scope:battlefield_duel_lunatic_combat_side.side_commander
			scope:battlefield_duel_lunatic_combat_side.side_commander = {
				battlefield_duel_lunatic_friendly_target_trigger = yes
			}
		}
		scope:battlefield_duel_lunatic_combat_side.side_commander = {
			save_scope_as = battlefield_duel_lunatic_target
		}
	}

	if = {
		limit = { NOT = { exists = scope:battlefield_duel_lunatic_target } }
		scope:battlefield_duel_lunatic_combat_side = {
			random_side_knight = {
				limit = { battlefield_duel_lunatic_friendly_target_trigger = yes }
				save_scope_as = battlefield_duel_lunatic_target
			}
		}
	}
}

battlefield_duel_lunatic_try_shared_roll_effect = {
	# One shared 5% roll per battle. A hit replaces the normal enemy duel.
	remove_character_flag = battlefield_duel_lunatic_prompt_ready

	if = {
		limit = {
			is_ai = no
			is_alive = yes
			is_imprisoned = no
			is_commanding_army = yes
			commanding_army = { is_army_in_combat = yes }
			is_current_dragonrider_warfare = no
			battlefield_duel_lunatic_trait_trigger = yes
			NOT = { has_character_flag = battlefield_duel_lunatic_friendly_duel_active }
			trigger_if = {
				limit = { exists = var:battlefield_duel_lunatic_roll_combat }
				NOT = {
					var:battlefield_duel_lunatic_roll_combat = commanding_army.involved_combat_side.combat
				}
			}
		}
		battlefield_duel_lunatic_collect_friendly_target_effect = yes
		if = {
			limit = { exists = scope:battlefield_duel_lunatic_target }
			set_variable = {
				name = battlefield_duel_lunatic_roll_combat
				value = commanding_army.involved_combat_side.combat
			}

			hidden_effect = {
				random = {
					chance = 5
					add_character_flag = { flag = battlefield_duel_lunatic_prompt_ready days = 2 }
				}
			}
		}
	}

	if = {
		limit = { NOT = { has_character_flag = battlefield_duel_lunatic_prompt_ready } }
		battlefield_duel_lunatic_clear_selection_effect = yes
	}
}

battlefield_duel_lunatic_manual_seek_entry_effect = {
	battlefield_duel_lunatic_try_shared_roll_effect = yes
	if = {
		limit = {
			has_character_flag = battlefield_duel_lunatic_prompt_ready
			exists = scope:battlefield_duel_lunatic_target
		}
		clear_saved_scope = enemy_knight
		clear_saved_scope = enemy_commander
		clear_saved_scope = war_leader
		scope:battlefield_duel_lunatic_target = { save_scope_as = enemy_knight }
		trigger_event = { id = battlefield_duel.9400 }
	}
	else = {
		battlefield_duel_seek_combat_prepare_effect = yes
		battlefield_duel_route_prepared_manual_seek_effect = yes
	}
}

battlefield_duel_lunatic_begin_friendly_duel_effect = {
	remove_character_flag = battlefield_duel_lunatic_prompt_ready
	add_character_flag = { flag = battlefield_duel_lunatic_friendly_duel_active days = 14 }
	add_character_flag = { flag = battlefiel_duel_combat_flag days = 1 }

	if = {
		limit = { has_game_rule = agot_battlefield_duel_cooldown_on }
		add_character_flag = { flag = agot_battlefield_duel_cooldown days = 30 }
		scope:enemy_knight = {
			add_character_flag = { flag = agot_battlefield_duel_cooldown days = 30 }
		}
	}

	battlefield_duel_configure_start_single_combat_effect = {
		SC_INITIATOR = root
		SC_ATTACKER = root
		SC_DEFENDER = scope:enemy_knight
		FATALITY = no
		FIXED = no
		LOCALE = battlefield_duel_terrain
		OUTPUT_EVENT = battlefield_duel.1300
		INVALIDATION_EVENT = battlefield_duel.9403
	}
}

battlefield_duel_lunatic_apply_attacked_opinion_effect = {
	if = {
		limit = {
			exists = scope:enemy_knight
			scope:enemy_knight = { is_alive = yes }
		}
		scope:enemy_knight = {
			add_opinion = {
				target = root
				modifier = battlefield_duel_lunatic_attacked_me_in_madness_opinion
			}
		}
	}
}

battlefield_duel_lunatic_public_murder_reactions_effect = {
	if = {
		limit = {
			exists = scope:enemy_knight
			scope:enemy_knight = { is_alive = yes }
		}

		scope:enemy_knight = {
			every_spouse = {
				limit = {
					is_alive = yes
					this != root
				}
				add_to_temporary_list = battlefield_duel_lunatic_murder_close_relations
			}
			every_close_family_member = {
				limit = {
					is_alive = yes
					this != root
					NOT = { is_in_list = battlefield_duel_lunatic_murder_close_relations }
				}
				add_to_temporary_list = battlefield_duel_lunatic_murder_close_relations
			}
			every_relation = {
				type = friend
				limit = {
					is_alive = yes
					this != root
					NOT = { is_in_list = battlefield_duel_lunatic_murder_close_relations }
				}
				add_to_temporary_list = battlefield_duel_lunatic_murder_close_relations
			}
			every_relation = {
				type = best_friend
				limit = {
					is_alive = yes
					this != root
					NOT = { is_in_list = battlefield_duel_lunatic_murder_close_relations }
				}
				add_to_temporary_list = battlefield_duel_lunatic_murder_close_relations
			}
		}
		every_in_list = {
			list = battlefield_duel_lunatic_murder_close_relations
			add_opinion = {
				target = root
				modifier = battlefield_duel_lunatic_murdered_someone_close_opinion
			}
		}
	}

	if = {
		limit = { exists = scope:battlefield_duel_lunatic_combat_side }
		scope:battlefield_duel_lunatic_combat_side = {
			every_side_knight = {
				limit = {
					is_alive = yes
					this != root
					this != scope:enemy_knight
				}
				add_to_temporary_list = battlefield_duel_lunatic_murder_witnesses
			}
			every_side_commander = {
				limit = {
					is_alive = yes
					this != root
					this != scope:enemy_knight
					NOT = { is_in_list = battlefield_duel_lunatic_murder_witnesses }
				}
				add_to_temporary_list = battlefield_duel_lunatic_murder_witnesses
			}
		}
		every_in_list = {
			list = battlefield_duel_lunatic_murder_witnesses
			add_opinion = {
				target = root
				modifier = battlefield_duel_lunatic_witnessed_murder_own_opinion
			}
		}
	}
}

battlefield_duel_lunatic_murder_execution_effect = {
	# This is public battlefield murder, not a normal enemy execution.
	scope:enemy_knight = {
		battlefield_duel_friendly_side_death_consequences_effect = { KILLER = root }
	}
	hidden_effect = { battlefield_duel_kill_count_effect = yes }
	battlefield_duel_lunatic_public_murder_reactions_effect = yes

	clear_saved_scope = battlefield_duel_lunatic_execution_weapon
	random_equipped_character_artifact = {
		limit = { artifact_slot_type = primary_armament }
		save_scope_as = battlefield_duel_lunatic_execution_weapon
	}

	scope:enemy_knight = {
		add_character_flag = { flag = agot_battlefield_duel_being_killed_in_duel days = 2 }
		if = {
			limit = { exists = scope:battlefield_duel_lunatic_execution_weapon }
			death = {
				killer = root
				death_reason = death_battlefield_duel_lunatic_public_murder
				artifact = scope:battlefield_duel_lunatic_execution_weapon
			}
		}
		else = {
			death = {
				killer = root
				death_reason = death_battlefield_duel_lunatic_public_murder
			}
		}
	}
	clear_saved_scope = battlefield_duel_lunatic_execution_weapon

	hidden_effect = {
		send_interface_message = {
			type = battlefield_duel_feed_martial_bad
			title = battlefield_duel_kill_notification
			desc = battlefield_duel_success_death_toast
			left_icon = root
			right_icon = scope:enemy_knight
		}
	}
}

battlefield_duel_lunatic_finish_route_effect = {
	battlefield_duel_clear_prompt_lock_effect = yes

	if = {
		limit = {
			has_character_flag = battlefield_duel_lunatic_friendly_duel_active
			exists = scope:enemy_knight
		}
		single_combat_clean_shirtlessness_effect = {
			ATTACKER = root
			DEFENDER = scope:enemy_knight
		}
		single_combat_clean_temp_weapon_effect = {
			ATTACKER = root
			DEFENDER = scope:enemy_knight
		}
	}

	remove_character_flag = battlefield_duel_lunatic_friendly_duel_active
	battlefield_duel_lunatic_clear_selection_effect = yes
	clear_saved_scope = battlefield_duel_manual_target
	clear_saved_scope = battlefield_duel_manual_actor
	clear_saved_scope = enemy_knight
}
