﻿namespace = pets_expanded_keeper_of_menagerie

# General events for the Pets Expanded mod

###########################################
# 
# EVENTS
#	pets_expanded_keeper_of_menagerie.1001 - Choose a Keeper of the Menagerie

#	pets_expanded_keeper_of_menagerie.2000 - Keeper will look for pet! (triggered from the decision: keeper_of_menagerie_search_for_pet_decision)
#	pets_expanded_keeper_of_menagerie.2001 - The Keeper asks if they should actively look for animals
#	pets_expanded_keeper_of_menagerie.2011 - The Keeper of the Menagerie finds a pet, do you want it?
#	pets_expanded_keeper_of_menagerie.2013 - The Keeper of the Menagerie failed to find a pet :(
#	pets_expanded_keeper_of_menagerie.2021 - The Keeper wants money
#	pets_expanded_keeper_of_menagerie.2022 - The Keeper suggests a show!
#	pets_expanded_keeper_of_menagerie.2023 - Peasants have been sneaking into the menagerie 
#	pets_expanded_keeper_of_menagerie.2024 - Peasant gets killed by animal
#	pets_expanded_keeper_of_menagerie.2031 - The Keeper of the Menagerie treats ailing pet


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


#########################
#########################
## DECISION EVENTS
#########################
#########################

# Choose a Keeper of the Menagerie
scripted_trigger great_keeper_of_menagerie_trigger = {
	aptitude:keeper_of_menagerie_court_position >= 3
}

scripted_trigger good_keeper_of_menagerie_trigger = {
	aptitude:keeper_of_menagerie_court_position >= 2
}

scripted_effect initialize_great_keeper_of_menagerie_effect = {
	hidden_effect = {
		random_list = {
			10 = {
				trigger = {
					NOT = { has_trait = physique_good_1 }
				}
				add_trait = physique_good_1
			}
			10 = {
				trigger = {
					NOT = { has_trait = physique_good_2 }
				}
				add_trait = physique_good_2
			}
			10 = {
				trigger = {
					NOT = { has_trait = patient }
				}
				add_trait = patient
			}
			10 = {
				trigger = {
					NOT = { has_trait = adventurer }
				}
				add_trait = adventurer
			}
			10 = {
				trigger = {
					NOT = { has_trait = administrator }
				}
				add_trait = administrator
			}
			10 = {
				trigger = {
					NOT = { has_trait = lifestyle_hunter }
				}
				add_trait = lifestyle_hunter
			}
			10 = {
				trigger = {
					#DLC check for the modifier
					has_ep2_dlc_trigger = yes
					NOT = { has_character_modifier = ep2_beastmaster_modifier }
				}
				add_character_modifier = ep2_beastmaster_modifier
			}
		}
	}
}

pets_expanded_keeper_of_menagerie.1001 = {
	type = character_event
	title = pets_expanded_keeper_of_menagerie.1001.t
	desc = pets_expanded_keeper_of_menagerie.1001.desc
	theme = pets_expanded
	override_background = {
		reference = sitting_room
	}
	left_portrait = {
		character = scope:good_keeper_of_menagerie_option
		animation = chancellor
	}
	right_portrait = {
		character = scope:great_keeper_of_menagerie_option
		animation = steward
	}
	
	trigger = {
		#To make sure I didn't lose it before I got this event; if I did I don't deserve a menagerist
		exists = capital_province
		can_employ_court_position_type = keeper_of_menagerie_court_position
	}

	immediate = {
		hidden_effect = {
			# Great Character
			if = { # Check for a GREAT character in the pool
				limit = {
					any_pool_character = {
						province = root.capital_province
						great_keeper_of_menagerie_trigger = yes
						can_be_employed_as = keeper_of_menagerie_court_position
					}
				}
				random_pool_character = {
					province = root.capital_province
					limit = {
						great_keeper_of_menagerie_trigger = yes
						can_be_employed_as = keeper_of_menagerie_court_position
					}
					save_scope_as = great_keeper_of_menagerie_option
					initialize_great_keeper_of_menagerie_effect = yes
				}
			}
			else = { # otherwise create one
				create_character = {
					location = root.capital_province
					dynasty = none
					template = PE_great_keeper_of_menagerie_template
					save_scope_as = great_keeper_of_menagerie_option
				}
				scope:great_keeper_of_menagerie_option ?= {
					initialize_great_keeper_of_menagerie_effect = yes 
				}
			}

			# Good Character
			if = { # check for a GOOD character in the pool
				limit = {
					any_pool_character = {
						province = root.capital_province
						good_keeper_of_menagerie_trigger = yes
						can_be_employed_as = keeper_of_menagerie_court_position
						NOT = { this = scope:great_keeper_of_menagerie_option }
					}
				}
				random_pool_character = {
					province = root.capital_province
					limit = {
						good_keeper_of_menagerie_trigger = yes
						can_be_employed_as = keeper_of_menagerie_court_position
						NOT = { this = scope:great_keeper_of_menagerie_option }
					}
					save_scope_as = good_keeper_of_menagerie_option
				}
			}
			else = { # otherwise create one
				create_character = {
					location = root.capital_province
					dynasty = none
					template = PE_good_keeper_of_menagerie_template
					save_scope_as = good_keeper_of_menagerie_option
				}
			}
		}
	}

	#Great option
	option = {
		name = pets_expanded_keeper_of_menagerie.1001.a
		custom_tooltip = pets_expanded_keeper_of_menagerie.1001.a.aptitude
		pay_short_term_gold = {
			target = scope:great_keeper_of_menagerie_option
			gold = high_skill_court_physician_cost
		}
		add_courtier = scope:great_keeper_of_menagerie_option
		if = {
			limit = {
				can_employ_court_position_type = keeper_of_menagerie_court_position
			}
			appoint_court_position = {
				recipient = scope:great_keeper_of_menagerie_option
				court_position = keeper_of_menagerie_court_position
			}
		}
		else_if = {
			limit = {
				employs_court_position = keeper_of_menagerie_court_position
			}
			random_court_position_holder = {
				type = keeper_of_menagerie_court_position
				save_scope_as = current_keeper_of_menagerie
			}
			replace_court_position = {
				recipient = scope:great_keeper_of_menagerie_option
				holder = scope:current_keeper_of_menagerie
				court_position = keeper_of_menagerie_court_position
			}
		}

		ai_chance = {
			factor = 500
			modifier = {
				short_term_gold < medium_gold_value
				factor = 0
			}
		}
	}

	#Good option
	option = {
		name = pets_expanded_keeper_of_menagerie.1001.b
		custom_tooltip = pets_expanded_keeper_of_menagerie.1001.b.aptitude
		pay_short_term_gold = {
			target = scope:good_keeper_of_menagerie_option
			gold = low_skill_court_physician_cost
		}
		add_courtier = scope:good_keeper_of_menagerie_option
		if = {
			limit = {
				can_appoint_char_to_court_position = {
					CHAR = scope:good_keeper_of_menagerie_option
					COURT_POS = keeper_of_menagerie_court_position
				}
			}
			appoint_court_position = {
				recipient = scope:good_keeper_of_menagerie_option
				court_position = keeper_of_menagerie_court_position
			}
		}
		else_if = {
			limit = {
				employs_court_position = keeper_of_menagerie_court_position
			}
			random_court_position_holder = {
				type = keeper_of_menagerie_court_position
				save_scope_as = current_keeper_of_menagerie
			}
			replace_court_position = {
				recipient = scope:good_keeper_of_menagerie_option
				holder = scope:current_keeper_of_menagerie
				court_position = keeper_of_menagerie_court_position
			}
		}

		ai_chance = {
			factor = 100
			modifier = {
				short_term_gold < medium_gold_value
				factor = 0
			}
		}
	}

	#Nah
	option = {
		name = pets_expanded_keeper_of_menagerie.1001.c

		ai_chance = {
			factor = 1
		}
	}
}






