﻿namespace = bdp_multiplayer

# These are the windows two players pass back and forth. AI never enters this file.
bdp_multiplayer.0001 = {
	type = character_event
	theme = battle
	title = bdp_multiplayer.0001.t
	desc = bdp_multiplayer.0001.desc

	trigger = {
		bdp_multiplayer_challenge_still_valid_trigger = yes
	}

	on_trigger_fail = {
		battlefield_duel_clear_prompt_lock_effect = yes
		battlefield_duel_ai_challenge_clear_bodyguard_state_effect = yes
	}

	override_background = { reference = battlefield_duel_presentation }
	left_portrait = {
		character = root
		animation = marshal
	}
	right_portrait = {
		character = scope:bdp_multiplayer_challenger
		animation = marshal
	}

	immediate = {
		root = { save_scope_as = battlefield_duel_ai_challenge_player }
		scope:bdp_multiplayer_challenger = { save_scope_as = battlefield_duel_ai_challenge_original_enemy }
		if = {
			limit = {
				is_commanding_army = yes
				commanding_army = { is_army_in_combat = yes }
			}
			battlefield_duel_ai_challenge_find_player_protector_effect = yes
			battlefield_duel_ai_challenge_find_player_squire_effect = yes
		}
	}

	option = {
		name = bdp_multiplayer.0001.accept
		flavor = bdp_multiplayer.0001.accept.flavor
		trigger = { bdp_multiplayer_challenge_still_valid_trigger = yes }
		bdp_multiplayer_accept_challenge_effect = yes
	}

	option = {
		name = bdp_multiplayer.0001.protector
		flavor = bdp_multiplayer.0001.protector.flavor
		trigger = {
			bdp_multiplayer_challenge_still_valid_trigger = yes
			exists = scope:battlefield_duel_ai_challenge_player_bodyguard
			scope:battlefield_duel_ai_challenge_player_bodyguard = {
				is_alive = yes
				is_imprisoned = no
				NOT = { has_character_flag = already_fighting }
			}
		}
		bdp_multiplayer_send_protector_effect = yes
	}

	option = {
		name = bdp_multiplayer.0001.squire
		flavor = bdp_multiplayer.0001.squire.flavor
		trigger = {
			bdp_multiplayer_challenge_still_valid_trigger = yes
			exists = scope:battlefield_duel_ai_challenge_player_squire
			NOT = { exists = scope:battlefield_duel_ai_challenge_player_bodyguard }
			scope:battlefield_duel_ai_challenge_player_squire = {
				is_alive = yes
				is_imprisoned = no
				NOT = { has_character_flag = already_fighting }
			}
		}
		bdp_multiplayer_send_squire_effect = yes
	}

	option = {
		name = {
			trigger = { NOT = { has_character_flag = bdp_multiplayer_refusal_paid_current_battle } }
			text = bdp_multiplayer.0001.refuse
		}
		name = {
			trigger = { has_character_flag = bdp_multiplayer_refusal_paid_current_battle }
			text = bdp_multiplayer.0001.refuse_again
		}
		flavor = bdp_multiplayer.0001.refuse.flavor
		trigger = { bdp_multiplayer_challenge_still_valid_trigger = yes }
		custom_tooltip = bdp_multiplayer_refusal_once_per_battle_tt
		bdp_multiplayer_refuse_challenge_effect = yes
	}

	option = {
		name = bdp_multiplayer.0001.invalid
		trigger = { NOT = { bdp_multiplayer_challenge_still_valid_trigger = yes } }
		battlefield_duel_clear_prompt_lock_effect = yes
		battlefield_duel_ai_challenge_clear_bodyguard_state_effect = yes
	}
}

bdp_multiplayer.0002 = {
	type = character_event
	theme = battle
	title = bdp_multiplayer.0002.t
	desc = bdp_multiplayer.0002.desc

	override_background = { reference = battlefield_duel_presentation }
	left_portrait = {
		character = root
		animation = marshal
	}
	right_portrait = {
		character = scope:bdp_multiplayer_target
		animation = idle
	}

	option = {
		name = bdp_multiplayer.0002.a
	}
}

bdp_multiplayer.0003 = {
	type = character_event
	hidden = yes

	immediate = {
		root = { save_scope_as = actor }
		scope:bdp_multiplayer_target = { save_scope_as = enemy_knight }
		bdp_multiplayer_mark_duel_active_effect = yes
		bdp_battlefield_duel_manual_normal_start_effect = yes
		battlefield_duel_root_effect.stress_attack = yes
	}
}

