﻿courtier_willing_to_leave_trigger = {
	save_temporary_scope_as = leaving_courtier
	NOR = {
		# Not blocked by script
		has_character_flag = blocked_from_leaving
		has_character_flag = will_not_leave
		has_recoverable_disease_trigger = yes
		# Already has a job
		is_councillor_of = scope:liege
		has_any_court_position = yes
		is_consort_of = scope:liege
		is_in_army = yes
		is_acclaimed = yes
		is_tax_collector_of = scope:liege
		is_betrothed = yes
		# Might be inheriting a title from the liege
		any_heir_title = { holder ?= scope:liege }
		any_pretender_title = {
			holder ?= scope:liege
			place_in_line_of_succession = {
				target = scope:leaving_courtier
				value <= 2
			}
		}
		# Has relations that keep them at court
		has_relation_lover = scope:liege
		# is betrothed
		AND = {
			is_female = yes
			patrilinear_betrothal = yes
		}
		AND = {
			is_male = yes
			matrilinear_betrothal = yes
		}
		any_relation = {
			type = ward
			OR = {
				this = scope:liege
				AND = {
					is_courtier_of = scope:liege
					OR = {
						NOT = { any_close_family_member = { this = scope:leaving_courtier } }
						any_close_family_member = { this = scope:liege }
					}
				}
			}
		}
		any_relation = {
			type = guardian
			OR = {
				this = scope:liege
				AND = {
					is_courtier_of = scope:liege
					OR = {
						NOT = { any_close_family_member = { this = scope:leaving_courtier } }
						any_close_family_member = { this = scope:liege }
					}
				}
			}
		}
		any_relation = {
			type = mentor
			OR = {
				this = scope:liege
				AND = {
					is_courtier_of = scope:liege
					OR = {
						NOT = { any_close_family_member = { this = scope:leaving_courtier } }
						any_close_family_member = { this = scope:liege }
					}
				}
			}
		}
		any_relation = {
			type = student
			OR = {
				this = scope:liege
				AND = {
					is_courtier_of = scope:liege
					OR = {
						NOT = { any_close_family_member = { this = scope:leaving_courtier } }
						any_close_family_member = { this = scope:liege }
					}
				}
			}
		}
		# Keep daughters/sons for marriages
		AND = {
			OR = {
				is_child_of = scope:liege
				is_grandchild_of = scope:liege
				is_great_grandchild_of = scope:liege
			}
			NOT = { has_trait = bastard }
			can_marry_trigger = yes
			trigger_if = { #Daughters
				limit = { is_female = yes }
				scope:liege = {
					OR = {
						has_realm_law = male_only_law
						has_realm_law = male_preference_law
					}
				}
			}
			trigger_else = { #Sons
				scope:liege = {
					OR = {
						has_realm_law = female_only_law
						has_realm_law = female_preference_law
					}
				}
			}
		}
		# No children of liege can leave court while children
		AND = {
			OR = {
				is_child_of = scope:liege
				is_grandchild_of = scope:liege
				is_great_grandchild_of = scope:liege
			}
			is_adult = no
		}
		# Claimant won't leave while claim is pressed...
		scope:liege = { pressing_claim_of_character_trigger = { CHARACTER = scope:leaving_courtier } }
		#...Or while they have a promise for a claim getting pressed
		has_character_flag = courtier_staying_for_claim

		#...Or if they're involved in an ongoing event
		has_variable = stewardship_duty_1062_employer

		#...Or if they're the target of any romantic scheme
		any_targeting_scheme = {
			OR = {
				scheme_type = seduce
				scheme_type = courting
				scheme_type = elope
			}
		}
		
		#...Or if they're tutoring another courtier in a language
		any_targeting_scheme = {
			scheme_type = learn_language
			scheme_owner = {
				OR = {
					this = scope:liege
					AND = {
						is_courtier_of = scope:liege
						OR = {
							NOT = { any_close_family_member = { this = scope:leaving_courtier } }
							any_close_family_member = { this = scope:liege }
						}
					}
				}
			}
		}
		
		# Diarchs don't leave their court.
		is_diarch = yes
		is_designated_diarch = yes
		
		# is the beneficiary for their liege in a GHW
		AND = {
			exists = faith.great_holy_war
			faith.great_holy_war = {
				any_pledged_attacker = {
					this = scope:liege
					ghw_beneficiary ?= scope:leaving_courtier
				}
			}
		}
		
		#Shieldmaidens stay till dismissed.
		has_trait = shieldmaiden
		
		#Order Members do not wander away from their orders
		AND = {
			has_trait = order_member
			scope:liege = { has_government = holy_order_government }
		}
		
		# Children taught a lesson won't leave
		has_character_modifier = mellowed_spirit

		# Courtiers with sponsored inspirations won't leave on their own.
		inspiration ?= { exists = inspiration_sponsor }
		
		scope:liege = { is_landless_adventurer = yes }
		is_obedient_to = scope:liege
		
		AND = {
			scope:liege.primary_title = title:h_china
			OR = {
				is_child_of = scope:liege
				is_grandchild_of = scope:liege
				is_great_grandchild_of = scope:liege
			}
		}
	}
}

