#############################################
#
# Court Maintenance Events
#
# 61001-61999
#
#############################################
# Written by Linna Thimrn

namespace = LT

# Skill boost
character_event = {
	id = LT.61001

	hide_window = yes
	is_triggered_only = yes # on_yearly_pulse

	ai = no

	trigger = {
		any_courtier = { # Mediocre!!
			is_adult = yes
			is_landed = no
			is_inaccessible_or_incapable_trigger = no

			stewardship >= 4
			stewardship < 10
			diplomacy >= 4
			diplomacy < 10
			martial >= 4
			martial < 10
			intrigue >= 4
			intrigue < 10
			learning >= 4
			learning < 10
		}
	}

	immediate = {
		random = {
			chance = 25

			random_courtier = {
				limit = {
					is_adult = yes
					is_landed = no
					is_inaccessible_or_incapable_trigger = no

					stewardship >= 4
					stewardship < 10
					diplomacy >= 4
					diplomacy < 10
					martial >= 4
					martial < 10
					intrigue >= 4
					intrigue < 10
					learning >= 4
					learning < 10
				}

				save_event_target_as = courtier
			}

			random_list = {
				75 = {
					mult_modifier = { # I already have courtiers with cool skills
						factor = 0.5

						any_courtier = {
							count >= 2

							is_adult = yes
							is_landed = no
							is_inaccessible_or_incapable_trigger = no

							OR = {
								stewardship >= 10
								diplomacy >= 10
								martial >= 10
								intrigue >= 10
								learning >= 10
							}
						}
					}

					event_target:courtier = {
						random_list = {
							20 = {
								trigger = { stewardship < 8 }
								change_stewardship = 7
							}

							20 = {
								trigger = { diplomacy < 8 }
								change_diplomacy = 7
							}

							20 = {
								trigger = { martial < 8 }
								change_martial = 7
							}

							20 = {
								trigger = { intrigue < 8 }
								change_intrigue = 7
							}

							20 = {
								trigger = { learning < 8 }
								change_learning = 7
							}
						}
					}
				}

				25 = {
					mult_modifier = { # I already have stupid courtiers
						factor = 0.5

						any_courtier = {
							count >= 2

							is_landed = no
							is_inaccessible_or_incapable_trigger = no

							OR = {
								stewardship < 2
								diplomacy < 2
								martial < 2
								intrigue < 2
								learning < 2
							}
						}
					}

					if = { # Try for higher stats first
						limit = {
							OR = {
								stewardship >= 7
								diplomacy >= 7
								martial >= 7
								intrigue >= 7
								learning >= 7
							}
						}

						event_target:courtier = {
							random_list = {
								20 = {
									trigger = { stewardship >= 7 }
									change_stewardship = -6
								}

								20 = {
									trigger = { diplomacy >= 7 }
									change_diplomacy = -6
								}

								20 = {
									trigger = { martial >= 7 }
									change_martial = -6
								}

								20 = {
									trigger = { intrigue >= 7 }
									change_intrigue = -6
								}

								20 = {
									trigger = { learning >= 7 }
									change_learning = -6
								}
							}
						}
					}
					else = { # fallback
						event_target:courtier = {
							random_list = {
								20 = {
									trigger = { stewardship >= 4 }
									change_stewardship = -4
								}

								20 = {
									trigger = { diplomacy >= 4 }
									change_diplomacy = -4
								}

								20 = {
									trigger = { martial >= 4 }
									change_martial = -4
								}

								20 = {
									trigger = { intrigue >= 4 }
									change_intrigue = -4
								}

								20 = {
									trigger = { learning >= 4 }
									change_learning = -4
								}
							}
						}
					}
				}
			}
		}
	}
}

