﻿# Grants a random unfilled court position based on skills and traits using CANDIDATE - ROOT is ruler
any_court_position_available_trigger = {
	OR = {
		NOT = { employs_court_position = royal_architect_court_position }
		NOT = { employs_court_position = seneschal_court_position }
		NOT = { employs_court_position = court_tutor_court_position }
		NOT = { employs_court_position = high_almoner_court_position }
		NOT = { employs_court_position = court_physician_court_position }
		NOT = { employs_court_position = antiquarian_court_position }
		NOT = { employs_court_position = master_of_horse_court_position }
		AND = {
			$CANDIDATE$ = {
				can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = ROOT }
			}
			NOT = { employs_court_position = bodyguard_court_position }
		}
		AND = {
			$CANDIDATE$ = {
				can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = ROOT }
			}
			NOT = { employs_court_position = champion_court_position }
		}
		NOT = { employs_court_position = master_of_hunt_court_position }
		NOT = { employs_court_position = court_poet_court_position }
		NOT = { employs_court_position = court_musician_court_position }
		NOT = { employs_court_position = cupbearer_court_position }
		AND = {
			is_female = yes
			$CANDIDATE$ = { is_female = yes }
			NOT = { employs_court_position = lady_in_waiting_court_position }
		}
		AND = {
			culture = { has_cultural_parameter = can_appoint_chief_eunuch }
			$CANDIDATE$ = { is_eunuch_trigger = yes }
			NOT = { employs_court_position = chief_eunuch_court_position }
		}
		AND = {
			culture = { has_cultural_parameter = can_appoint_court_gardener }
			NOT = { employs_court_position = court_gardener_court_position }
		}
		AND = {
			$CANDIDATE$ = {
				can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = ROOT }
			}
			NOT = { employs_court_position = akolouthos_court_position }
		}
#####################
### KETAROS BLOCK ###
#####################
		NOT = { employs_court_position = court_bailiff_position }
		NOT = { employs_court_position = court_cartographer_position }
		NOT = { employs_court_position = court_librarian_position }
		NOT = { employs_court_position = fleet_commander_position }
		NOT = { employs_court_position = grand_winemaker_position }
		NOT = { employs_court_position = lord_sheriff_position }
		NOT = { employs_court_position = marshal_assistant_position }
		NOT = { employs_court_position = master_at_arms_position }
		NOT = { employs_court_position = master_merchant_position }
		NOT = { employs_court_position = quartermaster_position }
		NOT = { employs_court_position = spymaster_assistant_position }
		NOT = { employs_court_position = steward_clerk_position }
		NOT = { employs_court_position = stonemason_master_court_position }
		NOT = { employs_court_position = temple_assistant_position }
#####################
	}
}

# Used in the trigger for court positions to make sure that they don't already have a "job"
# If a court position is considered a full time job, the character cannot hold another similar position
court_position_does_not_already_have_a_job_trigger = {
	custom_tooltip = {
		text = does_not_have_a_full_time_job
		NOR = {
			has_court_position = court_tutor_court_position
			has_court_position = food_taster_court_position
			has_court_position = seneschal_court_position
			has_court_position = cupbearer_court_position
			has_court_position = antiquarian_court_position
			has_court_position = lady_in_waiting_court_position
			has_court_position = court_jester_court_position
			has_court_position = court_poet_court_position
			has_court_position = court_musician_court_position
			has_court_position = bodyguard_court_position
			has_court_position = executioner_court_position
			has_court_position = court_gardener_court_position
			has_court_position = travel_leader_court_position
			has_court_position = wet_nurse_court_position
			has_court_position = akolouthos_court_position
#####################
### KETAROS BLOCK ###
#####################
			has_court_position = court_bailiff_position
			has_court_position = court_cartographer_position
			has_court_position = court_librarian_position
			has_court_position = fleet_commander_position
			has_court_position = grand_winemaker_position
			has_court_position = lord_sheriff_position
			has_court_position = marshal_assistant_position
			has_court_position = master_at_arms_position
			has_court_position = master_merchant_position
			has_court_position = quartermaster_position
			has_court_position = spymaster_assistant_position
			has_court_position = steward_clerk_position
			has_court_position = stonemason_master_court_position
			has_court_position = temple_assistant_position
#####################
			is_councillor = yes
		}
	}
}

# IMPORTANT: This should be used before most instances of appoint_court_position - CU
# Checks that you can employ a specific character to a specific court position at a given moment. This prevents errors from randomly trying to already hire the holder of that court position in some cases.
# Trigger should be used in the scope of the hiring liege
# $COURT_POS$ is the position to which you want to appoint a character
# $CHAR$ is the character you wish to appoint

