﻿
# Have a look at _court_positions.info for documentation

# COURT POSITIONS
# keeper_of_menagerie_court_position


keeper_of_menagerie_court_position = {
	max_available_positions = 1
	#category = court_position_category_common
	minimum_rank = county

	court_position_asset = {
		animation = personality_compassionate
		background = "gfx/interface/illustrations/event_scenes/bp2_courtyard.dds"
	}

	opinion = {
		value = regular_court_position_opinion
	}
	
	aptitude_level_breakpoints = { 15 30 50 70 }
	
	aptitude = {
		value = 1
		add = {
			value = diplomacy
			multiply = 1
			max = 60
			desc = court_position_skill_diplomacy
		}
		add = {
			value = learning
			multiply = 1
			max = 50
			desc = court_position_skill_learning
		}
		add = {
			value = stewardship
			multiply = 1.5
			max = 50
			desc = court_position_skill_stewardship
		}

		# POSITIVES
		if = {
			limit = {
				has_trait = brave
			}
			add = {
				value = 5
				desc = court_position_brave_trait
			}
		}
		if = {
			limit = {
				has_trait = calm
			}
			add = {
				value = 5
				desc = court_position_calm_trait
			}
		}
		if = {
			limit = {
				has_trait = patient
			}
			add = {
				value = 10
				desc = court_position_patient_trait
			}
		}
		if = {
			limit = {
				has_trait = diligent
			}
			add = {
				value = 5
				desc = court_position_diligent_trait
			}
		}
		if = {
			limit = {
				has_trait = adventurer
			}
			add = {
				value = 5
				desc = court_position_adventurer_trait
			}
		}
		if = {
			limit = {
				has_trait = administrator
			}
			add = {
				value = 10
				desc = court_position_administrator_trait
			}
		}
		if = {
			limit = {
				has_trait = lifestyle_hunter
			}
			add = {
				value = 10
				desc = court_position_hunter_1_trait
			}
		}
		if = {
			limit = {
				has_character_modifier = ep2_beastmaster_modifier
			}
			add = {
				value = 20
				desc = court_position_beastmaster_modifier
			}
		}

		# NEGATIVES
		if = {
			limit = {
				has_trait = craven
			}
			add = {
				value = -10
				desc = court_position_craven_trait
			}
		}
		if = {
			limit = {
				has_trait = lazy
			}
			add = {
				value = -10 
				desc = court_position_lazy_trait
			}
		}
		if = {
			limit = {
				has_trait = clubfooted
			}
			add = {
				value = -30
				desc = court_position_clubfooted_trait
			}
		}
		if = {
			limit = {
				has_trait = blind
			}
			add = {
				value = -50
				desc = court_position_blind_trait
			}
		}
		if = {
			limit = {
				has_trait = infirm
			}
			add = {
				value = -50
				desc = court_position_infirm_trait
			}
		}
		if = {
			limit = {
				has_trait = maimed
			}
			add = {
				value = -30
				desc = court_position_maimed_trait
			}
		}
		if = {
			limit = {
				has_trait = incapable
			}
			multiply = {
				value = 0
				desc = court_position_incapable_trait
			}
		}
		add = court_position_aptitude_family_business_value
		add = court_position_aptitude_low_penalty_value
	}
	
	# Is this an available position for this court? (root is court owner)
	is_shown = {
		can_employ_keeper_of_menagerie_trigger = yes
	}
	
	is_shown_character = {
		scope:employee = {
			is_courtier_of = scope:liege
			is_imprisoned = no
			is_clergy = no 
			bannable_serving_diarch_trigger = no
			NOT = { has_variable = gone_adventuring }
		}
	}

	valid_character = {
		scope:employee = {
			#NOT = { has_court_position = keeper_of_menagerie_court_position }
			trigger_if = {
				limit = { NOT = { has_court_position = keeper_of_menagerie_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
			}
			trigger_if = {
				limit = { bannable_serving_diarch_trigger = yes }
				bannable_serving_diarch_trigger = no
			}
			trigger_if = {
				limit = { has_variable = gone_adventuring }
				NOT = { has_variable = gone_adventuring }
			}
		}
	}
	
	revoke_cost = {
		prestige =  {
			value = minor_court_position_prestige_revoke_cost

			# Set to 0 with Dynasty Perk Inner Circle
			if = {
				limit = {
					exists = dynasty
					dynasty = { has_dynasty_perk = fp2_coterie_legacy_1 }

					employs_court_position = keeper_of_menagerie_court_position
					any_court_position_holder = {
						type = keeper_of_menagerie_court_position
						exists = dynasty
						house = prev.house
					}
				}
				multiply = 0
			}
		}
	}

	salary = {
		round = no
		gold = {
			value = minor_court_position_salary
			# Set to 0 with Dynasty Perk Inner Circle
			if = {
				limit = {
					scope:liege = {
						exists = dynasty
						dynasty = { has_dynasty_perk = fp2_coterie_legacy_1 }

						employs_court_position = keeper_of_menagerie_court_position
						any_court_position_holder = {
							type = keeper_of_menagerie_court_position
							exists = dynasty
							house = prev.house
						}
					}
				}
				multiply = {
					value = 0.0
					desc = inner_circle_salary_mod
					format = "BASE_VALUE_FORMAT_DECIMALS_MINUS_POSITIVE"
				}
			}
			if = {
				limit = {
					scope:liege = {
						employs_court_position = keeper_of_menagerie_court_position
						any_court_position_holder = {
							type = keeper_of_menagerie_court_position
							scope:liege = {
								has_hook_of_type = {
									type = obligation_hook
									target = prev
								}
							}
						}
					}
				}
				multiply = {
					value = 0.5
					desc = obligation_hook_salary
				}
			}
		}
	}

	# These modifiers are employed based on what level the aptitude reaches (levels are defined as breakpoints) 
	scaling_employer_modifiers = {
		terrible = {
			monthly_court_grandeur_change_mult = 0.05
		}
		poor = {
			monthly_court_grandeur_change_mult = 0.06
		}
		average = {
			monthly_court_grandeur_change_mult = 0.07
		}
		good = {
			monthly_court_grandeur_change_mult = 0.09
		}
		excellent = {
			monthly_court_grandeur_change_mult = 0.10
		}
	}

	custom_employer_modifier_description = keeper_of_menagerie_employer_custom_effect_description

	modifier = {
		monthly_prestige = 0.25
		monthly_stewardship_lifestyle_xp_gain_mult = 0.1
	}
	
	search_for_courtier = {
		send_interface_toast = {
			title = find_keeper_of_menagerie_decision
			custom_tooltip = find_keeper_of_menagerie_decision_tooltip
		}

		trigger_event = {
			id = pets_expanded_keeper_of_menagerie.1001
			days = 7
		}
	}
	
	on_court_position_received = {
		basic_gained_court_position_effect = yes
		scope:liege = {
			hidden_effect = {
				update_menagerie_level_effect = yes
			}
		}
	}

	on_court_position_revoked = {
		basic_revoked_court_position_effect = yes
		scope:liege = {
			send_interface_message = {
				type = event_pets_expanded_neutral
				title = keeper_of_menagerie_position_revoked_title
				#desc = keeper_of_menagerie_position_revoked_desc
				left_icon = scope:employee

				if = {
					limit = {
						any_owned_story = {
							is_pet_story_trigger = yes
							pet_is_free_roaming_trigger = no
						}
					}
					hidden_effect = {
						every_owned_story = {
							limit = {
								is_pet_story_trigger = yes
								pet_is_free_roaming_trigger = no
							}
							set_variable = allowed_to_roam_free
						}
					}
					custom_tooltip = fired_keeper_of_menagerie_allowed_to_roam_free
				}
				if = {
					limit = {
						any_owned_story = {
							is_pet_story_trigger = yes
							NOT = { exists = var:allowed_to_breed }
						}
					}
					hidden_effect = {
						every_owned_story = {
							limit = {
								is_pet_story_trigger = yes
								NOT = { exists = var:allowed_to_breed }
							}
							set_variable = allowed_to_breed
						}
					}
					custom_tooltip = fired_keeper_of_menagerie_allowed_to_breed
				}
			}
			hidden_effect = {
				update_menagerie_level_effect = yes
			}
		}
	}

	on_court_position_invalidated = {
		basic_invalidated_court_position_effect = yes
		scope:liege = {
			hidden_effect = {
				update_menagerie_level_effect = yes
			}
		}
	}

	candidate_score = {
		value = 100
		add = scope:base_value
		add = court_position_candidate_score_base_value
		add = court_position_candidate_aptitude_value
		add = court_position_debt_considerations_value
	}
}