# Relationships
character_event = {
	id = LT.61002

	hide_window = yes
	is_triggered_only = yes # on_yearly_pulse

	ai = no

	trigger = {
		has_game_rule = {
			name = ai_seduction
			value = on
		}

		any_courtier = {
			count >= 2

			is_adult = yes
			is_inaccessible_or_incapable_trigger = no
			prisoner = no
			has_lover = no
			num_of_rivals < 1
			num_of_friends < 1
		}
	}

	immediate = {
		random = {
			chance = 25

			mult_modifier = {
				factor = 1.5

				any_courtier = {
					count >= 4 # More courtiers that are lonely

					is_adult = yes
					is_landed = no
					is_inaccessible_or_incapable_trigger = no
					has_lover = no
					num_of_rivals < 1
					num_of_friends < 1
				}
			}

			any_courtier = { # Find
				limit = {
					is_adult = yes
					is_landed = no
					is_inaccessible_or_incapable_trigger = no
					has_lover = no
					num_of_rivals < 1
					num_of_friends < 1
				}

				score_value = {
					value = 1

					mult_modifier = {
						factor = 10
						trait = lustful
					}
					mult_modifier = {
						factor = 1.5
						is_married = no
					}
					mult_modifier = {
						factor = 1.5

						any_spouse = {
							reverse_opinion = {
								who = PREV
								value < 0
							}
						}
					}
				}

				save_event_target_as = courtier_1
			}

			any_courtier = {
				limit = {
					NOT = { character = event_target:courtier_1 }
					is_adult = yes
					is_landed = no
					is_inaccessible_or_incapable_trigger = no

					has_lover = no
					num_of_rivals < 1
					num_of_friends < 1
				}

				score_value = {
					value = 1

					mult_modifier = {
						factor = 10
						trait = lustful
					}
					mult_modifier = {
						factor = 1.5
						is_married = no
					}
					mult_modifier = {
						factor = 1.5

						any_spouse = {
							reverse_opinion = {
								who = PREV
								value < 0
							}
						}
					}
				}

				save_event_target_as = courtier_2
			}

			event_target:courtier_1 = {
				random_list = {
					40 = {
						trigger = {
							opinion = { who = event_target:courtier_2 value > 5 }
							NOT = { trait = celibate }

							event_target:courtier_2 = {
								prev_attraction_trigger = yes
								attracted_to_prev_trigger = yes
								NOT = { trait = celibate }
							}
						}

						add_lover = event_target:courtier_2
					}

					10 = {
						mult_modifier = {
							factor = 2
							opinion = { who = event_target:courtier_2 value >= 5 }
						}
						mult_modifier = {
							factor = 2
							opinion = { who = event_target:courtier_2 value >= 15 }
						}

						add_friend = event_target:courtier_2
					}

					10 = {
						mult_modifier = {
							factor = 2
							opinion = { who = event_target:courtier_2 value < 5 }
						}
						mult_modifier = {
							factor = 2
							opinion = { who = event_target:courtier_2 value < -15 }
						}

						add_rival = event_target:courtier_2
					}
				}
			}
		}
	}
}

# To add random modifiers
character_event = {
	id = LT.61003

	hide_window = yes
	is_triggered_only = yes # on_yearly_pulse

	ai = no

	trigger = {
		any_courtier = {
			is_adult = yes
			is_landed = no
			is_inaccessible_or_incapable_trigger = no
		}
	}

	immediate = {
		random = {
			chance = 30

			random_courtier = {
				limit = {
					is_adult = yes
					is_landed = no
					is_inaccessible_or_incapable_trigger = no
				}

				give_random_character_modifier_effect = yes
			}
		}
	}
}

# Add random nickname
character_event = {
	id = LT.61004

	hide_window = yes
	is_triggered_only = yes # on_yearly_pulse

	ai = no

	trigger = {
		any_courtier = {
			is_adult = yes
			is_landed = no
			is_inaccessible_or_incapable_trigger = no
			has_nickname = no
		}
	}

	immediate = {
		random = {
			chance = 10

			random_courtier = {
				limit = {
					is_adult = yes
					is_landed = no
					is_inaccessible_or_incapable_trigger = no
					has_nickname = no
				}

				assign_random_nickname_effect = yes
			}
		}
	}
}


