#####################################################
##################### Dueling #######################
#####################################################

# is_dueling_weapon_artifact_and_equipped
# is_using_blunt_weapon_trigger
# is_using_sharp_weapon_trigger
# is_using_piercing_weapon_trigger
# is_using_spear_weapon_trigger
# is_using_gun_trigger

# has_duel_exp_modifier_trigger

# is_the_worst_duelist_trigger
# is_terrible_duelist_trigger
# is_bad_duelist_trigger
# is_ok_duelist_trigger
# is_decent_duelist_trigger
# is_good_duelist_trigger
# is_great_duelist_trigger
# is_fantastic_duelist_trigger
# is_the_best_duelist_trigger

# duelist_skill_is_low_group_trigger
# duelist_skill_is_medium_group_trigger
# duelist_skill_is_high_group_trigger

# is_the_worst_dueler_compared_to_prev_trigger
# is_terrible_dueler_compared_to_prev_trigger
# is_bad_dueler_compared_to_prev_trigger
# is_ok_dueler_compared_to_prev_trigger
# is_decent_dueler_compared_to_prev_trigger
# is_good_dueler_compared_to_prev_trigger
# is_great_dueler_compared_to_prev_trigger
# is_fantastic_dueler_compared_to_prev_trigger
# is_the_best_dueler_compared_to_prev_trigger

# duelist_skill_compared_to_prev_low_group_trigger
# duelist_skill_compared_to_prev_medium_group_trigger
# duelist_skill_compared_to_prev_high_group_trigger

# duel_result_score_the_worst_trigger
# duel_result_score_terrible_trigger
# duel_result_score_bad_trigger
# duel_result_score_ok_trigger
# duel_result_score_decent_trigger
# duel_result_score_good_trigger
# duel_result_score_great_trigger
# duel_result_score_fantastic_trigger
# duel_result_score_the_best_trigger

# duel_result_score_low_group_trigger
# duel_result_score_medium_group_trigger
# duel_result_score_high_group_trigger

# has_pet_animal_trigger

# enemy_commander_and_liege_are_different_characters
# home_commander_and_liege_are_different_characters

# is_allowed_deadly_duels_trigger
# is_allowed_honor_duels_trigger
# is_allowed_sparring_duels_trigger

# this_can_duel_with_from_trigger

# prev_is_lonely_this_romance_makes_sense_trigger
# interesting_duel_target_for_prev_trigger

# has_bruises_trigger

# is_using_intrigue_trigger

# is_indomitable_trigger


######## To check for weapon types used...
is_dueling_weapon_artifact_and_equipped = { # Meaning ranged weapons (except the handgun) and lances are excluded
	has_artifact_flag = combat_weapon
	is_artifact_equipped = yes

	NOR = { # Currently, we are not using bows - for future reference, that'd go here
		has_artifact_flag = bow
		has_artifact_flag = crossbow
		has_artifact_flag = ranged_weapon
	}
}

is_using_blunt_weapon_trigger = { # Blunt weapon!
	OR = {
		has_character_flag = weapon_is_mace
		has_character_flag = weapon_is_staff

		event_target:dueling_weapon_1 = {
			OR = {
				has_artifact_flag = mace
				has_artifact_flag = hammer
				has_artifact_flag = staff
			}

			artifact_owner = { character = PREVPREV }
		}

		event_target:dueling_weapon_2 = {
			OR = {
				has_artifact_flag = mace
				has_artifact_flag = hammer
				has_artifact_flag = staff
			}

			artifact_owner = { character = PREVPREV }
		}
	}
}

is_using_sharp_weapon_trigger = { # Sharp weapon!
	OR = {
		has_character_flag = weapon_is_sword
		has_character_flag = weapon_is_scimitar
		has_character_flag = weapon_is_axe
		has_character_flag = weapon_is_spear

		event_target:dueling_weapon_1 = {
			OR = {
				has_artifact_flag = sword
				has_artifact_flag = axe
				has_artifact_flag = spear
			}

			artifact_owner = { character = PREVPREV }
		}

		event_target:dueling_weapon_2 = {
			OR = {
				has_artifact_flag = sword
				has_artifact_flag = axe
				has_artifact_flag = spear
			}

			artifact_owner = { character = PREVPREV }
		}
	}
}