# Keeper will look for pet! (triggered from the decision: keeper_of_menagerie_search_for_pet_decision)
scripted_effect search_for_pet_result_effect = {
	hidden_effect = {
		random_list = {
			10 = { #Succeeded
				modifier = {
					add = 80
					scope:keeper_of_menagerie.aptitude:keeper_of_menagerie_court_position >= 4
				}
				modifier = {
					add = 60
					scope:keeper_of_menagerie.aptitude:keeper_of_menagerie_court_position >= 3
				}
				modifier = {
					add = 30
					scope:keeper_of_menagerie.aptitude:keeper_of_menagerie_court_position >= 2
				}
				#This is just to decide how fast you get the result event
				if = {
					limit = {
						exists = scope:keeper_of_menagerie.var:search_for_animal
						scope:keeper_of_menagerie.var:search_for_animal = flag:random_animal
					}
					trigger_event = {
						id = pets_expanded_keeper_of_menagerie.2011
						months = { 3 12 }
					}
				}
				else_if = {
					limit = {
						scope:keeper_of_menagerie = {
							exists = var:search_for_animal
							OR = {
								var:search_for_animal = flag:cool_animal
								var:search_for_animal = flag:bear
								var:search_for_animal = flag:lion
								var:search_for_animal = flag:monkey
								var:search_for_animal = flag:tiger
								var:search_for_animal = flag:elephant
							}
						}
					}
					trigger_event = {
						id = pets_expanded_keeper_of_menagerie.2011
						months = { 12 24 }
					}
				}
				else = {
					trigger_event = {
						id = pets_expanded_keeper_of_menagerie.2011
						months = { 6 20 }
					}
				}
			}
			10 = { #Failed
				trigger = {
					#If you went through the decision (and payed) you'll always get some pet
					scope:keeper_of_menagerie = {
						trigger_if = {
							limit = {
								exists = var:search_for_animal
							}
							OR = {
								var:search_for_animal = flag:random_animal
								var:search_for_animal = flag:cool_animal
							}
						}
					}
				}
				modifier = {
					add = 40
					scope:keeper_of_menagerie.aptitude:keeper_of_menagerie_court_position <= 1
				}
				modifier = {
					add = 20
					exists = var:search_for_animal
					scope:keeper_of_menagerie.var:search_for_animal = flag:cool_animal
				}
				#This is just to decide how fast you get the result event
				if = {
					limit = {
						exists = scope:keeper_of_menagerie.var:search_for_animal
						scope:keeper_of_menagerie.var:search_for_animal = flag:random_animal
					}
					trigger_event = {
						id = pets_expanded_keeper_of_menagerie.2013
						months = { 3 12 }
					}
				}
				else_if = {
					limit = {
						exists = scope:keeper_of_menagerie.var:search_for_animal
						scope:keeper_of_menagerie.var:search_for_animal = flag:cool_animal
					}
					trigger_event = {
						id = pets_expanded_keeper_of_menagerie.2013
						months = { 12 24 }
					}
				}
				else = {
					trigger_event = {
						id = pets_expanded_keeper_of_menagerie.2013
						months = { 6 20 }
					}
				}
			}
		}
	}
}
pets_expanded_keeper_of_menagerie.2000 = {
	type = character_event
	title = pets_expanded_keeper_of_menagerie.2000.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { has_any_pet_trigger = yes }
				desc = pets_expanded_keeper_of_menagerie.2000.desc_pets
			}
			triggered_desc = {
				trigger = { has_any_pet_trigger = no }
				desc = pets_expanded_keeper_of_menagerie.2000.desc_no_pets
			}
		}
		desc = pets_expanded_keeper_of_menagerie.2000.desc
	}
	theme = pets_expanded
	override_background = {
		reference = sitting_room
	}
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:keeper_of_menagerie
		animation = personality_honorable
	}

	trigger = {
		any_court_position_holder = {
			type = keeper_of_menagerie_court_position
			is_physically_able = yes
		}
	}

	immediate = {
		random_court_position_holder = {
			type = keeper_of_menagerie_court_position
			limit = { is_physically_able = yes }
			save_scope_as = keeper_of_menagerie
		}
		#So that the player doesn't immediately get the random "should I look for pets?" event while this is ongoing
		add_character_flag = {
			flag = block_event_pets_expanded_keeper_of_menagerie_2001
			years = 2
		}
		save_scope_value_as = {
			name = came_from_2001_or_decision
			value = yes
		}
		set_variable = {
			name = block_2011
			months  = 25
		}

		scope:keeper_of_menagerie = {
			if = {
				limit = {
					scope:choose_cat = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:cat
				}
			}
			else_if = {
				limit = {
					scope:choose_dog = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:dog
				}
			}
			else_if = {
				limit = {
					scope:choose_badger = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:badger
				}
			}
			else_if = {
				limit = {
					scope:choose_bear = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:bear
				}
			}
			else_if = {
				limit = {
					scope:choose_falcon = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:falcon
				}
			}
			else_if = {
				limit = {
					scope:choose_ferret = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:ferret
				}
			}
			else_if = {
				limit = {
					scope:choose_fox = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:fox
				}
			}
			else_if = {
				limit = {
					scope:choose_hedgehog = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:hedgehog
				}
			}
			else_if = {
				limit = {
					scope:choose_lion = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:lion
				}
			}
			else_if = {
				limit = {
					scope:choose_monkey = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:monkey
				}
			}
			else_if = {
				limit = {
					scope:choose_nightingale = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:nightingale
				}
			}
			else_if = {
				limit = {
					scope:choose_parrot = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:parrot
				}
			}
			else_if = {
				limit = {
					scope:choose_rabbit = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:rabbit
				}
			}
			else_if = {
				limit = {
					scope:choose_squirrel = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:squirrel
				}
			}
			else_if = {
				limit = {
					scope:choose_tiger = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:tiger
				}
			}
			else_if = {
				limit = {
					scope:choose_weasel = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:weasel
				}
			}
			else_if = {
				limit = {
					scope:choose_elephant = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:elephant
				}
			}
			else_if = {
				limit = {
					scope:choose_hawk = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:hawk
				}
			}
			else_if = {
				limit = {
					scope:choose_raven = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:raven
				}
			}
			else_if = {
				limit = {
					scope:choose_horse = yes
				}
				set_variable = {
					name = search_for_animal
					value = flag:horse
				}
			}
		}
	}

	#Good luck!
	option = {
		name = pets_expanded_keeper_of_menagerie.2000.a
		custom_tooltip = pets_expanded_keeper_of_menagerie.2000.a_tt

		search_for_pet_result_effect = yes
	}

	#I changed my mind
	option = {
		name = pets_expanded_keeper_of_menagerie.2000.b
		custom_tooltip = pets_expanded_keeper_of_menagerie.2000.b_tt
		scope:keeper_of_menagerie = {
			remove_variable = search_for_animal
		}
		remove_character_flag = block_event_pets_expanded_keeper_of_menagerie_2001
		remove_variable = block_2011

		remove_decision_cooldown = keeper_of_menagerie_search_for_pet_decision
		add_gold = {
			value = medium_gold_value
			multiply = 0.8
			if = {
				limit = {
					OR = {
						scope:choose_bear = yes
						scope:choose_lion = yes
						scope:choose_monkey = yes
						scope:choose_tiger = yes
						scope:choose_elephant = yes
					}
				}
				multiply = 1.5
			}
		}
	}
}