# Decide a nickname
character_event = {
	id = LT.61006
	title = evt_TITLE_LT_61006
	desc = EVTDESC1_LT_61006
	picture = GFX_evt_courtiers_talking
	border = GFX_event_normal_frame_diplomacy

	desc = {
		text = EVTDESC2_LT_61006
		trigger = {
			event_target:courtier = { learning >= 10 }
		}
	}
	desc = {
		text = EVTDESC3_LT_61006
		trigger = {
			event_target:courtier = { martial >= 10 }
		}
	}
	desc = {
		text = EVTDESC4_LT_61006
		trigger = {
			event_target:courtier = { diplomacy >= 10 }
		}
	}
	desc = {
		text = EVTDESC5_LT_61006
		trigger = {
			event_target:courtier = { stewardship >= 10 }
		}
	}
	desc = {
		text = EVTDESC6_LT_61006
		trigger = {
			event_target:courtier = { intrigue >= 10 }
		}
	}

	is_triggered_only = yes # on_yearly_pulse, random_events

	ai = no

	trigger = {
		any_courtier = {
			is_adult = yes
			is_landed = no
			has_nickname = no
			is_inaccessible_or_incapable_trigger = no
		}
		is_inaccessible_or_incapable_trigger = no
	}

	immediate = {
		any_courtier = {
			limit = {
				is_adult = yes
				is_landed = no
				has_nickname = no
				is_inaccessible_or_incapable_trigger = no
			}

			score_value = {
				value = 10
				interesting_courtier_selection_score = yes
			}

			save_event_target_as = courtier

			random_list = {
				25 = { set_character_flag = nick_1_1 } # nick_the_loyal
				25 = { set_character_flag = nick_1_2 } # nick_the_festive
				25 = { set_character_flag = nick_1_3 } # nick_the_fairest_of_location
				25 = { set_character_flag = nick_1_4 } # nick_the_strongest_of_location
			}

			random_list = {
				33 = { set_character_flag = nick_2_1 } # nick_the_dove

				33 = {
					if = {
						limit = { is_female = yes }
						set_character_flag = nick_2_2 # nick_the_fair
					}
					else = {
						set_character_flag = nick_2_3 # nick_the_handsom
					}
				}

				33 = { set_character_flag = nick_2_4 } # nick_tiny
			}

			random_list = {
				25 = { set_character_flag = nick_3_1 } # nick_the_mule
				25 = { set_character_flag = nick_3_2 } # nick_the_pest
				25 = { set_character_flag = nick_3_3 } # nick_the_burden
				25 = { set_character_flag = nick_3_4 } # nick_the_snake
			}
		}
	}

	option = { # Fancy nickname
		name = EVTOPTA_LT_61006

		event_target:courtier = {
			show_scope_change = no

			trigger_switch = {
				on_trigger = has_character_flag

				nick_1_1 = { give_nickname = nick_the_loyal }
				nick_1_2 = { give_nickname = nick_the_festive }
				nick_1_3 = { give_nickname = nick_the_fairest_of_location }
				nick_1_4 = { give_nickname = nick_the_strongest_of_location }
			}

			opinion = {
				name = opinion_happy_with_nickname
				who = ROOT
			}
		}

		prestige = -50

		ai_chance = {
			factor = 1

			additive_opinion_modifier = { # Adds the opinion from 'ROOT' to 'who' multiplied by factor to the score.
				who = event_target:courtier
				factor = 0.5

				opinion = { who = event_target:courtier value >= 0 }
			}
		}
	}

	option = { # Random nickname
		name = EVTOPTB_LT_61006

		event_target:courtier = {
			show_scope_change = no

			trigger_switch = {
				on_trigger = has_character_flag

				nick_2_1 = { give_nickname = nick_the_dove }
				nick_2_2 = { give_nickname = nick_the_fair }
				nick_2_3 = { give_nickname = nick_the_handsome }
				nick_2_4 = { give_nickname = nick_tiny }
			}
		}

		ai_chance = {
			factor = 1

			mult_modifier = {
				factor = 0.5
				trait = arbitrary
			}
		}
	}

	option = { # Mean nickname
		name = EVTOPTC_LT_61006

		event_target:courtier = {
			show_scope_change = no

			trigger_switch = {
				on_trigger = has_character_flag

				nick_3_1 = { give_nickname = nick_the_mule }
				nick_3_2 = { give_nickname = nick_the_pest }
				nick_3_3 = { give_nickname = nick_the_burden }
				nick_3_4 = { give_nickname = nick_the_snake }
			}

			opinion = {
				name = opinion_dislikes_nickname
				who = ROOT
			}
		}

		ai_chance = {
			factor = 1

			additive_opinion_modifier = { # Adds the opinion from 'ROOT' to 'who' multiplied by factor to the score.
				who = event_target:courtier
				factor = -0.5

				opinion = { who = event_target:courtier value >= 0 }
			}
		}
	}

	option = { # nah
		name = EVTOPTD_LT_61006
	}

	after = {
		event_target:courtier = {
			clear_flags_with_prefix = nick_
		}
	}
}