can_appoint_char_to_any_court_position = {
	OR = {
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_physician_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = cultural_emissary_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = keeper_of_swans_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = chief_qadi_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = garuda_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_gardener_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = lady_in_waiting_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = antiquarian_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = travel_leader_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = wet_nurse_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_tutor_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = food_taster_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = master_of_horse_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = master_of_hunt_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = royal_architect_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = high_almoner_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = seneschal_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = cupbearer_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = chief_eunuch_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_jester_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_poet_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_musician_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = bodyguard_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = champion_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = executioner_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_artificer_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = master_assassin_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = cave_hermit_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = chronicler_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_scholar_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = charioteer_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = bookmaker_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = akolouthos_court_position }
#####################
### KETAROS BLOCK ###
#####################
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_bailiff_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_cartographer_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = court_librarian_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = fleet_commander_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = grand_winemaker_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = lord_sheriff_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = marshal_assistant_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = master_at_arms_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = master_merchant_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = quartermaster_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = spymaster_assistant_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = steward_clerk_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = stonemason_master_court_position }
		can_appoint_char_to_court_position = { CHAR = $CHAR$ COURT_POS = temple_assistant_position  }
#####################
	}
}

has_diplomacy_court_position = {
	OR = {
		has_court_position = court_poet_court_position
		has_court_position = court_musician_court_position
		has_court_position = court_jester_court_position
		has_court_position = cupbearer_court_position
		has_court_position = lady_in_waiting_court_position
		has_court_position = chronicler_court_position
#####################
### KETAROS BLOCK ###
#####################
		has_court_position = court_cartographer_position
#####################
	}
}

has_martial_court_position = {
	OR = {
		has_court_position = bodyguard_court_position
		has_court_position = champion_court_position
		has_court_position = master_of_hunt_court_position
		has_court_position = akolouthos_court_position
#####################
### KETAROS BLOCK ###
#####################
		has_court_position = master_at_arms_position
		has_court_position = quartermaster_position
		has_court_position = fleet_commander_position
		has_court_position = lord_sheriff_position
		has_court_position = marshal_assistant_position
#####################
	}
}

has_stewardship_court_position = {
	OR = {
		has_court_position = royal_architect_court_position
		has_court_position = seneschal_court_position
		has_court_position = keeper_of_swans_court_position
		has_court_position = court_gardener_court_position
#####################
### KETAROS BLOCK ###
#####################
		has_court_position = court_bailiff_position
		has_court_position = master_merchant_position
		has_court_position = steward_clerk_position
		has_court_position = stonemason_master_court_position
#####################
	}
}

has_intrigue_court_position = {
	OR = {
		has_court_position = food_taster_court_position
		has_court_position = chief_eunuch_court_position
		has_court_position = master_assassin_court_position
#####################
### KETAROS BLOCK ###
#####################
		has_court_position = spymaster_assistant_position
		has_court_position = grand_winemaker_position
#####################
	}
}

has_learning_court_position = {
	OR = {
		has_court_position = court_tutor_court_position
		has_court_position = high_almoner_court_position
		has_court_position = court_physician_court_position
		has_court_position = antiquarian_court_position
		has_court_position = cave_hermit_court_position
		has_court_position = court_scholar_court_position
#####################
### KETAROS BLOCK ###
#####################
		has_court_position = court_librarian_position
		has_court_position = temple_assistant_position
#####################
	}
}

can_be_employed_as_any_court_position_trigger = {
	OR = {
		can_be_employed_as = court_poet_court_position
		can_be_employed_as = court_musician_court_position
		can_be_employed_as = court_jester_court_position
		can_be_employed_as = cupbearer_court_position
		can_be_employed_as = lady_in_waiting_court_position
		can_be_employed_as = chronicler_court_position
		can_be_employed_as = master_of_horse_court_position
		can_be_employed_as = bodyguard_court_position
		can_be_employed_as = champion_court_position
		can_be_employed_as = master_of_hunt_court_position
		can_be_employed_as = akolouthos_court_position
		can_be_employed_as = royal_architect_court_position
		can_be_employed_as = seneschal_court_position
		can_be_employed_as = keeper_of_swans_court_position
		can_be_employed_as = court_gardener_court_position
		can_be_employed_as = food_taster_court_position
		can_be_employed_as = chief_eunuch_court_position
		can_be_employed_as = master_assassin_court_position
		can_be_employed_as = court_tutor_court_position
		can_be_employed_as = high_almoner_court_position
		can_be_employed_as = court_physician_court_position
		can_be_employed_as = antiquarian_court_position
		can_be_employed_as = cave_hermit_court_position
		can_be_employed_as = court_scholar_court_position
#####################
### KETAROS BLOCK ###
#####################
		can_be_employed_as = court_bailiff_position
		can_be_employed_as = court_cartographer_position
		can_be_employed_as = court_librarian_position
		can_be_employed_as = fleet_commander_position
		can_be_employed_as = grand_winemaker_position
		can_be_employed_as = lord_sheriff_position
		can_be_employed_as = marshal_assistant_position
		can_be_employed_as = master_at_arms_position
		can_be_employed_as = master_merchant_position
		can_be_employed_as = quartermaster_position
		can_be_employed_as = spymaster_assistant_position
		can_be_employed_as = steward_clerk_position
		can_be_employed_as = stonemason_master_court_position
		can_be_employed_as = temple_assistant_position
#####################
	}
}