# The Keeper of the Menagerie asks if they should actively look for animals
pets_expanded_keeper_of_menagerie.2001 = {
	type = character_event
	title = pets_expanded_keeper_of_menagerie.2001.t
	desc = {
		random_valid = {
			triggered_desc = {
				trigger = {
					any_owned_story = {
						is_pet_story_trigger = yes
						count <= 3
					}
				}
				desc = pets_expanded_keeper_of_menagerie.2001.desc
			}
			triggered_desc = {
				trigger = { has_any_pet_trigger = yes }
				desc = pets_expanded_keeper_of_menagerie.2001.desc_2
			}
			triggered_desc = {
				trigger = { has_any_pet_trigger = no }
				desc = pets_expanded_keeper_of_menagerie.2001.desc_3
			}
		}
	}
	theme = pets_expanded
	override_background = {
		reference = sitting_room
	}
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:keeper_of_menagerie
		animation = personality_honorable
	}

	cooldown = { years = 2 }

	trigger = {
		NOT = { has_character_flag = block_event_pets_expanded_keeper_of_menagerie_2001 }
		any_court_position_holder = {
			type = keeper_of_menagerie_court_position
			is_physically_able = yes
			NOT = { has_variable = search_for_animal }
		}
	}

	weight_multiplier = {
		base = 0.75
		modifier = {
			add = 0.5
			any_owned_story = {
				is_pet_story_trigger = yes
				count <= 0
			}
		}
		modifier = {
			add = 0.25
			any_owned_story = {
				is_pet_story_trigger = yes
				count <= 2
			}
		}
		modifier = {
			add = -0.25
			any_owned_story = {
				is_pet_story_trigger = yes
				count >= 6
			}
		}
		modifier = {
			add = -0.25
			any_owned_story = {
				is_pet_story_trigger = yes
				count >= 8
			}
		}
	}

	immediate = {
		random_court_position_holder = {
			type = keeper_of_menagerie_court_position
			limit = { is_physically_able = yes }
			save_scope_as = keeper_of_menagerie
		}

		save_scope_value_as = {
			name = came_from_2001_or_decision
			value = yes
		}
		set_variable = {
			name = block_2011
			months  = 25
		}
	}

	#Yes please!
	option = {
		name = pets_expanded_keeper_of_menagerie.2001.a
		custom_tooltip = pets_expanded_keeper_of_menagerie.2001.a.tt
		scope:keeper_of_menagerie = {
			set_variable = {
				name = search_for_animal
				value = flag:random_animal
			}
		}
		search_for_pet_result_effect = yes

		ai_chance = {
			base = 50

			modifier = {
				add = -25
				any_owned_story = {
					pet_is_big_trigger = no
				}
			}
		}
	}

	#Yes please, a cool one!
	option = {
		name = pets_expanded_keeper_of_menagerie.2001.b
		custom_tooltip = pets_expanded_keeper_of_menagerie.2001.b.tt
		scope:keeper_of_menagerie = {
			set_variable = {
				name = search_for_animal
				value = flag:cool_animal
			}
		}
		search_for_pet_result_effect = yes

		ai_chance = {
			base = 20

			modifier = {
				add = -15
				any_owned_story = {
					pet_is_big_trigger = yes
				}
			}
			ai_value_modifier = {
				ai_boldness = 1
				ai_greed = 0.5
			}
		}
	}

	#Nah, I'm good
	option = {
		name = pets_expanded_keeper_of_menagerie.2001.c
		remove_variable = block_2011
		ai_chance = {
			base = 0
		}
	}

	#No, and don't ask me again
	option = {
		name = pets_expanded_keeper_of_menagerie.2001.d
		add_character_flag = {
			flag = block_event_pets_expanded_keeper_of_menagerie_2001
			years = 10
		}
		remove_variable = block_2011

		ai_chance = {
			base = 0
		}
	}
}