# Great exodus event (your court is BIG, let's shrink it a bit) (triggered from court_exodus)
character_event = {
	id = LT.61008
	title = evt_TITLE_LT_61008
	desc = EVTDESC_LT_61008
	picture = GFX_evt_courtiers_talking
	border = GFX_event_normal_frame_diplomacy

	is_triggered_only = yes # LT_decisions.txt

	immediate = {
		while = {
			count = 3

			random_courtier = {
				limit = {
					courtier_is_mass_expellable = yes

					NOT = { has_character_flag = courtier_to_be_expelled }

					trigger_if = {
						limit = { is_married = yes }

						NOT = {
							any_spouse = {
								courtier_is_mass_expellable = no
							}
						}
					}

					trigger_if = {
						limit = { has_living_children = yes }

						NOT = {
							any_child = {
								OR = {
									is_child_of = ROOT
									dynasty = ROOT
									important_character_to_root_trigger = yes
								}
							}
						}
					}
				}

				preferred_limit = {
					courtier_is_preferred_for_mass_expulsion = yes
				}

				set_character_flag = courtier_to_be_expelled
			}
		}

		# Do I have even more courtiers that I can get rid off? Two optional ones
		if = {
			limit = { free_court_slots < -1 }

			random_courtier = {
				limit = {
					courtier_is_mass_expellable = yes

					NOT = { has_character_flag = courtier_to_be_expelled }

					trigger_if = {
						limit = { is_married = yes }

						NOT = {
							any_spouse = {
								courtier_is_mass_expellable = no
							}
						}
					}

					trigger_if = {
						limit = { has_living_children = yes }

						NOT = {
							any_child = {
								OR = {
									is_child_of = ROOT
									dynasty = ROOT
									important_character_to_root_trigger = yes
								}
							}
						}
					}
				}

				preferred_limit = {
					courtier_is_preferred_for_mass_expulsion = yes
				}

				set_character_flag = courtier_to_be_expelled
			}
		}

		if = {
			limit = { free_court_slots < -2 }

			random_courtier = {
				limit = {
					courtier_is_mass_expellable = yes

					NOT = { has_character_flag = courtier_to_be_expelled }

					trigger_if = {
						limit = { is_married = yes }

						NOT = {
							any_spouse = {
								courtier_is_mass_expellable = no
							}
						}
					}

					trigger_if = {
						limit = { has_living_children = yes }

						NOT = {
							any_child = {
								OR = {
									is_child_of = ROOT
									dynasty = ROOT
									important_character_to_root_trigger = yes
								}
							}
						}
					}
				}

				preferred_limit = {
					courtier_is_preferred_for_mass_expulsion = yes
				}

				set_character_flag = courtier_to_be_expelled
			}
		}
	}

	option = {
		name = EVTOPTA_LT_61008

		scaled_wealth = {
			value = -0.02
			min = -5
			max = -45
		}

		any_courtier = {
			show_scope_change = no

			limit = { has_character_flag = courtier_to_be_expelled }

			clr_character_flag = courtier_to_be_expelled
			courtiers_leaving_effect = yes

			# Family?
			any_spouse = {
				show_scope_change = no

				limit = {
					host = { character = ROOT }
				}

				courtiers_leaving_effect = yes
			}

			any_child = {
				show_scope_change = no

				limit = {
					host = { character = ROOT }
					is_adult = no
				}

				courtiers_leaving_effect = yes
			}
		}
	}

	option = { # Nah, stay!
		name = EVTOPTB_LT_61008

		hidden_effect = {
			any_courtier = {
				clr_character_flag = courtier_to_be_expelled
			}
		}

		ai_chance = { factor = 0 }
	}

	after = {
		clr_character_flag = started_court_exodus
	}
}