is_using_piercing_weapon_trigger = { # Sharp, but not an axe
	is_using_sharp_weapon_trigger = yes

	NOR = {
		has_character_flag = weapon_is_axe

		event_target:dueling_weapon_1 = {
			has_artifact_flag = axe
			artifact_owner = { character = PREVPREV }
		}

		event_target:dueling_weapon_2 = {
			has_artifact_flag = axe
			artifact_owner = { character = PREVPREV }
		}
	}
}

is_using_spear_weapon_trigger = { # A spear!
	OR = {
		has_character_flag = weapon_is_spear

		event_target:dueling_weapon_1 = {
			has_artifact_flag = spear
			artifact_owner = { character = PREVPREV }
		}

		event_target:dueling_weapon_2 = {
			has_artifact_flag = spear
			artifact_owner = { character = PREVPREV }
		}
	}
}

is_using_gun_trigger = { # A gun!
	OR = {
		event_target:dueling_weapon_1 = {
			has_artifact_flag = gun
			artifact_owner = { character = PREVPREV }
		}

		event_target:dueling_weapon_2 = {
			has_artifact_flag = gun
			artifact_owner = { character = PREVPREV }
		}
	}
}


######## To check whether a character has dueled before...
has_duel_exp_modifier_trigger = {
	custom_tooltip = {
		text = has_dueling_exp_tt

		OR = {
			has_character_modifier = duel_exp_1
			has_character_modifier = duel_exp_2
			has_character_modifier = duel_exp_3
			has_character_modifier = duel_exp_4
			has_character_modifier = duel_exp_5
			has_character_modifier = duel_exp_6
			has_character_modifier = duel_exp_7
			has_character_modifier = duel_exp_8
		}
	}
}

######## Personal combat rating values... # Reusable
is_the_worst_duelist_trigger = {
	combat_rating < 0
}

is_terrible_duelist_trigger = {
	combat_rating >= 0
	combat_rating < 15
}

is_bad_duelist_trigger = {
	combat_rating >= 15
	combat_rating < 30
}

is_ok_duelist_trigger = {
	combat_rating >= 30
	combat_rating < 45
}

is_decent_duelist_trigger = {
	combat_rating >= 45
	combat_rating < 60
}

is_good_duelist_trigger = {
	combat_rating >= 60
	combat_rating < 75
}

is_great_duelist_trigger = {
	combat_rating >= 75
	combat_rating < 90
}

is_fantastic_duelist_trigger = {
	combat_rating >= 90
	combat_rating < 105
}

is_the_best_duelist_trigger = {
	combat_rating >= 105
}

# Combat rating checks - grouped.. # Reusable
duelist_skill_is_low_group_trigger = {
	OR = {
		is_the_worst_duelist_trigger = yes
		is_terrible_duelist_trigger = yes
		is_bad_duelist_trigger = yes
	}
}

duelist_skill_is_medium_group_trigger = {
	OR = {
		is_ok_duelist_trigger = yes
		is_decent_duelist_trigger = yes
		is_good_duelist_trigger = yes
	}
}

duelist_skill_is_high_group_trigger = {
	OR = {
		is_great_duelist_trigger = yes
		is_fantastic_duelist_trigger = yes
		is_the_best_duelist_trigger = yes
	}
}

######## Combat rating compared to other target... # Reusable
is_the_worst_dueler_compared_to_prev_trigger = {
	combat_rating_diff = { who = PREV value < -90 }		# Checks that you're worse than -90 below PREV in skill
}

is_terrible_dueler_compared_to_prev_trigger = {
	combat_rating_diff = { who = PREV value >= -90 }	# Checks that you're between -90 to -41 below PREV in skill
	combat_rating_diff = { who = PREV value < -40 }
}