# The Keeper of the Menagerie finds a pet, do you want it?
scripted_trigger pets_expanded_keeper_of_menagerie_2011_basic_trigger = {
	is_physically_able = yes
}

pets_expanded_keeper_of_menagerie.2011 = {
	type = character_event
	title = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:keeper_of_menagerie = { has_variable = search_for_animal } }
				desc = pets_expanded_keeper_of_menagerie.2000.t
			}
			desc = pets_expanded_keeper_of_menagerie.2001.t
		}
	}
	desc = {
		desc = pets_expanded_keeper_of_menagerie.2011.desc_opening
		first_valid = {
			triggered_desc = {
				trigger = { scope:keeper_of_menagerie = { has_variable = wrong_pet } }
				desc = pets_expanded_keeper_of_menagerie.2011.desc_wrong_pet
			}
			triggered_desc = {
				trigger = {
					scope:keeper_of_menagerie = {
						has_variable = search_for_animal
						NOR = {
							var:search_for_animal = flag:random_animal
							var:search_for_animal = flag:cool_animal
						}
					}
				}
				desc = pets_expanded_keeper_of_menagerie.2011.desc_searched
			}
			desc = pets_expanded_keeper_of_menagerie.2011.desc
		}
	}
	theme = pets_expanded
	override_background = {
		reference = sitting_room
	}
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:keeper_of_menagerie
		animation = happiness
	}
	lower_right_portrait = {
		trigger = { exists = scope:physician }
		character = scope:physician
		animation = personality_rational
	}

	cooldown = { months = 6 }

	trigger = {
		ai_can_get_new_pet_trigger = yes
		any_court_position_holder = {
			type = keeper_of_menagerie_court_position
			is_physically_able = yes
		}
		#If your keeper is actively searching (from event or decision), we block this as a random event
		trigger_if = {
			limit = { exists = var:block_2011 }
			exists = scope:came_from_2001_or_decision
		}
		trigger_else = {
			NOT = { exists = var:had_pet_event_recently }
		}
	}

	on_trigger_fail = {
		if = {
			limit = { exists = scope:came_from_2001_or_decision }
			trigger_event = {
				id = pets_expanded_keeper_of_menagerie.2011
				days = 25
			}
		}
	}

	weight_multiplier = {
		base = 0.5
		modifier = {
			add = 0.5
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				pets_expanded_keeper_of_menagerie_2011_basic_trigger = yes
				has_variable = search_for_animal
			}
		}
		modifier = { #more likely if you took the decision to search for a pet
			add = 1
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				pets_expanded_keeper_of_menagerie_2011_basic_trigger = yes
				has_variable = search_for_animal
				NOR = {
					var:search_for_animal = flag:random_animal
					var:search_for_animal = flag:cool_animal
				}
			}
		}
		modifier = { #less likely if you took the decision to search for a HARD TO FIND pet
			add = -0.3
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				pets_expanded_keeper_of_menagerie_2011_basic_trigger = yes
				
				has_variable = search_for_animal
				OR = {
					var:search_for_animal = flag:bear
					var:search_for_animal = flag:lion
					var:search_for_animal = flag:monkey
					var:search_for_animal = flag:tiger
					var:search_for_animal = flag:elephant
					var:search_for_animal = flag:cool_animal
				}
			}
		}
		modifier = {
			add = 1
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				aptitude:keeper_of_menagerie_court_position >= 4
			}
		}
		modifier = {
			add = 0.5
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				aptitude:keeper_of_menagerie_court_position >= 3
			}
		}
		modifier = {
			add = 0.25
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				aptitude:keeper_of_menagerie_court_position >= 2
			}
		}
		modifier = {
			add = -0.2
			OR = {
				any_owned_story = {
					is_pet_story_trigger = yes
					count >= 6
				}
			}
		}
	}

	immediate = {
		random_court_position_holder = {
			type = keeper_of_menagerie_court_position
			limit = { #try and find one that's actively looking for the pet
				pets_expanded_keeper_of_menagerie_2011_basic_trigger = yes
				has_variable = search_for_animal
			}
			alternative_limit = { #if there's none, we take another, I guess...
				pets_expanded_keeper_of_menagerie_2011_basic_trigger = yes
			}
			save_scope_as = keeper_of_menagerie
		}

		remove_variable = block_2011

		if = {
			limit = { court_physician_available_trigger = yes }
			save_court_physician_as_effect = { SCOPE_NAME = physician }
		}

		hidden_effect = {
			scope:keeper_of_menagerie = {
				random_list = {
					25 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:cat
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:cat
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = cat }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					25 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:dog
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:dog
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = dog }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					10 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:badger
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:badger
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = badger }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					15 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:falcon
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:falcon
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = falcon }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					15 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:ferret
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:ferret
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = ferret }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					10 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:fox
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:fox
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = fox }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					10 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:hedgehog
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:hedgehog
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = hedgehog }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					5 = {
						modifier = {
							add = 5
							liege.capital_province = {
								OR = {
									geographical_region = world_africa
									geographical_region = world_asia_minor
								}
							}
						}
						modifier = {
							add = 400
							var:search_for_animal ?= flag:monkey
						}
						modifier = {
							add = 400
							var:search_for_animal ?= flag:cool_animal
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:monkey
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = monkey }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					10 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:nightingale
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:nightingale
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = nightingale }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					10 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:parrot
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:parrot
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = parrot }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					15 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:rabbit
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:rabbit
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = rabbit }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					15 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:squirrel
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:squirrel
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = squirrel }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					15 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:weasel
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:weasel
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = weasel }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					15 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:hawk
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:hawk
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = hawk }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					15 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:raven
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:raven
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = raven }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					5 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:bear
						}
						modifier = {
							add = 400
							var:search_for_animal ?= flag:cool_animal
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:bear
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = bear }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					5 = {
						modifier = {
							add = 5
							liege.capital_province = {
								OR = {
									geographical_region = world_africa
									geographical_region = world_middle_east
								}
							}
						}
						modifier = {
							add = 400
							var:search_for_animal ?= flag:lion
						}
						modifier = {
							add = 400
							var:search_for_animal ?= flag:cool_animal
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:lion
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = lion }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					5 = {
						modifier = {
							add = 5
							liege.capital_province = {
								OR = {
									geographical_region = world_steppe
									geographical_region = world_india
									geographical_region = world_burma
									geographical_region = world_middle_east_persia
									geographical_region = world_asia_minor
								}
							}
						}
						modifier = {
							add = 400
							var:search_for_animal ?= flag:tiger
						}
						modifier = {
							add = 400
							var:search_for_animal ?= flag:cool_animal
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:tiger
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = tiger }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					5 = {
						modifier = {
							add = 5
							liege.capital_province = { geographical_region = world_innovation_elephants }
						}
						modifier = {
							add = 400
							var:search_for_animal ?= flag:elephant
						}
						modifier = {
							add = 400
							var:search_for_animal ?= flag:cool_animal
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:elephant
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = elephant }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
					10 = {
						modifier = {
							add = 400
							var:search_for_animal ?= flag:horse
						}
						if = {
							limit = {
								exists = var:search_for_animal
								var:search_for_animal = {
									NOR = {
										this = flag:horse
										this = flag:cool_animal
										this = flag:random_animal
									}
								}
							}
							set_variable = wrong_pet
						}
						start_pet_story_cycle_and_save_scope_effect = { PET_TYPE = horse }
						var:save_newly_created_pet_scope ?= { save_scope_as = story }
					}
				}
				scope:story ?= {
					set_variable = {
						name = age_variable
						value = {
							integer_range = {
								min = 1
								max = 3
							}
						}
					}
				}
			}
			pets_expanded_setup_event_effect = yes
		}
	}

	#Yes!
	option = {
		name = pets_expanded_keeper_of_menagerie.2011.a
		show_as_tooltip = { start_pet_story_cycle_from_story_scope_effect = { SCOPE = scope:story } }
		hidden_effect = {
			scope:keeper_of_menagerie = {
				transfer_pet_story_cycle_to_effect = {
					CHARACTER = root
					STORY = scope:story
				}
				if = {
					limit = { has_variable = search_for_animal }
					remove_variable = search_for_animal
				}
			}
		}
				
		scope:story ?= { pets_expanded_cleanup_after_event_effect = yes }

		ai_chance = {
			base = 100
			
			#Less likely to be picked if you already have the type of pet
			modifier = {
				add = -50
				any_owned_story = {
					is_same_story_type_trigger = { STORY_2 = scope:story }
				}
			}

			# Even less likely to be picked if you already have 2 or more of that pet!
			modifier = {
				add = -30
				any_owned_story = {
					is_same_story_type_trigger = { STORY_2 = scope:story }
					count >= 2
				}
			}
		}
	}

	#No, sell it
	option = {
		name = pets_expanded_keeper_of_menagerie.2011.b
		add_gold = tiny_gold_value
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = disappointed_opinion
				opinion = -10
				target = root
			}
			if = {
				limit = { has_variable = search_for_animal }
				remove_variable = search_for_animal
			}
		}
		hidden_effect = {
			end_pet_story_cycle_from_story_scope_effect = { STORY = scope:story }
		}

		ai_chance = {
			base = 5
			modifier = {
				factor = 100
				short_term_gold < tiny_gold_value
			}
			ai_value_modifier = {
				ai_greed = 1
			}
		}
	}

	#Nah, give it to physician
	option = {
		name = pets_expanded_keeper_of_menagerie.2011.c
		trigger = { exists = scope:physician }
		custom_tooltip = pets_expanded_keeper_of_menagerie_2011_c_tt
		scope:physician = {
 			if = {
 				limit = {
 					NAND = {
						has_trait = lifestyle_physician
						has_trait_xp = {
							trait = lifestyle_physician
							value >= 100
						}
					}
 				}
				random = {
					chance = 25
					physician_lifestyle_rank_up_effect = yes
					root = {
						send_interface_message = {
							type = event_court_physician_good
							title = physician_level_up_chance_effect.t
							left_icon = scope:physician
							physician_rank_up_tooltip_effect = yes
						}
					}
				}
			}
		}
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = disappointed_opinion
				opinion = -10
				target = root
			}
			if = {
				limit = { has_variable = search_for_animal }
				remove_variable = search_for_animal
			}
		}
		hidden_effect = {
			end_pet_story_cycle_from_story_scope_effect = { STORY = scope:story }
		}

		ai_chance = {
			base = 10

			modifier = {
				add = 200
				has_any_illness = yes
				OR = {
					NOT = {
						has_trait = lifestyle_physician
					}
					AND = {
						has_trait = lifestyle_physician
						has_trait_xp = {
							trait = lifestyle_physician
							value <= 25
						}
					}
				}
			}
			ai_value_modifier = {
				ai_compassion = -1
			}
		}
	}

	#Nah, I'm good, you keep it
	option = {
		name = pets_expanded_keeper_of_menagerie.2011.d

		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = pleased_opinion
				opinion = 20
				target = root
			}
			show_as_tooltip = { start_pet_story_cycle_from_story_scope_effect = { SCOPE = scope:story } }
			if = {
				limit = { has_variable = search_for_animal }
				remove_variable = search_for_animal
			}
		}
		scope:story ?= { pets_expanded_cleanup_after_event_effect = yes }

		ai_chance = {
			base = 5
		}
	}

	#No, continue searching
	option = {
		name = pets_expanded_keeper_of_menagerie.2011.e
		trigger = { scope:keeper_of_menagerie = { has_variable = wrong_pet } }

		save_scope_value_as = {
			name = came_from_2001_or_decision
			value = yes
		}
		set_variable = {
			name = block_2011
			months  = 25
		}
		search_for_pet_result_effect = yes

		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = disappointed_opinion
				opinion = -5
				target = root
			}
		}
				
		hidden_effect = {
			end_pet_story_cycle_from_story_scope_effect = { STORY = scope:story }
		}

		ai_chance = {
			base = 0
		}
	}

	after = {
		scope:keeper_of_menagerie = { remove_variable = wrong_pet }
	}
}