### By Milla
### Courtiers praise your hospitality (Fired from yearly pulse random)
character_event = {
	id = LT.10103
	picture = GFX_evt_state_diplomacy
	border = GFX_event_normal_frame_diplomacy
	portrait = event_target:upbeat_courtier

	desc = {
		text = EVTDESC_LT_10103_A
		trigger = { in_seclusion = no }
	}
	desc = {
		text = EVTDESC_LT_10103_B
		trigger = { in_seclusion = no }
	}
	desc = {
		text = EVTDESC_LT_10103_C
		trigger = { in_seclusion = yes }
	}

	is_triggered_only = yes # on_yearly_pulse, random_events

	min_age = 16
	only_rulers = yes
	only_capable = yes
	prisoner = no

	trigger = {
		has_game_rule = {
			name = court_limit_rule
			value = on
		}

		court_is_max_crowded_trigger = yes

		trigger_if = {
			limit = { ai = yes }
			independent = yes
		}

		NOR = {
			has_character_modifier = naive_host
			has_character_modifier = generous_host
			has_character_modifier = calculating_host
		}

		any_courtier = {
			is_adult = yes
			is_incapable = no
			prisoner = no

			trigger_if = {
				limit = { is_inaccessible_trigger = yes }
				in_seclusion = yes
				at_location = ROOT
				ROOT = { in_seclusion = yes }
			}
		}
	}

	immediate = {
		any_courtier = {
			limit = {
				is_adult = yes
				is_incapable = no
				prisoner = no

				trigger_if = {
					limit = { is_inaccessible_trigger = yes }
					in_seclusion = yes
					at_location = ROOT
					ROOT = { in_seclusion = yes }
				}
			}

			score_value = {
				value = 10
				prev_likes_this_score = yes
				interesting_courtier_selection_score = yes
			}

			save_event_target_as = upbeat_courtier
		}
	}

	### Various ways to be seen as naive (only one of these 5 should be visible at any given time)...
	option = {
		name = EVTOPTA_LT_10103
		tooltip_info = trusting

		trigger = { trait = trusting }

		add_character_modifier = {
			name = naive_host
			years = 15
		}
	}

	option = {
		name = EVTOPTA_LT_10103
		tooltip_info = imbecile

		trigger = {
			trait = imbecile
			NOT = { trait = trusting }
		}

		add_character_modifier = {
			name = naive_host
			years = 15
		}
	}

	option = {
		name = EVTOPTA_LT_10103
		tooltip_info = slow

		trigger = {
			trait = slow

			NOR = {
				trait = trusting
				trait = imbecile
			}
		}

		add_character_modifier = {
			name = naive_host
			years = 15
		}
	}

	option = {
		name = EVTOPTA_LT_10103
		tooltip_info = dull

		trigger = {
			trait = dull

			NOR = {
				trait = trusting
				trait = imbecile
				trait = slow
			}
		}

		add_character_modifier = {
			name = naive_host
			years = 15
		}
	}

	option = {
		name = EVTOPTA_LT_10103
		tooltip_info = lunatic

		trigger = {
			trait = lunatic

			NOR = {
				trait = dull
				trait = trusting
				trait = imbecile
				trait = slow
			}
		}

		add_character_modifier = {
			name = naive_host
			years = 15
		}
	}

	### Intrigue option
	option = {
		name = EVTOPTB_LT_10103
		tooltip_info_custom = EVTOPTC_LT_20410_TT

		trigger = {
			intrigue >= 15

			OR = {
				trait = deceitful
				trait = paranoid
				trait = elusive_shadow
				has_lifestyle_intrigue_trigger = yes
			}
		}

		add_character_modifier = {
			name = calculating_host
			years = 15
		}
	}

	### Regular "yes"s
	option = {
		name = EVTOPTC_LT_10103 # I just enjoy your company!

		trigger = {
			NOT = { trait = cruel }
		}

		add_character_modifier = {
			name = generous_host
			years = 15
		}

		add_trait_partially_silently_charitable_effect = yes
	}

	option = {
		name = EVTOPTC_LT_10103_cruel # It means more resources
		tooltip_info = cruel

		trigger = { trait = cruel }

		add_character_modifier = {
			name = ruthless_host
			years = 15
		}
	}

	option = {
		name = {
			text = EVTOPTD_LT_10103_A # You're all important to me
			trigger = {
				event_target:upbeat_courtier = { family_of_root_trigger = no }
			}
		}
		name = {
			text = EVTOPTD_LT_10103_B # You're all important to me
			trigger = {
				event_target:upbeat_courtier = { family_of_root_trigger = yes }
			}
		}

		prestige = 150
		piety = 15

		if = {
			limit = { trait = envious }
			remove_trait = envious
		}
		else_if = {
			limit = { trait = cruel }
			remove_trait = cruel
		}
		else_if = {
			limit = {
				NOT = { trait = kind }
			}

			add_trait = kind
		}
	}
}
