###########################################
#                                         #
# ZE Various Events                       #
# ID ZE.1000-ZE.1999                      #
#                                         #
###########################################

# Written by Tobias Bodlund

namespace = ZE

###########################################
# The Disobedient Daughter                #
# ID ZE.1000-ZE.1999                      #
###########################################

### Daughter becomes disobedient - undesired marriage
character_event = {
	id = ZE.1010

	is_triggered_only = yes # on_marriage, random_events
	hide_window = yes

	has_dlc = "Conclave"

	trigger = {
		FROM = {
			OR = {
				father = {
					ai = no
					character = ROOT
				}

				mother = {
					ai = no
					character = ROOT
				}
			}

			is_female = yes

			OR = {
				is_smart_trigger = yes
				trait = possessed
				trait = celibate
				trait = wroth
				trait = brave
				trait = homosexual

				trigger_if = {
					limit = { trait = proud }

					new_character = {
						OR = {
							lower_real_tier_than = ROOT
							trait = ugly
							trait = imbecile
						}
					}
				}

				trigger_if = {
					limit = { trait = ambitious }
					new_character = { lower_real_tier_than = ROOT }
				}
			}

			NOR = {
				is_lover = new_character
				has_character_flag = disobedient_daughter

				is_dumb_trigger = yes
				trait = inbred
				trait = humble
				trait = slothful
				trait = craven
				trait = shy
				trait = content
				trait = trusting
				trait = blinded
				trait = diligent
			}
		}
	}

	weight_multiplier = {
		factor = 1

		mult_modifier = {
			factor = 3

			FROM = {
				OR = {
					trait = celibate
					trait = homosexual
				}
			}
		}
	}

	immediate = {
		FROM = {
			set_character_flag = disobedient_daughter
			save_event_target_as = target_refused_daughter
		}

		character_event = {
			id = ZE.1011
			days = 2
		}
	}
}

# If already disobedient and forced to marry
character_event = {
	id = ZE.1015

	is_triggered_only = yes # on_marriage
	hide_window = yes

	has_dlc = "Conclave"

	trigger = {
		FROM = {
			has_character_flag = disobedient_daughter
			NOT = { is_lover = new_character }
		}
	}

	immediate = {
		employer = {
			character_event = { id = ZE.1011 }
		}
	}
}

# Daughter protests against marriage
character_event = {
	id = ZE.1011
	title = EVTTITLE_ZE_1011
	desc = EVTDESC_ZE_1011
	picture = GFX_evt_daughter_asking_father
	border = GFX_event_normal_frame_diplomacy

	is_triggered_only = yes

	immediate = {
		random_courtier = {
			limit = {
				is_valid_romance_target = FROMFROM
				practical_age < 50
				is_ill = no
				NOT = { trait = celibate }
				has_ugly_trait_trigger = no
			}

			save_event_target_as = daughters_lover
		}
	}

	option = {
		name = EVTOPTA_ZE_1011 # Tell her she must accept it

		FROMFROM = {
			set_character_flag = disobedient_daughter_unhappy

			if = {
				limit = {
					has_lover = no
					NOT = { trait = celibate }
				}

				random_list = {
					33 = { add_trait = celibate }

					33 = {
						trigger = {
							event_target:daughters_lover = { always = yes }
						}

						custom_tooltip = { text = disobedient_daughter_takes_lover }

						ROOT_FROMFROM = {
							show_scope_change = no

							add_lover = event_target:daughters_lover
						}
					}

					33 = { }
				}
			}

			opinion = {
				name = opinion_angry
				who = ROOT
				years = 3
			}

			reverse_opinion = {
				name = opinion_hate
				who = spouse
				years = 100
			}
		}
	}

	option = {
		name = EVTOPTB_ZE_1011 # Annul the marriage immediately

		piety = -50
		prestige = -100

		FROMFROM = {
			show_scope_change = no

			piety = -50
			prestige = -50

			spouse = {
				show_scope_change = no

				save_event_target_as = target_spurned_spouse

				employer = {
					show_scope_change = no

					opinion = {
						name = grievously_offended
						who = ROOT
						years = 5
					}

					character_event = { id = ZE.1012 }
				}
			}

			remove_spouse = spouse
		}
	}
}

