# Various triggers, not categorised

# is_inaccessible_trigger
# is_inaccessible_or_incapable_trigger
# block_general_event_trigger
# is_unimportant_trigger
# useless_character_trigger
# interesting_face_trigger
# is_virgin_trigger

# proselytize_convert_independent_trigger

# has_tribal_or_nomadic_government_trigger

# is_mongol_empire_leader_trigger

# print_scope_trigger
# is_visible_to_self_trigger
# is_single_player_observer_mode
# is_not_in_regency_trigger


# Remember to write this "is_inaccessible_trigger = no" when scripting, or the tooltip will be messed up (it reads "Is NOT in Hiding, in Seclusion, or out traveling")
is_inaccessible_trigger = {
	custom_tooltip = {
		text = is_inaccessible_tooltip

		OR = {
			has_character_flag = do_not_disturb
			has_character_flag = flag_holding_great_tribal_festival
			trait = in_hiding
			trait = troubled_pregnancy
			trait = pregnancy_finishing
			is_pilgrim = yes
			in_seclusion = yes
			has_character_modifier = do_not_disturb
			has_character_modifier = mother_minor_rest
			has_character_modifier = in_meditation
			has_character_modifier = doing_penance
			has_character_modifier = out_traveling
		}
	}
}

is_inaccessible_or_incapable_trigger = {
	OR = {
		is_inaccessible_trigger = yes
		is_incapable = yes
		prisoner = yes
	}
}

# Very usable! If poorly named
block_general_event_trigger = {
	OR = {
		is_adult = no
		is_incapable = yes
		prisoner = yes
		is_inaccessible_trigger = yes
	}
}

is_unimportant_trigger = {
	NOR = {
		is_married = yes
		is_landed = yes
		has_job_title = yes
		has_minor_title = yes

		trigger_if = {
			limit = { is_lowborn = no }
			num_of_dynasty_members >= 2
		}

		any_lover = { ai = no }
		any_close_relative = { ai = no }
		any_friend = { ai = no }
		any_rival = { ai = no }
		any_consort = { ai = no }

		num_of_claims >= 1
		has_character_flag = eternal_life_mystic
		AND = {
			trait = horse
			NOR = {
				has_alternate_start_parameter = { key = special_culture value = animal_kingdoms }
				has_alternate_start_parameter = { key = special_culture value = animal_world }
			}
		}
		in_seclusion = yes
		has_character_modifier = elder_long_life_modifier
		immortal = yes
	}
}

useless_character_trigger = {
	OR = {
		health < 2.5
		is_incapable = yes
		trait = lunatic
		trait = maimed
		trait = infirm
		trait = mangled
		trait = severely_injured
		trait = imbecile
		trait = inbred
	}
}

interesting_face_trigger = {
	OR = {
		is_ill = yes
		has_scarred_trait_trigger = yes
		is_strong_trigger = yes
		is_weak_trigger = yes
		trait = attractive
		trait = groomed
		trait = ugly
		trait = uncouth
		trait = disfigured
		trait = blinded
		trait = one_eyed
		trait = leper
		trait = harelip
		trait = lunatic
		trait = possessed
		trait = rabies
		trait = horse
	}
}

is_virgin_trigger = {
	OR = {
		practical_age < 25
		trait = celibate
		trait = chaste
		trait = shy
		is_ascetic_trigger = yes
	}

	has_children = no
	has_lover = no
	is_pregnant = no

	NOR = {
		any_spouse_even_if_dead = { always = yes }
		has_focus = focus_seduction
		trait = pregnant
		trait = lustful
		trait = hedonist
		trait = master_seducer
		trait = master_seductress
		trait = lovers_pox
		trait = aztec_disease
		trait = great_pox
	}
}