is_bad_dueler_compared_to_prev_trigger = {
	combat_rating_diff = { who = PREV value >= -40 }	# Checks that you're between -40 to -16 below PREV in skill
	combat_rating_diff = { who = PREV value < -15 }
}

is_ok_dueler_compared_to_prev_trigger = {
	combat_rating_diff = { who = PREV value >= -15 }	# Checks that you're -15 below or up to -6 below than PREV
	combat_rating_diff = { who = PREV value < -5 }
}

is_decent_dueler_compared_to_prev_trigger = {
	combat_rating_diff = { who = PREV value >= -5 }		# Checks that you're -5 below or up to 4 above PREV in skill
	combat_rating_diff = { who = PREV value < 5 }
}

is_good_dueler_compared_to_prev_trigger = {
	combat_rating_diff = { who = PREV value >= 5 }		# Checks that you're between 5 to 14 above PREV in skill
	combat_rating_diff = { who = PREV value < 15 }
}

is_great_dueler_compared_to_prev_trigger = {
	combat_rating_diff = { who = PREV value >= 15 }		# Checks that you're between 15 to 39 above PREV in skill
	combat_rating_diff = { who = PREV value < 40 }
}

is_fantastic_dueler_compared_to_prev_trigger = {
	combat_rating_diff = { who = PREV value >= 40 }		# Checks that you're between 40 to 89 above PREV in skill
	combat_rating_diff = { who = PREV value < 90 }
}

is_the_best_dueler_compared_to_prev_trigger = {
	combat_rating_diff = { who = PREV value >= 90 }		# Checks that you're more than 90 above PREV in skill
}

# Combat rating compared to other target - grouped... #Reusable
duelist_skill_compared_to_prev_low_group_trigger = {
	custom_tooltip = {
		text = this_is_worse_than_prev_tt

		OR = {
			is_the_worst_dueler_compared_to_prev_trigger = yes
			is_terrible_dueler_compared_to_prev_trigger = yes
			is_bad_dueler_compared_to_prev_trigger = yes
			is_ok_dueler_compared_to_prev_trigger = yes
		}
	}
}

duelist_skill_compared_to_prev_medium_group_trigger = {
	custom_tooltip = {
		text = evenly_matched_tt

		is_decent_dueler_compared_to_prev_trigger = yes
	}
}

duelist_skill_compared_to_prev_high_group_trigger = {
	custom_tooltip = {
		text = this_is_better_than_prev_tt

		OR = {
			is_good_dueler_compared_to_prev_trigger = yes
			is_great_dueler_compared_to_prev_trigger = yes
			is_fantastic_dueler_compared_to_prev_trigger = yes
			is_the_best_dueler_compared_to_prev_trigger = yes
		}
	}
}

######## Duel score values... (used in targeted duels)
duel_result_score_the_worst_trigger = {
	check_variable = { which = duel_result_score value < 0 }
}

duel_result_score_terrible_trigger = {
	check_variable = { which = duel_result_score value >= 0 }
	check_variable = { which = duel_result_score value < 15 }
}

duel_result_score_bad_trigger = {
	check_variable = { which = duel_result_score value >= 15 }
	check_variable = { which = duel_result_score value <  30 }
}

duel_result_score_ok_trigger = {
	check_variable = { which = duel_result_score value >= 30 }
	check_variable = { which = duel_result_score value <  45 }
}

duel_result_score_decent_trigger = {
	check_variable = { which = duel_result_score value >= 45 }
	check_variable = { which = duel_result_score value <  60 }
}

duel_result_score_good_trigger = {
	check_variable = { which = duel_result_score value >= 60 }
	check_variable = { which = duel_result_score value <  75 }
}

duel_result_score_great_trigger = {
	check_variable = { which = duel_result_score value >= 75 }
	check_variable = { which = duel_result_score value <  90 }
}

duel_result_score_fantastic_trigger = {
	check_variable = { which = duel_result_score value >= 90 }
	check_variable = { which = duel_result_score value < 105 }
}