# Employer of spurned spouse notified of annulled marriage
character_event = {
	id = ZE.1012
	title = EVTTITLE_ZE_1011
	desc = EVTDESC_ZE_1012
	picture = GFX_evt_scandal
	border = GFX_event_normal_frame_diplomacy

	is_triggered_only = yes

	ai = no

	option = {
		name = EVTOPTA_ZE_1012

		tooltip = {
			event_target:target_spurned_spouse = {
				show_scope_change = no

				remove_spouse = event_target:target_refused_daughter
			}

			opinion = {
				name = grievously_offended
				who = FROM
				years = 5
			}
		}
	}
}


# Daughter becomes disobedient - parent killed lover (from on_death)
character_event = {
	id = ZE.1030

	is_triggered_only = yes # on_death
	hide_window = yes

	only_men = yes
	has_dlc = "Conclave"

	trigger = {
		has_lover = yes

		OR = {
			death_execution_trigger = yes
			death_murder_known_trigger = yes
			death_sacrificed_trigger = yes
			death_reason = death_dungeon
		}

		killer = {
			ai = no
			random < 30 # 30% chance

			any_child = {
				is_lover = ROOT
				is_female = yes

				OR = {
					is_smart_trigger = yes
					trait = possessed
					trait = celibate
					trait = diligent
					trait = wroth
					trait = proud
					trait = brave
					trait = ambitious
					trait = homosexual
				}

				NOR = {
					is_dumb_trigger = yes
					trait = inbred
					trait = humble
					trait = slothful
					trait = craven
					trait = shy
					trait = content
					trait = trusting
					trait = blinded
				}

				trigger_if = {
					limit = {
						trait = zealous
						religion = PREV
					}

					ROOT = { death_sacrificed_trigger = no }
				}
			}
		}
	}

	immediate = {
		killer = {
			random_child = {
				limit = {
					is_lover = ROOT
					is_female = yes

					OR = {
						is_smart_trigger = yes
						trait = possessed
						trait = celibate
						trait = diligent
						trait = wroth
						trait = proud
						trait = brave
						trait = ambitious
						trait = homosexual
					}

					NOR = {
						is_dumb_trigger = yes
						trait = inbred
						trait = humble
						trait = slothful
						trait = craven
						trait = shy
						trait = content
						trait = trusting
						trait = blinded
					}

					trigger_if = {
						limit = {
							trait = zealous
							religion = PREV
						}

						ROOT = { death_sacrificed_trigger = no }
					}
				}
			}

			save_event_target_as = target_daughter_killed_her_lover

			character_event = {
				id = ZE.1031
				days = 5
			}
		}
	}
}

# Daughter angry at killer of lover
character_event = {
	id = ZE.1031
	desc = EVTDESC_ZE_1031
	picture = GFX_evt_daughter_asking_father
	border = GFX_event_normal_frame_diplomacy

	is_triggered_only = yes

	option = {
		name = EVTOPTA_ZE_1031 # I didn't think you'd mind...

		event_target:target_daughter_killed_her_lover = {
			show_scope_change = no

			opinion = {
				name = evil_murderer
				who = ROOT
				years = 10
			}

			set_character_flag = disobedient_daughter
			set_character_flag = disobedient_daughter_unhappy
		}
	}
}