# The Keeper of the Menagerie failed to find a pet :(
pets_expanded_keeper_of_menagerie.2013 = {
	type = character_event
	title = pets_expanded_keeper_of_menagerie.2013.t
	desc = pets_expanded_keeper_of_menagerie.2013.desc
	theme = pets_expanded
	override_background = {
		reference = sitting_room
	}
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:keeper_of_menagerie
		animation = sadness
	}


	trigger = {
		any_court_position_holder = {
			type = keeper_of_menagerie_court_position
			is_physically_able = yes
			has_variable = search_for_animal
			#If you went through the decision (and payed) you'll always get some pet
			OR = {
				var:search_for_animal = flag:random_animal
				var:search_for_animal = flag:cool_animal
			}
		}
	}

	weight_multiplier = {
		base = 0.5
		modifier = {
			add = 0.25
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				pets_expanded_keeper_of_menagerie_2011_basic_trigger = yes
				has_variable = search_for_animal
				var:search_for_animal = flag:cool_animal
			}
		}
		modifier = {
			add = 0.15
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				aptitude:keeper_of_menagerie_court_position <= 2
			}
		}
		modifier = {
			add = 0.25
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				aptitude:keeper_of_menagerie_court_position <= 1
			}
		}
	}

	immediate = {
		random_court_position_holder = {
			type = keeper_of_menagerie_court_position
			limit = { is_physically_able = yes }
			save_scope_as = keeper_of_menagerie

			if = {
				limit = { has_variable = search_for_animal }
				remove_variable = search_for_animal
			}
		}
	}

	#Oh, that's a bummer...
	option = {
		name = pets_expanded_keeper_of_menagerie.2013.a
		
		ai_chance = {
			base = 100
		}
	}
}