duel_result_score_the_best_trigger = {
	check_variable = { which = duel_result_score value >= 105 }
}

#Duel score checks - grouped..
duel_result_score_low_group_trigger = {
	OR = {
		duel_result_score_the_worst_trigger = yes
		duel_result_score_terrible_trigger = yes
		duel_result_score_bad_trigger = yes
		duel_result_score_ok_trigger = yes
	}
}

duel_result_score_medium_group_trigger = {
	duel_result_score_decent_trigger = yes
}

duel_result_score_high_group_trigger = {
	OR = {
		duel_result_score_good_trigger = yes
		duel_result_score_great_trigger = yes
		duel_result_score_fantastic_trigger = yes
		duel_result_score_the_best_trigger = yes
	}
}

# Animal might come to your rescue...
has_pet_animal_trigger = {
	OR = {
		has_character_modifier = pet_hunting_dog
		has_character_modifier = pet_cat
		has_character_modifier = nomad_warhorse
		has_character_modifier = pet_owl
		has_character_modifier = pet_hunting_eagle
	}
}

enemy_commander_and_liege_are_different_characters = {
	event_target:enemy_commander = {
		NOT = { character = event_target:enemy_liege }
	}
}

home_commander_and_liege_are_different_characters = {
	event_target:home_commander = {
		NOT = { character = event_target:home_liege }
	}
}

is_allowed_deadly_duels_trigger = {
	NOT = { has_character_flag = mock_duel } # Never in initiation rites

	# Reasons a character might be allowed to duel someone to the death...
	OR = {
		is_member_of_any_warrior_lodge_trigger = yes
		has_focus = focus_war
		trait = arbitrary
		trait = cruel
		trait = impaler

		event_target:combatant_2 = {
			OR = {
				is_rival = PREV
				is_foe = PREV
			}
		}

		# Special game rules...
		has_game_rule = {
			name = dueling
			value = unrestricted
		}
	}
}

is_allowed_honor_duels_trigger = {
	# Reasons a character might be allowed Duels for Honor...
	NOT = {
		has_game_rule = {
			name = dueling
			value = unrestricted
		}
	}
}

is_allowed_sparring_duels_trigger = {
	# Reasons a character might be allowed practice (non-lethal) duels, to improve their skill...
	OR = {
		is_member_of_any_warrior_lodge_trigger = yes
		has_focus = focus_war
	}
}

this_can_duel_with_from_trigger = {
	trigger_if = {
		limit = { is_female = yes }

		OR = {
			is_member_of_roots_warrior_lodge_trigger = yes

			# Both FROM and ROOT have gender equality
			AND = {
				OR = {
					trait = brave
					gender_equality_trigger = yes
					has_religion_feature = religion_matriarchal
					religion_group = pagan_group
					is_nomadic = yes
					religion = buddhist
					religion = bogomilist
				}

				FROM = {
					OR = {
						gender_equality_trigger = yes
						has_religion_feature = religion_matriarchal
						religion_group = pagan_group
						is_nomadic = yes
						religion = buddhist
						religion = bogomilist
					}
				}
			}
		}
	}

	FROM = {
		is_within_diplo_range = ROOT

		trigger_if = {
			limit = { is_female = yes }

			OR = {
				is_member_of_roots_warrior_lodge_trigger = yes

				# Both FROM and ROOT have gender equality
				AND = {
					OR = {
						trait = brave
						gender_equality_trigger = yes
						has_religion_feature = religion_matriarchal
						religion_group = pagan_group
						is_nomadic = yes
						religion = buddhist
						religion = bogomilist
					}

					ROOT = {
						OR = {
							gender_equality_trigger = yes
							has_religion_feature = religion_matriarchal
							religion_group = pagan_group
							is_nomadic = yes
							religion = buddhist
							religion = bogomilist
						}
					}
				}
			}
		}
	}

	is_incapable = no

	NOR = {
		has_character_modifier = bedridden_illness
		has_character_modifier = severe_illness
	}
}