# Daughter becomes disobedient - parent killed friend
character_event = {
	id = ZE.1040

	is_triggered_only = yes # on_death
	hide_window = yes

	has_dlc = "Conclave"
	friends = yes

	trigger = {
		OR = {
			death_execution_trigger = yes
			death_murder_known_trigger = yes
			death_sacrificed_trigger = yes
			death_reason = death_dungeon
		}

		killer = {
			ai = no
			random < 30 # 30% chance

			any_child = {
				is_friend = ROOT
				is_female = yes

				OR = {
					is_smart_trigger = yes
					trait = possessed
					trait = celibate
					trait = diligent
					trait = wroth
					trait = proud
					trait = brave
					trait = ambitious
					trait = homosexual
				}

				NOR = {
					is_dumb_trigger = yes
					trait = inbred
					trait = humble
					trait = slothful
					trait = craven
					trait = shy
					trait = content
					trait = trusting
					trait = blinded
				}

				trigger_if = {
					limit = {
						trait = zealous
						religion = PREV
					}

					ROOT = { death_sacrificed_trigger = no }
				}
			}
		}
	}

	immediate = {
		killer = {
			random_child = {
				limit = {
					is_friend = ROOT
					is_female = yes

					OR = {
						is_smart_trigger = yes
						trait = possessed
						trait = celibate
						trait = diligent
						trait = wroth
						trait = proud
						trait = brave
						trait = ambitious
						trait = homosexual
					}

					NOR = {
						is_dumb_trigger = yes
						trait = inbred
						trait = humble
						trait = slothful
						trait = craven
						trait = shy
						trait = content
						trait = trusting
						trait = blinded
					}

					trigger_if = {
						limit = {
							trait = zealous
							religion = PREV
						}

						ROOT = { death_sacrificed_trigger = no }
					}
				}

				save_event_target_as = target_daughter_killed_her_friend
			}

			character_event = {
				id = ZE.1041
				days = 5
			}
		}
	}
}

# Daughter angry at killer of friend
character_event = {
	id = ZE.1041
	desc = EVTDESC_ZE_1031
	picture = GFX_evt_daughter_asking_father
	border = GFX_event_normal_frame_diplomacy

	is_triggered_only = yes

	option = {
		name = EVTOPTA_ZE_1031  # I didn't think you'd mind...

		event_target:target_daughter_killed_her_friend = {
			show_scope_change = no

			opinion = {
				name = evil_murderer
				who = ROOT
				years = 10
			}

			set_character_flag = disobedient_daughter
			set_character_flag = disobedient_daughter_unhappy
		}
	}
}

# Disobedient daughter is discontent and acts on it...  (yearly pulse)
character_event = {
	id = ZE.1100

	is_triggered_only = yes # on_yearly_pulse
	hide_window = yes

	ai = no

	trigger = {
		any_child = {
			has_character_flag = disobedient_daughter_unhappy
			has_character_flag = disobedient_daughter
			is_female = yes
			vassal_of = ROOT
			is_ruler = no
			is_ill = no
			is_incapable = no
			is_inaccessible_trigger = no
		}
	}

	immediate = {
		random_child = {
			limit = {
				has_character_flag = disobedient_daughter_unhappy
				has_character_flag = disobedient_daughter
				is_female = yes
				vassal_of = ROOT
				is_ruler = no
				is_ill = no
				is_incapable = no
				is_inaccessible_trigger = no
			}

			character_event = { id = ZE.1101 }
		}
	}
}