# The Keeper of the Menagerie wants money
pets_expanded_keeper_of_menagerie.2021 = {
	type = character_event
	title = pets_expanded_keeper_of_menagerie.2021.t
	desc = {
		desc = pets_expanded_keeper_of_menagerie.2021.desc_opening
		first_valid = {
			triggered_desc = {
				trigger = {
					any_owned_story = { is_pet_story_trigger = yes }
				}
				desc = pets_expanded_keeper_of_menagerie.2021.desc_pets
			}
			desc = pets_expanded_keeper_of_menagerie.2021.desc
		}
	}
	theme = pets_expanded
	override_background = {
		reference = sitting_room
	}
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:keeper_of_menagerie
		animation = beg
	}

	trigger = {
		any_court_position_holder = {
			type = keeper_of_menagerie_court_position
			is_physically_able = yes
		}
		NOT = { exists = var:had_pet_event_recently }
	}

	weight_multiplier = {
		base = 0.2
		modifier = {
			add = 0.5
			any_owned_story = {
				is_pet_story_trigger = yes
				count >= 2
			}
		}
		modifier = {
			add = 0.5
			any_owned_story = {
				is_pet_story_trigger = yes
				count >= 4
			}
		}
		modifier = {
			add = 0.5
			any_owned_story = {
				is_pet_story_trigger = yes
				count >= 8
			}
		}
	}

	cooldown = { years = 5 }

	immediate = {
		set_variable = {
			name = had_pet_event_recently
			months = 6
		}
		random_court_position_holder = {
			type = keeper_of_menagerie_court_position
			limit = { is_physically_able = yes }
			save_scope_as = keeper_of_menagerie
		}

		hidden_effect = {
			random_owned_story = {
				limit = { is_pet_story_trigger = yes }
				save_scope_as = story
			}
			pets_expanded_setup_event_effect = yes
		}
	}

	#Sure
	option = {
		name = pets_expanded_keeper_of_menagerie.2021.a
		trigger = {
			short_term_gold >= medium_gold_value
		}
		show_as_unavailable = {
			short_term_gold < medium_gold_value
		}
		remove_short_term_gold = medium_gold_value
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = pleased_opinion
				opinion = 30
				target = root
			}
		}
		if = {
			limit = {
				exists = scope:story
			}
			every_owned_story = {
				custom = custom.every_pet_story
				limit = {
					is_pet_story_trigger = yes
				}
				save_scope_as = story_scope
				pet_opinion_change_effect = { STORY = scope:story_scope CHANGE = increase_medium }
			}
		}

		stress_impact = {
			generous = minor_stress_impact_loss
		}
		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_compassion = 1
				ai_greed = -1
			}
		}
	}

	#Sure, but not much
	option = {
		name = pets_expanded_keeper_of_menagerie.2021.b
		trigger = {
			short_term_gold >= minor_gold_value
		}
		show_as_unavailable = {
			short_term_gold < minor_gold_value
		}
		remove_short_term_gold = minor_gold_value
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = pleased_opinion
				opinion = 10
				target = root
			}
		}
		if = {
			limit = {
				exists = scope:story
			}
			every_owned_story = {
				custom = custom.every_pet_story
				limit = {
					is_pet_story_trigger = yes
				}
				save_scope_as = story_scope
				pet_opinion_change_effect = { STORY = scope:story_scope CHANGE = increase_minor }
			}
		}

		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_compassion = 0.25
				ai_greed = -0.5
			}
		}
	}

	#No
	option = {
		name = pets_expanded_keeper_of_menagerie.2021.c
		
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = disappointed_opinion
				opinion = -20
				target = root
			}
		}

		stress_impact = {
			greedy = medium_stress_impact_loss
		}
		ai_chance = {
			base = 10
			ai_value_modifier = {
				ai_greed = 2
			}
		}
	}

	after = {
		scope:story ?= { pets_expanded_cleanup_after_event_effect = yes }
	}
}