#####################
### KETAROS BLOCK ###
#####################
lord_sheriff_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	has_trait = education_martial
	martial >= 12
	is_adult = yes
	is_knight = no
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = $EMPLOYER$ }
	custom_tooltip = {	text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {	text = none_does_not_have_a_full_time_job
		trigger_if = {	limit = { NOT = { has_court_position = lord_sheriff_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

temple_assistant_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	has_trait = education_learning
	custom_tooltip = {	text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {	text = none_does_not_have_a_full_time_job
		trigger_if = {	limit = { NOT = { has_court_position = temple_assistant_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
	custom_tooltip = {
		text = MATCHING_FAITH_DOCTRINE_GENDER
		trigger_if = {
			limit = { $EMPLOYER$.faith = { has_doctrine = doctrine_gender_male_dominated } }
			is_male = yes
		}
		trigger_if = {
			limit = { $EMPLOYER$.faith = { has_doctrine = doctrine_gender_female_dominated } }
			is_female = yes
		}
		trigger_else = { always = yes }
	}
}

steward_clerk_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	NOR = {
		has_trait = blind
	}
	has_trait = education_stewardship
	custom_tooltip = {
		text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {
		text = none_does_not_have_a_full_time_job
		trigger_if = {
			limit = { NOT = { has_court_position = steward_clerk_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

marshal_assistant_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	has_trait = education_martial			
	custom_tooltip = {
		text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = $EMPLOYER$ }
	custom_tooltip = {
		text = none_does_not_have_a_full_time_job
		trigger_if = {
			limit = { NOT = { has_court_position = marshal_assistant_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

stonemason_master_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	has_trait = education_stewardship			
	custom_tooltip = {	
		text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {	
		text = none_does_not_have_a_full_time_job
		trigger_if = {	limit = { NOT = { has_court_position = stonemason_master_court_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

spymaster_assistant_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	has_trait = education_intrigue			
	custom_tooltip = {	text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {	text = none_does_not_have_a_full_time_job
		trigger_if = {	limit = { NOT = { has_court_position = spymaster_assistant_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

fleet_commander_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	has_trait = education_martial			
	custom_tooltip = {	text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {	text = none_does_not_have_a_full_time_job
		trigger_if = {	limit = { NOT = { has_court_position = fleet_commander_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

grand_winemaker_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	has_trait = education_intrigue			
	custom_tooltip = {	text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {	text = none_does_not_have_a_full_time_job
		trigger_if = {	limit = { NOT = { has_court_position = grand_winemaker_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

master_at_arms_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	has_trait = education_martial			
	custom_tooltip = {
		text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = $EMPLOYER$ }
	custom_tooltip = {
		text = none_does_not_have_a_full_time_job
		trigger_if = {
			limit = { NOT = { has_court_position = master_at_arms_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

quartermaster_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	has_trait = education_martial			
	custom_tooltip = {
		text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = $EMPLOYER$ }
	custom_tooltip = {
		text = none_does_not_have_a_full_time_job
		trigger_if = {
			limit = { NOT = { has_court_position = quartermaster_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

court_bailiff_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	NOR = {
		has_trait = blind
	}
	has_trait = education_stewardship
	custom_tooltip = {
		text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {
		text = none_does_not_have_a_full_time_job
		trigger_if = {
			limit = { NOT = { has_court_position = court_bailiff_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

master_merchant_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	NOR = {
		has_trait = blind
	}
	has_trait = education_stewardship
	custom_tooltip = {
		text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {
		text = none_does_not_have_a_full_time_job
		trigger_if = {
			limit = { NOT = { has_court_position = master_merchant_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

court_cartographer_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	NOR = {
		has_trait = blind
	}
	has_trait = education_diplomacy
	custom_tooltip = {
		text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {
		text = none_does_not_have_a_full_time_job
		trigger_if = {
			limit = { NOT = { has_court_position = court_cartographer_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

court_librarian_validity_trigger = {
	base_court_position_validity_trigger = { EMPLOYER = $EMPLOYER$ }
	NOR = {
		has_trait = blind
	}
	has_trait = education_learning
	custom_tooltip = {
		text = NONE_NOT_THE_SPOUSE_OF_CHARACTER_COURT_POSITION
		NOT = { is_spouse_of = $EMPLOYER$ }
	}
	custom_tooltip = {
		text = none_does_not_have_a_full_time_job
		trigger_if = {
			limit = { NOT = { has_court_position = court_librarian_position } }
			court_position_does_not_already_have_a_job_trigger = yes # This positions is considered a job, and cannot be held at the same time as another similar position
		}
	}
}

#####################