# Daughter selects action
character_event = {
	id = ZE.1101

	is_triggered_only = yes
	hide_window = yes

	immediate = {
		random_list = {
			10 = { # Murders spouse in sleep
				trigger = {
					is_married = yes
					prisoner = no
					NOT = { trait = kind }

					spouse = {
						ai = yes
						NOT = { is_lover = ROOT }
					}
				}

				mult_modifier = {
					factor = 2
					trait = wroth
				}

				mult_modifier = {
					factor = 2
					trait = cruel
				}

				mult_modifier = {
					factor = 0.5

					attribute_diff = {
						attribute = intrigue
						character = spouse
						value < -4
					}
				}

				mult_modifier = {
					factor = 0.5

					attribute_diff = {
						attribute = intrigue
						character = spouse
						value < -8
					}
				}

				mult_modifier = {
					factor = 2

					attribute_diff = {
						attribute = intrigue
						character = spouse
						value >= 4
					}
				}

				mult_modifier = {
					factor = 2

					attribute_diff = {
						attribute = intrigue
						character = spouse
						value >= 8
					}
				}

				random_close_relative = {
					limit = {
						ai = no
						is_parent_of = ROOT
					}

					preferred_limit = {
						is_female = no
					}

					character_event = { id = ZE.1120 }
				}
			}

			2 = { # Kills spouse in single combat - only if she is more skilled
				trigger = {
					is_married = yes
					prisoner = no
					NOT = { trait = craven }

					spouse = {
						ai = yes
						NOT = { is_lover = ROOT }
					}

					combat_rating_diff = {
						who = spouse
						value >= 1
					}
				}

				mult_modifier = {
					factor = 10

					combat_rating_diff = {
						who = spouse
						value >= 40
					}
				}

				mult_modifier = {
					factor = 1.5
					trait = brave
				}

				random_close_relative = {
					limit = {
						ai = no
						is_parent_of = ROOT
						is_liege_of = ROOT
					}

					preferred_limit = {
						is_female = no
					}

					character_event = { id = ZE.1130 }
				}
			}

			5 = { # Elope and settle abroad (divorce spouse, marry any unmarried lover)
				trigger = {
					is_child_of = liege
					is_married = yes
					prisoner = no
					NOT = { trait = craven }

					spouse = {
						ai = yes
						NOT = { is_lover = ROOT }
					}

					any_independent_ruler = {
						religion_group = ROOT
						ai = yes

						any_realm_province = {
							has_empty_holding = yes
							held_under_PREV = yes
						}
					}
				}

				random_independent_ruler = {
					limit = {
						religion_group = ROOT
						ai = yes

						any_realm_province = {
							has_empty_holding = yes
							held_under_PREV = yes
						}
					}

					random_realm_province = {
						limit = {
							has_empty_holding = yes
							held_under_PREV = yes
						}

						save_event_target_as = daughter_refuge
					}
				}

				liege = {
					character_event = { id = ZE.1142 }
				}
			}

			5 = { # Elope and start pirate band (mercs, divorce spouse, marry any lover)
				trigger = {
					is_married = yes
					prisoner = no
					NOT = { trait = craven }

					spouse = {
						ai = yes
						NOT = { is_lover = ROOT }
					}
				}

				mult_modifier = {
					factor = 2
					martial >= 9
				}

				mult_modifier = {
					factor = 3
					martial >= 15
				}

				random_close_relative = {
					limit = {
						ai = no
						is_parent_of = ROOT
						is_liege_of = ROOT
					}

					preferred_limit = {
						is_female = no
					}

					character_event = { id = ZE.1150 }
				}
			}

			10 = { # Take new lover (remove any chaste trait)
				trigger = {
					prisoner = no
					num_of_lovers < 5
					NOT = { trait = celibate }

					liege = {
						any_courtier = {
							is_valid_romance_target = ROOT
							num_of_lovers < 5
							ai = yes
							prisoner = no
							NOT = { character = ROOT }
						}
					}
				}

				mult_modifier = {
					factor = 3
					trait = lustful
				}

				mult_modifier = {
					factor = 1.5
					trait = gregarious
				}

				mult_modifier = {
					factor = 1.5
					has_fair_trait_trigger = yes
				}

				remove_trait = chaste

				liege = {
					random_courtier = {
						limit = {
							is_valid_romance_target = ROOT
							num_of_lovers < 5
							ai = yes
							prisoner = no
							NOT = { character = ROOT }
						}

						end_inaccessibility_effect = yes
						add_lover = ROOT
					}
				}
			}

			10 = { # Make spouse stressed, depressed or insane...
				trigger = {
					is_married = yes
					prisoner = no
					NOT = { trait = kind }

					spouse = {
						ai = yes
						NOT = { trait = lunatic }
					}
				}

				mult_modifier = {
					factor = 0.5
					trait = humble
				}

				mult_modifier = {
					factor = 2
					trait = lunatic
				}

				mult_modifier = {
					factor = 2
					trait = possessed
				}

				mult_modifier = {
					factor = 2
					trait = wroth
				}

				mult_modifier = {
					factor = 2
					trait = cruel
				}

				spouse = {
					if = {
						limit = { trait = depressed }
						add_trait = lunatic
					}
					else_if = {
						limit = { trait = stressed }
						add_trait = depressed
					}
					else = {
						add_trait = stressed
					}
				}
			}

			10 = { # Become a heretic, spit on parent's religion
				trigger = {
					religion = FROM
					NOT = { religion_group = pagan_group }
				}

				mult_modifier = {
					factor = 0.5
					trait = zealous
				}

				mult_modifier = {
					factor = 2
					trait = cynical
				}

				mult_modifier = {
					factor = 2
					trait = brave
				}

				character_event = { id = ZE.1180 }
			}

			5 = { # If imprisoned, commit suicide in prison
				trigger = {
					prisoner = yes

					OR = {
						trait = stressed
						trait = depressed
						trait = lunatic
					}
				}

				mult_modifier = {
					factor = 3
					trait = depressed
				}

				mult_modifier = {
					factor = 2
					trait = lunatic
				}

				character_event = { id = ZE.1190 }
			}

			30 = { }
		}
	}
}

