# These are used in otherwise hardcoded game features, such as diplomatic interactions

# can_be_mercenary_leader_potential_trigger
# can_be_mercenary_leader_allow_trigger
# replace_mercenary_captain_potential_trigger
# replace_mercenary_captain_allow_trigger

# will_add_kinslayer
# assassination_interaction_trigger

# pagan_baptism_trigger
# needs_coronation_trigger
# can_rename_character_trigger

# fit_to_lead_troops


# Used with character interaction to replace merc leader. DO NOT REMOVE
# FROM is liege
can_be_mercenary_leader_potential_trigger = {
	is_adult = yes
	same_realm = FROM

	trigger_if = {
		limit = {
			is_female = yes
			FROM = {
				OR = {
					has_law = agnatic_succession
					has_law = cognatic_succession
				}
			}
		}

		trigger_if = {
			limit = { religion = cathar }
			FROM = { religion = cathar }
		}
		trigger_else_if = {
			limit = { religion = messalian }
			FROM = { religion = messalian }
		}
		trigger_else_if = {
			limit = { religion_openly_norse_or_reformed_trigger = yes }
			FROM = { religion_openly_norse_or_reformed_trigger = yes }
		}
		trigger_else_if = {
			limit = { religion_openly_celtic_or_reformed_trigger = yes }
			FROM = { religion_openly_celtic_or_reformed_trigger = yes }
		}
		trigger_else_if = {
			limit = { is_feminist_trigger = yes }
			FROM = { is_feminist_trigger = yes }
		}
		trigger_else = {
			always = no
		}

	}

	is_ruler = no
	is_inaccessible_or_incapable_trigger = no
	is_ascetic_trigger = no
}

# Used with character interaction to replace merc leader. DO NOT REMOVE
# FROM is liege
can_be_mercenary_leader_allow_trigger = {
	is_adult = yes
	vassal_of = FROM

	custom_tooltip = {
		text = mercenary_martial_education_tooltip
		has_education_martial_trigger = yes
	}
}

# Used with character interaction to replace merc leader. DO NOT REMOVE
# FROM is liege
replace_mercenary_captain_potential_trigger = {
	is_ruler = yes
	mercenary = yes

	primary_title = {
		has_title_flag = ze_dyn_merc

		band_creator = {
			character = FROM
		}
	}
}

# Used with character interaction to replace merc leader. DO NOT REMOVE
# FROM is liege
replace_mercenary_captain_allow_trigger = {
	primary_title = {
		has_raised_standing_troops = no

		band_creator = {
			character = FROM
		}
	}
}

# Hardcoded trigger for the Execute Imprisoned interaction. Used for the description warning you of kinslaying
# ROOT is the executioner
# event_target:kinslayer_target is the person being executed

will_add_kinslayer = {
	NOT = { religion_group = muslim }

	trigger_if = {
		limit = {
			OR = {
				is_ancestor_of = event_target:kinslayer_target
				is_descendant_of = event_target:kinslayer_target
				sibling = event_target:kinslayer_target
			}
		}

		NOR = {
			trait = kinslayer
			trait = tribal_kinslayer
		}
	}
	trigger_else_if = {
		limit = {
			OR = {
				is_cousin_of = event_target:kinslayer_target
				is_aunt_uncle_of = event_target:kinslayer_target
				is_nibling_of = event_target:kinslayer_target
			}
		}

		NOR = {
			trait = kinslayer
			trait = familial_kinslayer
			trait = tribal_kinslayer
		}
	}
	trigger_else = {
		dynasty = event_target:kinslayer_target
		is_any_kinslayer_trigger = no
		is_lowborn = no
	}
}

# Hardcoded trigger for the Assassinate interaction. Used for triggering whether it can be used at all
# ROOT is the person being assassinated
# FROM is the person doing the assassination
assassination_interaction_trigger = {
	trigger_if = {
		limit = { multiplayer = yes }

		custom_tooltip = {
			text = MP_GAME_RULE_ALLOWED

			trigger_if = {
				limit = {
					has_game_rule = {
						name = multiplayer_assassinations
						value = no_players
					}
				}
				ai = yes
			}
			trigger_else_if = {
				limit = {
					has_game_rule = {
						name = multiplayer_assassinations
						value = no_players_or_relatives
					}
				}

				ai = yes

				NOR = {
					any_close_relative = {
						ai = no
						NOT = { character = FROM } # Own family is fair game
					}

					any_spouse = {
						ai = no
						NOT = { character = FROM } # Own family is fair game
					}

					AND = {
						is_heir = yes

						liege = {
							ai = no
							dynasty = ROOT
							NOT = { character = FROM } # Own family is fair game
						}
					}
				}
			}
		}
	}
}

# Hardcoded trigger for Pagan baptism. Only used (except where referenced in script) for the Pagan baptism tooltip in the religion window
pagan_baptism_trigger = {
	is_unreformed_pagan_trigger = yes

	OR = {
		has_law = tribal_organization_2
		has_law = tribal_organization_3
		has_law = tribal_organization_4
	}

	prestige >= 500
	prisoner = no
	is_incapable = no
	has_regent = no
	war = no

	trigger_if = {
		limit = { has_character_flag = ai_flag_refuse_conversion }

		custom_tooltip = {
			text = NOT_TRUE_BELIEVER
			always = no
		}
	}
	trigger_if = {
		limit = { has_character_modifier = baptism_request_cooldown }

		custom_tooltip = {
			text = NOT_ASKED_BAPTISM_RECENTLY
			always = no
		}
	}
}

# Hardcoded trigger for Coronation alert.
# Only used (except where referenced in script) for that alert, on top of the "potential" for the coronation decision.
# If it does not exist, only the decision potential is used
needs_coronation_trigger = {
	is_adult = yes
}

# Referenced by the "button_rename" button in the character view
can_rename_character_trigger = {
	dynasty = FROM
	is_vassal_or_below_of = FROM
	age < 10
}

# Scripted triggers used by the game
# Check if a character can be assigned to lead troops
# ROOT is Character
fit_to_lead_troops = {
	is_adult = yes

	trigger_if = {
		limit = { ai = yes }

		OR = {
			has_minor_title = title_commander
			has_job_title = job_marshal

			# Catch-all to make landless adventurers and such lead their troops...
			AND = {
				higher_tier_than = COUNT
				is_landed = no
			}

			trigger_if = {
				limit = { war = no }

				higher_real_tier_than = COUNT

				trigger_if = {
					limit = { trait = craven }
					combat_rating >= 10
				}
				trigger_else = {
					combat_rating >= -35
				}
			}
		}
	}

	trigger_if = { # Only certain popes will lead troops
		limit = { has_landed_title = k_papacy }

		OR = {
			has_education_martial_trigger = yes
			has_minor_title = title_commander
			has_job_title = job_marshal
		}
	}

	NOR = {
		has_character_modifier = in_meditation
		has_character_modifier = doing_penance
		has_character_modifier = out_traveling
		has_character_modifier = mother_dark_rest
	}
}