# The Keeper of the Menagerie suggests a show!
pets_expanded_keeper_of_menagerie.2022 = {
	type = character_event
	title = pets_expanded_keeper_of_menagerie.2022.t
	desc = pets_expanded_keeper_of_menagerie.2022.desc
	theme = pets_expanded
	override_background = {
		reference = sitting_room
	}
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:keeper_of_menagerie
		animation = admiration
	}
	
	trigger = {
		any_court_position_holder = {
			type = keeper_of_menagerie_court_position
			is_physically_able = yes
		}
		capital_county = {
			NOR = {
				has_county_modifier = PE_county_animal_show_modifier
				has_county_modifier = PE_county_animal_show_minor_modifier
			}
		}
		any_owned_story = {
			is_pet_story_trigger = yes
			pet_available_for_ongoing_events_trigger = yes
		}
		NOT = { exists = var:had_pet_event_recently }
	}

	cooldown = { years = 5 }

	immediate = {
		set_variable = {
			name = had_pet_event_recently
			months = 6
		}
		random_court_position_holder = {
			type = keeper_of_menagerie_court_position
			limit = { is_physically_able = yes }
			save_scope_as = keeper_of_menagerie
		}

		hidden_effect = {
			random_owned_story = {
				limit = {
					is_pet_story_trigger = yes
					pet_available_for_ongoing_events_trigger = yes
				}
				save_scope_as = story
			}
			pets_expanded_setup_event_effect = yes
		}
	}

	#Sure
	option = {
		name = pets_expanded_keeper_of_menagerie.2022.a
		trigger = {
			short_term_gold >= minor_gold_value
		}
		show_as_unavailable = {
			short_term_gold < minor_gold_value
		}
		remove_short_term_gold = minor_gold_value
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = pleased_opinion
				opinion = 30
				target = root
			}
		}
		#pet_opinion_change_effect = { STORY = scope:story CHANGE = decrease_minor }

		capital_county = {
			add_county_modifier = {
				modifier = PE_county_animal_show_modifier
				years = 10
			}
		}

		stress_impact = {
			generous = minor_stress_impact_loss
		}
		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_compassion = 1
				ai_greed = -1
			}
		}
	}

	#Sure, but I won't sponsor it
	option = {
		name = pets_expanded_keeper_of_menagerie.2022.b
		custom_tooltip = pets_expanded_keeper_of_menagerie.2022.b_tt

		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = disappointed_opinion
				opinion = -10
				target = root
			}
		}
		#pet_opinion_change_effect = { STORY = scope:story CHANGE = decrease_minor }

		capital_county = {
			add_county_modifier = {
				modifier = PE_county_animal_show_minor_modifier
				years = 10
			}
		}

		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_greed = 0.5
			}
		}
	}

	#No
	option = {
		name = pets_expanded_keeper_of_menagerie.2022.c
		
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = disappointed_opinion
				opinion = -25
				target = root
			}
		}

		stress_impact = {
			greedy = medium_stress_impact_loss
		}
		ai_chance = {
			base = 10
			ai_value_modifier = {
				ai_greed = 1
				ai_rationality = -0.25
			}
		}
	}

	after = {
		scope:story = { pets_expanded_cleanup_after_event_effect = yes }
	}
}



# Peasants have been sneaking into the menagerie to look at the animals 
pets_expanded_keeper_of_menagerie.2023 = {
	type = character_event
	title = pets_expanded_keeper_of_menagerie.2023.t
	desc = pets_expanded_keeper_of_menagerie.2023.desc
	theme = pets_expanded
	override_background = {
		reference = sitting_room
	}
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:keeper_of_menagerie
		animation = anger
	}
	
	trigger = {
		any_court_position_holder = {
			type = keeper_of_menagerie_court_position
			is_physically_able = yes
		}
		capital_county = {
			NOR = {
				has_county_modifier = PE_county_open_menagerie_modifier
				has_county_modifier = PE_county_pay_menagerie_modifier
			}
		}
		any_owned_story = {
			is_pet_story_trigger = yes
		}
		NOT = { exists = var:had_pet_event_recently }
	}

	cooldown = { years = 5 }

	immediate = {
		set_variable = {
			name = had_pet_event_recently
			months = 6
		}
		random_court_position_holder = {
			type = keeper_of_menagerie_court_position
			limit = { is_physically_able = yes }
			save_scope_as = keeper_of_menagerie
		}
		capital_barony = { save_scope_as = capital }
	}

	#ok, whatever
	option = {
		name = pets_expanded_keeper_of_menagerie.2023.a
		capital_county = {
			add_county_modifier = {
				modifier = PE_county_open_menagerie_modifier
				years = 10
			}
		}
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = disappointed_opinion
				opinion = -10
				target = root
			}
		}
		stress_impact = {
			generous = minor_stress_impact_loss
		}
		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_compassion = 1
				ai_greed = -1
			}
		}
	}

	#Ok, but they should pay a fee
	option = {
		name = pets_expanded_keeper_of_menagerie.2023.b
		capital_county = {
			add_county_modifier = {
				modifier = PE_county_pay_menagerie_modifier
				years = 10
			}
		}
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = disappointed_opinion
				opinion = -10
				target = root
			}
		}
		stress_impact = {
			greedy = medium_stress_impact_loss
		}
		ai_chance = {
			base = 50
			ai_value_modifier = {
				ai_compassion = 0.25
				ai_greed = -0.5
			}
		}
	}

	#Not good, let's add guards
	option = {
		name = pets_expanded_keeper_of_menagerie.2023.c
		remove_short_term_gold = minor_gold_value
		scope:keeper_of_menagerie = {
			add_opinion = {
				modifier = pleased_opinion
				opinion = 10
				target = root
			}
		}
		if = {
			limit = {
				any_owned_story = { is_pet_story_trigger = yes }
			}
			every_owned_story = {
				custom = custom.every_pet_story
				limit = {
					is_pet_story_trigger = yes
				}
				save_scope_as = story_scope
				pet_opinion_change_effect = { STORY = scope:story_scope CHANGE = increase_minor }
			}
		}
		ai_chance = {
			base = 10
			ai_value_modifier = {
				ai_greed = 2
			}
		}
	}
}