# Murdered her spouse
character_event = {
	id = ZE.1120
	desc = EVTDESC_ZE_1120
	picture = GFX_evt_illness
	border = GFX_event_normal_frame_intrigue

	is_triggered_only = yes

	option = {
		name = EVTOPTA_ZE_1120 # Is it true?

		FROM = {
			show_scope_change = no

			spouse = {
				show_scope_change = no

				death = {
					death_reason = death_murder_unknown_poison
					killer = FROM
				}
			}
		}
	}
}

# Attacked and killed spouse
character_event = {
	id = ZE.1130
	desc = EVTDESC_ZE_1130
	picture = GFX_evt_quarrel
	border = GFX_event_normal_frame_intrigue

	is_triggered_only = yes

	option = {
		name = EVTOPTA_ZE_1130 # Oh my!

		FROM = {
			show_scope_change = no

			spouse = {
				show_scope_change = no

				death = {
					death_reason = death_murder
					killer = FROM
				}
			}
		}
	}
}

character_event = {
	id = ZE.1142
	desc = EVTDESC_ZE_1142
	picture = GFX_evt_rider_adventure
	border = GFX_event_normal_frame_intrigue

	is_triggered_only = yes

	option = {
		name = EVTOPTA_ZE_1142

		FROM = {
			show_scope_change = no

			end_inaccessibility_effect = yes # removes in_hiding or in_seclusion
			remove_spouse = spouse

			random_lover = {
				show_scope_change = no

				limit = {
					ai = yes
					is_married = no
					is_female = no
				}

				if = {
					limit = {
						ROOT = {
							OR = {
								NOT = { has_law = agnatic_succession }
								is_feminist_trigger = yes
							}
						}
					}
					add_spouse_matrilineal = PREV
				}
				else = {
					if = {
						limit = { dynasty = none }
						dynasty = father_bastard
					}
					add_spouse = PREV
				}
			}
		}

		event_target:daughter_refuge = {
			show_scope_change = no

			build_holding = {
				type = castle
				holder = FROM
			}

			owner = {
				show_scope_change = no

				set_defacto_vassal = FROM
			}
		}
	}
}

