﻿# Bar Player landless from leaving court automatically

courtier_allowed_to_leave_trigger = {
	save_temporary_scope_as = leaving_courtier
	NOR = {
		# Not blocked by script
		is_ai = no
		has_trait = slave
		has_character_flag = blocked_from_leaving
		is_councillor_of = scope:liege
		is_consort_of = scope:liege
		scope:liege = {
			player_heir_position = {
				target = scope:leaving_courtier
				value <= 2 #Not 1st, 2nd or 3rd player heir (0,1,2)
			}
		}
		AND = {
			has_any_court_position = yes
			any_court_position_employer = { this = scope:liege }
		}
		has_relation_lover = scope:liege
		is_knight_of = scope:liege
		is_tax_collector_of = scope:liege
		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 }
					}
				}
			}
		}
		has_epidemic_disease_trigger = yes
		#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 }
			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 } }
		#Would be leaving without a child or consort
		any_child_not_in_traveling_family_trigger = yes
		any_consort_not_in_traveling_family_trigger = yes
		#...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 someone is trying to elope with them
		any_targeting_scheme = {
			scheme_type = elope
		}
		
		#Non-dominant spouses don't wander off
		AND = {
			is_married = yes
			any_spouse = {
				OR = {
					AND = {
						exists = liege
						liege = scope:leaving_courtier.liege
					}
					AND = {
						exists = host
						exists = scope:leaving_courtier.host
						liege = scope:leaving_courtier.host
					}
					is_in_the_same_court_as = scope:leaving_courtier
				}
			}
			trigger_if = {
				limit = { is_female = yes }
				scope:liege = {
					OR = {
						has_realm_law = male_only_law
						has_realm_law = male_preference_law
					}
				}
			}
			trigger_else = {
				scope:liege = {
					OR = {
						has_realm_law = female_only_law
						has_realm_law = female_preference_law
					}
				}
			}
		}

		# Diarchs don't leave their court.
		is_diarch = yes
		is_designated_diarch = yes
		
		#Shieldmaidens stay till dismissed.
		has_trait = shieldmaiden
		
		# Children taught a lesson won't leave
		has_character_modifier = mellowed_spirit

		# Courtiers with sponsored inspirations won't leave on their own.
		AND = {
			exists = inspiration
			inspiration = {	exists = inspiration_sponsor }
		}
		
		scope:liege = { government_has_flag = government_is_landless_adventurer }
	}
}


guest_allowed_to_leave_trigger = {
	NOR = {
		# Not blocked by script
		has_character_flag = blocked_from_leaving
		#Agent in a local scheme
		scope:host = {
			any_courtier = {
				any_targeting_scheme = {
					any_scheme_agent_character = {
						this = scope:guest
					}
				}
			}
		}
		scope:host = {
			any_targeting_scheme = {
				any_scheme_agent_character = {
					this = scope:guest
				}
			}
		}
		any_child = { # No child can be a known child of the host
			is_adult = no
			any_parent = { this = scope:host }
		}
		# Diarchs don't leave their court.
		is_ai = no
		is_diarch = yes
		is_designated_diarch = yes
		#Too sick to travel
		has_epidemic_disease_trigger = yes
		#Would be leaving without spouse or underage child
		any_child_not_in_traveling_family_trigger = yes
		any_consort_not_in_traveling_family_trigger = yes
		#Is waiting for inspiration funding
		exists = inspiration
	}
}

guest_allowed_to_arrive_trigger = {
	trigger_if = {
		limit = { exists = var:last_visited_ruler }
		NOT = { var:last_visited_ruler = $HOST$ }
	}
	trigger_if = { # Make sure that they're not trying to go back to where they are right now
		limit = { exists = host }
		NOT = { host = $HOST$ }
	}
	has_epidemic_disease_trigger = no
	NOT = { has_relation_rival = $HOST$ }
	is_ai = yes
	#Compatible faiths
	faith = {
		save_temporary_scope_as = potential_guest_faith
		faith_hostility_level = {
			target = $HOST$.faith
			value < faith_evil_level
		}
	}
	$HOST$.faith = {
		faith_hostility_level = {
			target = scope:potential_guest_faith
			value < faith_evil_level
		}
	}
	
	#Isn't too good for host
	NAND = {
		OR = {
			any_claim = { tier = tier_empire }
			any_close_family_member = { highest_held_title_tier = tier_empire }
		}
		$HOST$ = { highest_held_title_tier <= tier_county }
	}
} #Note: this trigger used to contain opinion triggers but then some awful rulers could never get guests because everyone hates them