courtier_allowed_to_leave_trigger = {
	save_temporary_scope_as = leaving_courtier
	is_adult = yes
	NOR = {
		# Not blocked by script
		has_character_flag = blocked_from_leaving
		has_character_flag = will_not_leave
		is_councillor_of = scope:liege
		is_consort_of = scope:liege
		any_heir_title = { holder ?= scope:liege }
		any_pretender_title = {
			holder ?= scope:liege
			place_in_line_of_succession = {
				target = scope:leaving_courtier
				value <= 2
			}
		}
		has_any_court_position = yes
		has_relation_lover = scope:liege
		trigger_if = {
			limit = {
				NOR = {
					is_child_of = scope:liege
					is_sibling_of = scope:liege
					has_trait = disinherited
				}
			}
			is_knight_of = scope:liege
		}
		trigger_else = {
			is_in_army = yes
		}
		is_acclaimed = yes
		is_betrothed = yes
		is_tax_collector_of = scope:liege
		has_recoverable_disease_trigger = yes
		any_relation = {
			type = ward
			OR = {
				this = scope:liege
				AND = {
					is_courtier_of = scope:liege
					OR = {
						NOT = { any_close_family_member = { this = scope:leaving_courtier } }
						any_close_family_member = { this = scope:liege }
					}
				}
			}
		}
		any_relation = {
			type = guardian
			OR = {
				this = scope:liege
				AND = {
					is_courtier_of = scope:liege
					OR = {
						NOT = { any_close_family_member = { this = scope:leaving_courtier } }
						any_close_family_member = { this = scope:liege }
					}
				}
			}
		}
		any_relation = {
			type = mentor
			OR = {
				this = scope:liege
				AND = {
					is_courtier_of = scope:liege
					OR = {
						NOT = { any_close_family_member = { this = scope:leaving_courtier } }
						any_close_family_member = { this = scope:liege }
					}
				}
			}
		}
		any_relation = {
			type = student
			OR = {
				this = scope:liege
				AND = {
					is_courtier_of = scope:liege
					OR = {
						NOT = { any_close_family_member = { this = scope:leaving_courtier } }
						any_close_family_member = { this = scope:liege }
					}
				}
			}
		}
		#Keep daughters/sons for marriages
		AND = {
			OR = {
				is_child_of = scope:liege
				is_grandchild_of = scope:liege
				is_great_grandchild_of = scope:liege
			}
			NOT = { has_trait = bastard }
			can_marry_trigger = yes
			trigger_if = { #Daughters
				limit = { is_female = yes }
				scope:liege = {
					OR = {
						has_realm_law = male_only_law
						has_realm_law = male_preference_law
					}
				}
			}
			trigger_else = { #Sons
				scope:liege = {
					OR = {
						has_realm_law = female_only_law
						has_realm_law = female_preference_law
					}
				}
			}
		}
		#Claimant won't leave while claim is pressed...
		scope:liege = { pressing_claim_of_character_trigger = { CHARACTER = scope:leaving_courtier } }
		#...Or while they have a promise for a claim getting pressed
		has_character_flag = courtier_staying_for_claim

		#...Or if they're involved in an ongoing event
		has_variable = stewardship_duty_1062_employer

		#...Or if they're the target of any romantic scheme
		any_targeting_scheme = {
			OR = {
				scheme_type = seduce
				scheme_type = courting
				scheme_type = elope
			}
		}
		
		#...Or if they're tutoring another courtier in a language
		any_targeting_scheme = {
			scheme_type = learn_language
			scheme_owner = {
				OR = {
					this = scope:liege
					AND = {
						is_courtier_of = scope:liege
						OR = {
							NOT = { any_close_family_member = { this = scope:leaving_courtier } }
							any_close_family_member = { this = scope:liege }
						}
					}
				}
			}
		}
		
		#Non-dominant spouses don't wander off
		AND = {
			is_married = yes
			any_spouse = {
				OR = {
					liege ?= scope:leaving_courtier.liege

					AND = {
						exists = host
						exists = scope:leaving_courtier.host
						liege = scope:leaving_courtier.host
					}
					
					is_courtier_of = scope:liege
				}
			}
			trigger_if = {
				limit = { is_female = yes }
				patrilinear_marriage = yes
			}
			trigger_else = {
				matrilinear_marriage = yes
			}
		}

		# Diarchs don't leave their court.
		is_diarch = yes
		is_designated_diarch = yes
		
		# is the beneficiary for their liege in a GHW
		AND = {
			exists = faith.great_holy_war
			faith.great_holy_war = {
				any_pledged_attacker = {
					this = scope:liege
					ghw_beneficiary ?= scope:leaving_courtier
				}
			}
		}
		
		#Shieldmaidens stay till dismissed.
		has_trait = shieldmaiden
		
		#Order Members do not wander away from their orders
		AND = {
			has_trait = order_member
			scope:liege = { has_government = holy_order_government }
		}
		
		# Children taught a lesson won't leave
		has_character_modifier = mellowed_spirit

		# Courtiers with sponsored inspirations won't leave on their own.
		inspiration ?= { exists = inspiration_sponsor }
		
		scope:liege = { is_landless_adventurer = yes }
		is_obedient_to = scope:liege
		
		AND = {
			scope:liege.primary_title = title:h_china
			OR = {
				is_child_of = scope:liege
				is_grandchild_of = scope:liege
				is_great_grandchild_of = scope:liege
			}
		}
	}
}