# The loser sees the normal defeat scene while the winner gets the judgment event.
bdp_multiplayer.0010 = {
	type = character_event
	theme = battle
	title = {
		first_valid = {
			triggered_desc = { trigger = { has_trait = berserker has_character_flag = battlefield_duel_b5_berserker_defeat_flavor_2 } desc = battlefield_duel.1307.t.2 }
			triggered_desc = { trigger = { has_trait = berserker has_character_flag = battlefield_duel_b5_berserker_defeat_flavor_3 } desc = battlefield_duel.1307.t.3 }
			triggered_desc = { trigger = { has_trait = berserker } desc = battlefield_duel.1307.t.1 }
			triggered_desc = { trigger = { has_character_flag = battlefield_duel_normal_defeat_flavor_2 } desc = battlefield_duel.1308.t.2 }
			triggered_desc = { trigger = { has_character_flag = battlefield_duel_normal_defeat_flavor_3 } desc = battlefield_duel.1308.t.3 }
			triggered_desc = { trigger = { always = yes } desc = battlefield_duel.1308.t.1 }
		}
	}
	desc = {
		first_valid = {
			triggered_desc = { trigger = { has_trait = berserker has_character_flag = battlefield_duel_b5_berserker_defeat_flavor_2 } desc = battlefield_duel.1307.desc.2 }
			triggered_desc = { trigger = { has_trait = berserker has_character_flag = battlefield_duel_b5_berserker_defeat_flavor_3 } desc = battlefield_duel.1307.desc.3 }
			triggered_desc = { trigger = { has_trait = berserker } desc = battlefield_duel.1307.desc.1 }
			triggered_desc = { trigger = { has_character_flag = battlefield_duel_normal_defeat_flavor_2 } desc = battlefield_duel.1308.desc.2 }
			triggered_desc = { trigger = { has_character_flag = battlefield_duel_normal_defeat_flavor_3 } desc = battlefield_duel.1308.desc.3 }
			triggered_desc = { trigger = { always = yes } desc = battlefield_duel.1308.desc.1 }
		}
	}

	trigger = {
		is_ai = no
		is_alive = yes
		exists = scope:bdp_multiplayer_winner
		exists = scope:bdp_multiplayer_loser
		this = scope:bdp_multiplayer_loser
		scope:bdp_multiplayer_winner = {
			is_ai = no
			is_alive = yes
			is_at_same_location = root
		}
	}

	on_trigger_fail = {
		remove_character_flag = bdp_multiplayer_duel_active
	}

	override_background = { reference = battlefield_duel_terrain }
	left_portrait = {
		character = root
		animation = pain
	}
	right_portrait = {
		character = scope:bdp_multiplayer_winner
		scripted_animation = duel_celebrate
	}

	immediate = {
		remove_character_flag = battlefield_duel_b5_berserker_defeat_flavor_1
		remove_character_flag = battlefield_duel_b5_berserker_defeat_flavor_2
		remove_character_flag = battlefield_duel_b5_berserker_defeat_flavor_3
		remove_character_flag = battlefield_duel_normal_defeat_flavor_1
		remove_character_flag = battlefield_duel_normal_defeat_flavor_2
		remove_character_flag = battlefield_duel_normal_defeat_flavor_3
		if = {
			limit = { has_trait = berserker }
			random_list = {
				34 = { add_character_flag = { flag = battlefield_duel_b5_berserker_defeat_flavor_1 days = 2 } }
				33 = { add_character_flag = { flag = battlefield_duel_b5_berserker_defeat_flavor_2 days = 2 } }
				33 = { add_character_flag = { flag = battlefield_duel_b5_berserker_defeat_flavor_3 days = 2 } }
			}
		}
		else = {
			random_list = {
				34 = { add_character_flag = { flag = battlefield_duel_normal_defeat_flavor_1 days = 2 } }
				33 = { add_character_flag = { flag = battlefield_duel_normal_defeat_flavor_2 days = 2 } }
				33 = { add_character_flag = { flag = battlefield_duel_normal_defeat_flavor_3 days = 2 } }
			}
		}
	}

	option = {
		name = bdp_multiplayer.0010.a
		show_as_tooltip = {
			battlefield_duel_lose_manual_effect = yes
		}
	}

	after = {
		remove_character_flag = battlefield_duel_b5_berserker_defeat_flavor_1
		remove_character_flag = battlefield_duel_b5_berserker_defeat_flavor_2
		remove_character_flag = battlefield_duel_b5_berserker_defeat_flavor_3
		remove_character_flag = battlefield_duel_normal_defeat_flavor_1
		remove_character_flag = battlefield_duel_normal_defeat_flavor_2
		remove_character_flag = battlefield_duel_normal_defeat_flavor_3
	}
}

bdp_multiplayer.0020 = {
	type = character_event
	theme = battle
	title = bdp_multiplayer.0020.t
	desc = bdp_multiplayer.0020.desc

	override_background = { reference = battlefield_duel_presentation }
	left_portrait = {
		character = root
		animation = pain
	}
	right_portrait = {
		character = scope:battlefield_duel_ai_challenge_player_bodyguard
		scripted_animation = duel_celebrate
	}

	option = {
		name = bdp_multiplayer.0020.a
	}
}

bdp_multiplayer.0021 = {
	type = character_event
	theme = battle
	title = bdp_multiplayer.0021.t
	desc = bdp_multiplayer.0021.desc

	override_background = { reference = battlefield_duel_presentation }
	left_portrait = {
		character = root
		scripted_animation = duel_celebrate
	}
	right_portrait = {
		character = scope:battlefield_duel_ai_challenge_player_bodyguard
		animation = pain
	}

	option = {
		name = bdp_multiplayer.0021.a
	}
}