# Elopes and starts mercenary/pirate band
character_event = {
	id = ZE.1150
	title = EVTTITLE_ZE_1150
	desc = EVTDESC_ZE_1150
	picture = GFX_evt_steppe_mercenaries
	border = GFX_event_normal_frame_intrigue

	is_triggered_only = yes

	option = {
		name = EVTOPTA_ZE_1150

		FROM = {
			show_scope_change = no

			end_inaccessibility_effect = yes
			remove_spouse = spouse

			hidden_effect = {
				add_trait = adventurer
				set_character_flag = special_marshal

				if = {
					limit = { has_nickname = no }

					random_list = {
						10 = { give_nickname = nick_the_red }
						10 = { give_nickname = nick_the_sea_devil }
						10 = { give_nickname = nick_the_lioness }
						10 = { give_nickname = nick_the_flail_of }
						10 = { give_nickname = nick_the_scourge_of }
						10 = { give_nickname = nick_the_bold }
						10 = { give_nickname = nick_the_fearless }
					}
				}
			}

			create_title = {
				tier = DUKE
				name = DISOBEDIENT_DAUGHTER_MERC_BAND
				landless = yes
				temporary = yes
				adventurer = yes
				custom_created = yes
				culture = THIS
				holder = THIS
				mercenary = yes
				army_template = mercenary_princess_composition
				ruler = CAPTAIN
				ruler_female = CAPTAIN
				foa = CAPTAIN_FOA
			}

			new_title = {
				set_title_flag = non_manual_law_change # No prestige loss
				add_law = true_cognatic_succession
				clr_title_flag = non_manual_law_change # No prestige loss
			}

			set_defacto_liege = THIS

			random_lover = {
				limit = {
					ai = yes
					is_married = no
					is_female = no
				}

				add_spouse_matrilineal = PREV
			}
		}
	}
}

# Becomes heretic
character_event = {
	id = ZE.1180
	desc = EVTDESC_ZE_1180
	picture = GFX_evt_daughter_asking_father
	border = GFX_event_normal_frame_intrigue

	is_triggered_only = yes

	option = {
		name = EVTOPTA_ZE_1180

		FROM = {
			show_scope_change = no

			become_heretic = yes
		}
	}
}

# Commits suicide in prison
character_event = {
	id = ZE.1190
	desc = EVTDESC_ZE_1190
	picture = GFX_evt_into_the_dungeon
	border = GFX_event_normal_frame_war

	is_triggered_only = yes

	option = {
		name = ALAS

		FROM = {
			show_scope_change = no

			death = { death_reason = death_suicide }
		}
	}
}


### Disobedient daughter asks to marry lover
character_event = {
	id = ZE.1302
	desc = EVTDESC_ZE_1302
	picture = GFX_evt_daughter_asking_father
	border = GFX_event_normal_frame_diplomacy

	is_triggered_only = yes # on_yearly_pulse, random_events

	ai = no

	trigger = {
		any_child = {
			has_character_flag = disobedient_daughter
			is_female = yes
			vassal_of = ROOT
			can_marry = yes
			is_ruler = no

			any_lover = {
				is_female = no
				ai = yes
				can_marry = PREV
			}

			prisoner = no
			is_ill = no
			is_married = no
			is_incapable = no
		}
	}

	immediate = {
		random_child = {
			limit = {
				has_character_flag = disobedient_daughter
				is_female = yes
				vassal_of = ROOT
				can_marry = yes
				is_ruler = no

				any_lover = {
					is_female = no
					ai = yes
					can_marry = PREV
				}

				prisoner = no
				is_ill = no
				is_married = no
				is_incapable = no
			}

			save_event_target_as = disobedient_daughter

			random_lover = {
				limit = {
					is_female = no
					ai = yes
					can_marry = PREV
				}

				save_event_target_as = target_daughter_wants_to_marry
			}
		}
	}

	option = {
		name = EVTOPTA_ZE_1302 # Yes

		event_target:disobedient_daughter = {
			show_scope_change = no

			clr_character_flag = disobedient_daughter_unhappy
			add_spouse = event_target:target_daughter_wants_to_marry # TODO: shouldn't this marry matrillineally under some circumstances? Perhaps even all the time, since their parent is a player?

			opinion = {
				name = opinion_grateful
				who = ROOT
				years = 5
			}
		}
	}

	option = {
		name = EVTOPTA_ZE_1302 # No

		event_target:disobedient_daughter = {
			show_scope_change = no

			set_character_flag = disobedient_daughter_unhappy

			opinion = {
				name = opinion_angry
				who = ROOT
				years = 5
			}
		}
	}
}