# To make sure characters have a chance of gaining a lover from dueling them (used as a modifier weight)...
prev_is_lonely_this_romance_makes_sense_trigger = {
	PREV = { has_lover = no }

	NOR = {
		is_lover = PREV
		is_rival = PREV
	}

	# Check opinions and attraction, etc...
	prev_attraction_trigger = yes
	attracted_to_prev_trigger = yes

	OR = {
		reverse_opinion = {
			who = PREV
			value >= 45
		}

		reverse_has_opinion_modifier = {
			name = opinion_budding_romance
			who = PREV
		}
	}

	OR = {
		opinion = {
			who = ROOT
			value >= 45
		}

		has_opinion_modifier = {
			name = opinion_budding_romance
			who = ROOT
		}
	}
}

# THIS has a chance of adding a special outcome flag in duels...
interesting_duel_target_for_prev_trigger = {
	OR = {
		# Romance potential...
		AND = {
			NOR = {
				is_lover = PREV
				is_rival = PREV
			}

			prev_attraction_trigger = yes
			attracted_to_prev_trigger = yes

			# Check opinions and attraction, etc...
			OR = {
				reverse_opinion = {
					who = PREV
					value >= 45
				}

				reverse_has_opinion_modifier = {
					name = opinion_budding_romance
					who = PREV
				}
			}

			OR = {
				opinion = {
					who = ROOT
					value >= 45
				}

				has_opinion_modifier = {
					name = opinion_budding_romance
					who = ROOT
				}
			}
		}

		# Friendship potential...
		AND = {
			NOR = {
				is_friend = PREV
				this_has_terrible_opinion_modifier_of_root_trigger = yes
				root_has_terrible_opinion_modifier_of_this_trigger = yes
			}

			opinion = {
				who = PREV
				value >= 5
			}

			reverse_opinion = {
				who = PREV
				value >= 5
			}
		}

		# Rival potential...
		AND = {
			NOR = {
				is_rival = PREV
				is_lover = PREV
				is_friend = PREV
			}

			opinion = {
				who = PREV
				value < 5
			}

			OR = {
				# Either has committed a crime against the other
				is_foe = PREV
				PREV = { is_foe = PREVPREV }

				opinion = {
					who = PREV
					value < -25
				}

				this_has_terrible_opinion_modifier_of_root_extended_trigger = yes
			}
		}

		AND = {
			NOR = {
				is_rival = PREV
				is_lover = PREV
				is_friend = PREV
			}

			reverse_opinion = {
				who = PREV
				value < 5
			}

			OR = {
				# Either has committed a crime against the other
				is_foe = PREV
				PREV = { is_foe = PREVPREV }

				reverse_opinion = {
					who = PREV
					value < -25
				}

				root_has_terrible_opinion_modifier_of_this_extended_trigger = yes
			}
		}
	}
}

has_bruises_trigger = {
	OR = {
		has_character_modifier = black_eye
		has_character_modifier = swollen_wrist
		has_character_modifier = swollen_ankle
		has_character_modifier = concussion
		has_character_modifier = cracked_ribs
		has_character_modifier = badly_bruised
		has_character_modifier = sore_muscles
	}
}

# Either THIS is the attacker using intrigue, or the defender using intrigue
is_using_intrigue_trigger = {
	trigger_if = {
		limit = { character = event_target:combatant_1 }

		has_character_flag = attacker_using_poison@event_target:combatant_2
	}
	trigger_else = {
		has_character_flag = defender_using_poison@event_target:combatant_1
	}
}

# Either from rank 4 warrior lodge, or a bloodline
is_indomitable_trigger = {
	OR = {
		AND = {
			society_rank == 4
			is_member_of_any_warrior_lodge_trigger = yes
		}

		any_owned_bloodline = {
			has_bloodline_flag = indomitable_bloodline
			bloodline_is_active_for = PREV
		}

		has_character_flag = is_special_character
	}
}