# Peasant gets killed by animal during show/visit to the menagerie
#pets_expanded_keeper_of_menagerie.2024 = {
#	type = character_event
#	title = pets_expanded_keeper_of_menagerie.2024.t
#	desc = {
#		desc = pets_expanded_keeper_of_menagerie.2024.desc_opening
#		triggered_desc = {
#			trigger = {
#				capital_county = {
#					OR = {
#						has_county_modifier = PE_county_animal_show_modifier
#						has_county_modifier = PE_county_animal_show_minor_modifier
#					}
#				}
#			}
#			desc = pets_expanded_keeper_of_menagerie.2024.desc_show
#		}
#		desc = pets_expanded_keeper_of_menagerie.2024.desc
#	}
#	theme = pets_expanded
#	override_background = {
#		reference = sitting_room
#	}
#	left_portrait = {
#		character = root
#		animation = shock
#	}
#	right_portrait = {
#		character = scope:keeper_of_menagerie
#		animation = anger
#	}
#	trigger = {
#		capital_county = {
#			OR = {
#				has_county_modifier = PE_county_animal_show_modifier
#				has_county_modifier = PE_county_animal_show_minor_modifier
#				has_county_modifier = PE_county_open_menagerie_modifier
#				has_county_modifier = PE_county_pay_menagerie_modifier
#			}
#		}
#		any_owned_story = {
#			is_pet_story_trigger = yes
#		}
#	}
#
#	weight_multiplier = {
#		base = 0.25
#		modifier = { #More likely if you have a bad keeper!
#			add = 0.5
#			any_court_position_holder = {
#				type = keeper_of_menagerie_court_position
#				basic_is_available_ai = yes
#				aptitude:keeper_of_menagerie_court_position <= 2
#			}
#		}
#
#		modifier = {
#			add = 0.5
#			any_owned_story = {
#				is_pet_story_trigger = yes
#				exists = var:personality
#				var:personality = flag:aggressive
#			}
#		}
#	}
#
#	cooldown = { years = 5 }
#
#	immediate = {
#		random_court_position_holder = {
#			type = keeper_of_menagerie_court_position
#			limit = { basic_is_available_ai = yes }
#			save_scope_as = keeper_of_menagerie
#		}
#		capital_barony = { save_scope_as = capital }
#		random_dummy_gender_peasant_effect = yes
#	}
#
#	# 
#	option = {
#		name = pets_expanded_keeper_of_menagerie.2024.a
#
#		stress_impact = {
#			generous = minor_stress_impact_loss
#		}
#		ai_chance = {
#			base = 50
#			ai_value_modifier = {
#				ai_compassion = 1
#				ai_greed = -1
#			}
#		}
#	}
#
#	# 
#	option = {
#		name = pets_expanded_keeper_of_menagerie.2024.b
#
#		ai_chance = {
#			base = 50
#			ai_value_modifier = {
#				ai_compassion = 0.25
#				ai_greed = -0.5
#			}
#		}
#	}
#
#	# 
#	option = {
#		name = pets_expanded_keeper_of_menagerie.2024.c
#
#		stress_impact = {
#			greedy = medium_stress_impact_loss
#		}
#		ai_chance = {
#			base = 10
#			ai_value_modifier = {
#				ai_greed = 2
#			}
#		}
#	}
#}


# The Keeper of the Menagerie treats ailing pet
scripted_trigger pets_expanded_keeper_of_menagerie_2031_pet_story_trigger = {
	is_pet_story_trigger = yes
	exists = var:health
	NOT = { var:health = flag:good }
	NOT = { exists = var:pet_is_dying }
}

pets_expanded_keeper_of_menagerie.2031 = {
	type = character_event
	title = pets_expanded_keeper_of_menagerie.2031.t
	desc = pets_expanded_keeper_of_menagerie.2031.desc
	theme = pets_expanded
	override_background = {
		reference = sitting_room
	}
	left_portrait = {
		character = root
		animation = admiration
	}
	right_portrait = {
		character = scope:keeper_of_menagerie
		animation = personality_rational
	}
	widget = { #To add a button that opens the menagerie on the relevant pet's page
		gui = "event_window_widget_display_pet"
		container = "custom_widgets_container"
		controller = name_character
		setup_scope = { scope:story.var:pet_dummy = { save_scope_as = name_character_target } }
	}

	trigger = {
		any_court_position_holder = {
			type = keeper_of_menagerie_court_position
			is_physically_able = yes
		}
		any_owned_story = {
			pets_expanded_keeper_of_menagerie_2031_pet_story_trigger = yes
		}
	}

	weight_multiplier = {
		base = 0.5
		modifier = {
			add = 0.5
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				aptitude:keeper_of_menagerie_court_position >= 5
			}
		}
		modifier = {
			add = 0.25
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				aptitude:keeper_of_menagerie_court_position >= 4
			}
		}
		modifier = {
			add = 0.25
			any_court_position_holder = {
				type = keeper_of_menagerie_court_position
				aptitude:keeper_of_menagerie_court_position >= 3
			}
		}

		modifier = {
			add = 0.25
			any_owned_story = {
				pets_expanded_keeper_of_menagerie_2031_pet_story_trigger = yes
				save_temporary_scope_as = story
				pet_dif_to_max_age_value < 0.7
			}
		}

		modifier = {
			add = 0.25
			any_owned_story = {
				pets_expanded_keeper_of_menagerie_2031_pet_story_trigger = yes
				var:health = flag:bad
			}
		}
	}

	cooldown = { years = 5 }

	immediate = {
		random_court_position_holder = {
			type = keeper_of_menagerie_court_position
			limit = { is_physically_able = yes }
			save_scope_as = keeper_of_menagerie
		}

		hidden_effect = {
			random_owned_story = {
				limit = { pets_expanded_keeper_of_menagerie_2031_pet_story_trigger = yes }
				save_scope_as = story
			}
			pets_expanded_setup_event_effect = yes
		}
	}

	option = {
		name = pets_expanded_keeper_of_menagerie.2031.a
		
		scope:story = {
			if = {
				limit = { var:health ?= flag:fine }
				pets_expanded_set_health_effect = {
					NEW_HEALTH = good
				}
			}
			else_if = {
				limit = { var:health ?= flag:bad }
				pets_expanded_set_health_effect = {
					NEW_HEALTH = fine
				}
			}
		}

		scope:keeper_of_menagerie = {
			if = {
				limit = {
					learning < medium_skill_rating
				}
				add_learning_skill = 3
			}
			else_if = {
				limit = {
					learning < high_skill_rating
				}
				add_learning_skill = 2
			}
			else_if = {
				limit = {
					learning < very_high_skill_rating
				}
				add_learning_skill = 1
			}
			else = {
				add_learning_lifestyle_xp = medium_lifestyle_xp
			}
		}
	}

	after = {
		scope:story ?= { pets_expanded_cleanup_after_event_effect = yes }
	}
}