proselytize_convert_independent_trigger = {
	owner = {
		independent = yes
		religion_group = pagan_group
		is_within_diplo_range = FROM
		controls_religion = no
		is_reformed_religion = no
		NOT = { religion = FROM }

		capital_scope = {
			province = ROOT
		}

		FROM = {
			higher_tier_than = COUNT

			trigger_if = {
				limit = { independent = no }
				higher_tier_than = DUKE
			}

			trigger_if = {
				limit = { religion_group = pagan_group }
				has_religion_feature = religion_proselytizing
			}
		}

		NOT = {
			has_opinion_modifier = {
				name = opinion_sent_preacher
				who = FROM
			}
		}

		trigger_if = {
			limit = { religion = aztec_pagan }
			year >= 1350
		}
	}
}

has_tribal_or_nomadic_government_trigger = {
	custom_tooltip = {
		text = tribal_or_nomadic_government_tt

		OR = {
			is_tribal = yes
			is_nomadic = yes
		}
	}
}

is_mongol_empire_leader_trigger = {
	OR = {
		has_landed_title = e_ilkhanate
		has_landed_title = e_golden_horde
		has_landed_title = e_mongol_empire
		has_landed_title = e_chagatai

		any_liege = {
			OR = {
				has_landed_title = e_ilkhanate
				has_landed_title = e_golden_horde
				has_landed_title = e_mongol_empire
				has_landed_title = e_chagatai
			}
		}
	}
}

# TODO: Check if log command does indeed work in triggers!
print_scope_trigger = {
	log = "------------------------------"
	log = "- Printing the current scope -"
	log = "- This: [This.GetName][This.GetBestName]"
	log = "- Root: [Root.GetName][Root.GetBestName]"
	log = "- Prev: [Prev.GetName][Prev.GetBestName]"
	log = "- PrevPrev: [PrevPrev.GetName][PrevPrev.GetBestName]"
	log = "- PrevPrevPrev: [PrevPrevPrev.GetName][PrevPrevPrev.GetBestName]"
	log = "- PrevPrevPrevPrev: [PrevPrevPrevPrev.GetName][PrevPrevPrevPrev.GetBestName]"
	log = "- From: [From.GetName][From.GetBestName]"
	log = "- FromFrom: [FromFrom.GetName][FromFrom.GetBestName]"
	log = "- FromFromFrom: [FromFromFrom.GetName][FromFromFrom.GetBestName]"
	log = "- FromFromFromFrom: [FromFromFromFrom.GetName][FromFromFromFrom.GetBestName]"
	log = "- Event_target:test_target1: [test_target1.GetName][test_target1.GetBestName]"
	log = "- Event_target:test_target2: [test_target2.GetName][test_target2.GetBestName]"
	log = "- Event_target:test_target3: [test_target3.GetName][test_target3.GetBestName]"
	log = "------------------------------"
}

is_visible_to_self_trigger = { # For hidden modifiers
	custom_tooltip = {
		text =  is_visible_to_self_trigger_tooltip
		character = FROM
	}
}

is_single_player_observer_mode = {
	multiplayer = no
	is_local_human_observer = yes
}

# Used to check if a character would have a regent if the game rule wasn't disabled
# Uses many separate 'trigger_if's for a nicer tooltip
# Expand with traits with any of the following flags:
# - incapacitating
# - pilgrimage
# - in_hiding
is_not_in_regency_trigger = {
	show_only_failed_conditions = yes

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = on
			}
		}

		has_regent = no
	}

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = off
			}
		}

		is_adult = yes
	}

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = off
			}
		}

		prisoner = no
	}

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = off
			}
		}

		is_incapable = no
	}

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = off
			}
		}

		NOT = { trait = travelling }
	}

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = off
			}
		}

		NOT = { trait = on_pilgrimage }
	}

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = off
			}
		}

		NOT = { trait = on_hajj }
	}

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = off
			}
		}

		NOT = { trait = on_indian_pilgrimage }
	}

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = off
			}
		}

		NOT = { trait = troubled_pregnancy }
	}

	trigger_if = {
		limit = {
			has_game_rule = {
				name = regencies
				value = off
			}
		}

		NOT = { trait = pregnancy_finishing }
	}
}

# Use to check if any_demesne/realm_province is actually inside someone's realm
# instead of only holdings, but not the province itself
held_under_PREV = {
	owner = {
		OR = {
			character = PREVPREV
			is_vassal_or_below_of = PREVPREV
		}
	}
}