# overriding the pruneable trigger so maidens attached to pool characters don't mean they never get pruned
# and so that the bar for pruning is a bit lower than previous - we WANT characters to get pruned
pool_character_is_pruneable_trigger = {
	save_temporary_scope_as = pool_prune_check
	is_adult = yes
	NOR = {
		has_trait = heresiarch
		has_trait = populist_leader
		has_trait = adventurer_follower
		has_trait = adventurer
		has_trait = historical_character
		has_character_flag = easteregg
		trigger_if = {
			limit = { exists = dynasty }
			dynasty = { dynasty_prestige_level > medium_dynasty_prestige_level }
		}
		trigger_if = {
			limit = { exists = dynasty }
			any_player = { dynasty = scope:pool_prune_check.dynasty }
		}
		is_claimant = yes
		any_owned_story = {}
		any_relation = { type = rival is_ai = no }
		any_relation = { type = lover is_playable_character = yes }
		any_relation = { type = friend is_playable_character = yes }
		any_close_or_extended_family_member = { is_playable_character = yes }
		is_pregnant = yes
		trigger_if = {
			limit = {
				NOT = { has_character_flag = is_maiden_created_character }
			}
			any_child = {
				is_adult = no
				NOT = { has_character_flag = is_created_maiden }
			}
		}
		real_father ?= {
			OR = {
				is_playable_character = yes
				any_close_or_extended_family_member = { is_playable_character = yes }
			}
		}
	}
	trigger_if = {
		limit = { is_lowborn = no }
		has_any_high_skill_rating = no
	}
	trigger_if = {
		limit = { years_from_game_start < 100 }
		NOR = {
			has_character_flag = ai_will_not_convert
			culture = { has_cultural_tradition = tradition_diasporic }
			trigger_if = {
				limit = {
					NOT = { has_character_flag = is_maiden_created_character }
				}
				is_married = yes
			}
		}
	}
}

