﻿#All elope scheme events

namespace = elope

# MAINTENANCE EVENTS: 0000-0999
# 0001 - I am a player, do I want to take the risk?
# 0002 - Rolls success and discovery, and triggers on_actions (or sends "player's choice" event)

# OUTCOME EVENTS: 1000-1999
# 1001 - Success event owner
# 1002 - Success for target liege
# 1003 - Success event for relatives of target and owner
# 1011 - Failure discovered event owner
# 1012 - Failure discovered for target liege
# 1021 - Failure undiscovered for owner

# ONGOING EVENTS: 2000-2999
# 2000 - Lover is doubting

######################################################
# MAINTENANCE EVENTS
# 0000-0999
######################################################

#I am a player, do I want to take the risk?
elope.0001 = { #by Mathilda Bjarnehed
	type = character_event
	title = elope.0001.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:scheme.scheme_success_chance >= 60 }
				desc = elope.0001.positive.desc
			}
			desc = elope.0001.negative.desc
		}
	}
	theme = love
	left_portrait = {
		character = scope:target
		animation = love
	}
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	immediate = {
		scope:target = {
			liege = {
				capital_province = { save_scope_as = location }
			}
		}
	}

	option = {
		name = elope.0001.a
		trigger_event = elope.0002 #Do the rolls!

		show_as_tooltip = {
			random_list = {
				desc = elope.0001.a.tt
				0 = {
					#show_chance = no
					modifier = {
						add = {
							value = scope:scheme.scheme_success_chance
						}
					}
					desc = elope.0001.a.success
					elope_success_effect = {
						OWNER = scope:owner
						TARGET = scope:target
					}
				}
				0 = {
					#show_chance = no
					modifier = {
						add = {
							value = 100
							subtract = scope:scheme.scheme_success_chance
							multiply = {
								value = 100
								subtract = scope:scheme.scheme_secrecy
								divide = 100
							}
						}
					}
					desc = elope.0001.a.failure_discover
					elope_failure_discovered_effect = {
						OWNER = scope:owner
						TARGET = scope:target
						DISCOVERER = scope:target.liege
					}
				}
				0 = {
					#show_chance = no
					modifier = {
						add = {
							value = 100
							subtract = scope:scheme.scheme_success_chance
							multiply = {
								value = scope:scheme.scheme_secrecy
								divide = 100
							}
						}
					}
					desc = elope.0001.a.failure_hidden

				}
			}
		}

		stress_impact = {
			craven = minor_stress_impact_gain
		}
	}

	option = {
		name = elope.0001.b
		scope:scheme = {
			end_scheme = yes
		}
	}
}	

#Rolls success and discovery, and triggers on_actions (or sends "player's choice" event)
elope.0002 = {
	type = character_event

	hidden = yes

	immediate = {
		#SUCCESS ROLL
		random = {
			chance = scope:scheme.scheme_success_chance

			save_scope_value_as = {
				name = scheme_successful
				value = yes
			}
			mandala_trickster_increment_successful_schemes_effect = yes
		}

		#DISCOVERY ROLL
		save_scope_value_as = {
			name = discovery_chance
			value = {
				value = 100
				subtract = scope:scheme.scheme_secrecy
			}
		}

		random = {
			chance = scope:discovery_chance
			save_scope_value_as = {
				name = scheme_discovered
				value = yes
			}
		}

		#SEND EVENTS
		if = {
			limit = {
				exists = scope:scheme_successful
			}
			trigger_event = elope.1001
		}
		else_if = {
			limit = { exists = scope:scheme_discovered }
			trigger_event = elope.1011
		}
		else = {
			trigger_event = elope.1021
		}
	}
}

######################################################
# OUTCOME EVENTS
# 1000-1999
######################################################

scripted_effect elope_outcome_portrait_effect = {
	if = {
		limit = { exists = scope:target.primary_spouse }
		scope:target.primary_spouse = { save_scope_as = target_keeper }
	}
	else = {
		scope:target.liege = { save_scope_as = target_keeper }
	}
	every_spouse = {
		if = {
			limit = { NOT = { exists = scope:spouse_1 } }
			save_scope_as = spouse_1
		}
		else_if = {
			limit = { NOT = { exists = scope:spouse_2 } }
			save_scope_as = spouse_2
		}
		else = {
			save_scope_as = spouse_3
		}
	}
	
}

### SUCCESS ###

#Success event owner
scripted_trigger elope_1001_inform_liege_trigger = {
	scope:target = {
		OR = {
			is_close_or_extended_family_of = scope:target_liege
			has_relation_lover = scope:target_liege
			is_consort_of = scope:target_liege
		}
	}
}

scripted_effect elope_1001_outcome_execution_or_tooltip_effect = {
	if = {
		limit = { root = scope:outcome_execution_scope }
		elope_success_effect = {
			TARGET = scope:target
			OWNER = scope:owner
		}
	}
	else = {
		show_as_tooltip = {
			elope_success_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
	}
}

elope.1001 = { #by Mathilda Bjarnehed
	type = character_event
	window = scheme_successful_event
	title = elope.1001.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					OR = {
						has_trait = arrogant
						ai_boldness >= high_positive_ai_value
					}
				}
				desc = elope.1001.start.desc_brave
			}
			desc = elope.1001.start.desc
		}
		desc = elope.1001.end.desc
	}
	theme = love
	override_background = {
		reference = alley_night
	}
	left_portrait = {
		character = scope:target
		animation = lantern
		camera = camera_event_scheme_far_right
	}
	right_portrait = {
		character = scope:target_liege
		animation = celebrate_sword
	}
	lower_center_portrait = scope:spouse_1
	lower_right_portrait = scope:spouse_2
	lower_left_portrait = scope:spouse_3

	trigger = {
		exists = scope:target
		exists = scope:owner
		scope:target = { exists = liege }
	}

	immediate = {
		elope_outcome_portrait_effect = yes

		#Save target's liege because that will change
		scope:target.liege = { save_scope_as = target_liege }

		#Check if owner is a courtier
		if = {
			limit = {
				exists = liege
				is_playable_character = no
			}
			liege = { save_scope_as = owner_liege }
		}

		#Build list of relatives to inform
		scope:target = {
			every_close_family_member = {
				limit = {
					is_ai = no
					is_close_family_of = scope:target
					NOR = {
						this = scope:owner
						this = scope:target_liege
						AND = {
							exists = scope:owner_liege
							this = scope:owner_liege
						}
					}
				}
				add_to_list = elope_relatives
			}
		}
		scope:owner = {
			every_close_family_member = {
				limit = {
					is_ai = no
					is_close_family_of = scope:owner
					NOR = {
						this = scope:owner
						this = scope:target_liege
						AND = {
							exists = scope:owner_liege
							this = scope:owner_liege
						}
						is_in_list = elope_relatives
					}
				}
				add_to_list = elope_relatives
			}
		}

		#Where should we actually execute the effect? If we execute before player sees event, texts are wonky
		if = {
			limit = {
				any_in_list = {
					list = elope_relatives
					is_ai = no
				}
			}
			random_in_list = {
				list = elope_relatives
				limit = { is_ai = no }
				save_scope_as = outcome_execution_scope
			}
		}
		else_if = {
			limit = {
				exists = scope:owner_liege
				scope:owner_liege = { is_ai = no }
			}
			scope:owner_liege = { save_scope_as = outcome_execution_scope }
		}
		else_if = {
			limit = {
				scope:target_liege = { is_ai = no }
			}
			scope:target_liege = { save_scope_as = outcome_execution_scope }
		}
		else = {
			save_scope_as = outcome_execution_scope
		}
	}

	option = {
		name = elope.1001.a
		
		#Outcome
		elope_1001_outcome_execution_or_tooltip_effect = yes

		#inform target's liege
		if = {
			limit = { elope_1001_inform_liege_trigger = yes }
			scope:target_liege = {
				trigger_event = elope.1002
			}
		}

		#Inform relatives
		every_in_list = {
			list = elope_relatives
			trigger_event = elope.1003
		}
		
		#Inform lieges who aren't relatives
		if = {
			limit = {
				elope_1001_inform_liege_trigger = no
				scope:target_liege = { is_ai = no }
			}
			scope:target_liege = {
				trigger_event = elope.1004
			}
		}
		if = {
			limit = {
				exists = scope:owner_liege
				scope:owner_liege = {
					is_ai = no
					NOT = { this = scope:target_liege }
				}
			}
			scope:owner_liege = {
				trigger_event = elope.1005
			}
		}

		#End scheme
		scope:scheme = { end_scheme = yes }

	}
}



#Success for target liege
scripted_trigger elope_1002_apologetic_target_trigger = {
	scope:target = {
		OR = {
			ai_compassion >= medium_positive_ai_value
			opinion = {
				target = root
				value >= low_positive_opinion
			}
		}
	}
}

elope.1002 = { #by Mathilda Bjarnehed
	type = character_event
	window = scheme_successful_event
	title = elope.1002.t
	desc = {
		desc = elope.1002.start.desc
		first_valid = {
			triggered_desc = {
				trigger = { faith = { has_doctrine = tenet_natural_primitivism } }
				desc = elope.1002.desc_naked
			}
			desc = elope.1002.desc_not_naked
		}
		desc = elope.1002.desc
		first_valid = {
			triggered_desc = {
				trigger = {
					elope_1002_apologetic_target_trigger = yes
					exists = scope:target_liege_relationship
				}
				desc = elope.1002.apologetic_relationship.desc
			}
			triggered_desc = {
				trigger = {
					elope_1002_apologetic_target_trigger = no
					exists = scope:target_liege_relationship
				}
				desc = elope.1002.unapologetic_relationship.desc
			}
			triggered_desc = {
				trigger = {
					elope_1002_apologetic_target_trigger = yes
					NOT = { exists = scope:target_liege_relationship }
				}
				desc = elope.1002.apologetic_family.desc
			}
			triggered_desc = {
				trigger = {
					elope_1002_apologetic_target_trigger = no
					NOT = { exists = scope:target_liege_relationship }
				}
				desc = elope.1002.unapologetic_family.desc
			}
		}
	}

	theme = intrigue
	override_background = {
		reference = corridor_night
	}
	left_portrait = scope:target
	right_portrait = scope:owner

	immediate = {
		if = {
			limit = {
				scope:target = {
					OR = {
						is_spouse_of = root
						is_concubine_of = root
						has_relation_lover = root
					}
				}
			}
			save_scope_value_as = {
				name = target_liege_relationship
				value = yes
			}
		}
	}

	option = {
		name = {
			text = {
				first_valid = {
					triggered_desc = {
						trigger = { ai_vengefulness >= medium_positive_ai_value }
						desc = elope.1002.a.vengeful	
					}
					triggered_desc = {
						trigger = { ai_compassion >= medium_positive_ai_value }
						desc = elope.1002.a.compassionate	
					}
					desc = elope.1002.a.fallback	
				}
			}
		}
		elope_1001_outcome_execution_or_tooltip_effect = yes
		if = {
			limit = {
				is_ai = no
				scope:owner = { is_courtier_of = root }
			}
			elope_flee_court_effect = { OWNER = scope:owner TARGET = scope:target }
		}
	}
}

#Success event for relatives of target and owner
elope.1003 = {
	type = character_event
	window = scheme_successful_event
	title = elope.1002.t
	theme = love
	override_background = {
		reference = alley_night
	}
	left_portrait = {
		character = scope:target_liege
		animation = stressed_teacher
	}
	center_portrait = {
		character = scope:owner
		animation = wedding_bride_left
	}
	right_portrait = {
		character = scope:target
		animation = wedding_groom_right
	}
	desc = {
		desc = elope.1003.opening
		desc = elope.1003.start.desc

		#Target name
		first_valid = {
			triggered_desc = {
				trigger = {
					OR = {
						is_close_family_of = scope:target
						AND = {
							exists = dynasty
							exists = scope:target.dynasty
							dynasty = scope:target.dynasty
						}
					}
				}
				desc = elope.1003.target_root_family.desc
			}
			triggered_desc = {
				trigger = {
					scope:target = {
						OR = {
							is_child_of = scope:target_keeper
							is_spouse_of = scope:target_keeper
							is_concubine_of = scope:target_keeper
						}
					}
				}
				desc = elope.1003.target_keeper_relation.desc
			}
			triggered_desc = {
				desc = elope.1003.target_liege_subject.desc
			}
		}

		desc = elope.1003.middle.desc

		#Owner name
		first_valid = {
			triggered_desc = {
				trigger = {
					OR = {
						is_close_family_of = scope:target
						AND = {
							exists = dynasty
							exists = scope:target.dynasty
							dynasty = scope:target.dynasty
						}
					}
				}
				desc = elope.1003.owner_root_family.desc
			}
			desc = elope.1003.your_character_introduction.desc
		}

		desc = elope.1003.end.desc
	}

	immediate = {
		capital_province = { save_scope_as = capital }
	}


	option = {
		name = elope.1003.a
		elope_1001_outcome_execution_or_tooltip_effect = yes
		if = {
			limit = {
				is_ai = no
				scope:owner = { is_courtier_of = root }
			}
			elope_flee_court_effect = { OWNER = scope:owner TARGET = scope:target }
		}
	}
}

#Success event for target liege player who isn't a relative
elope.1004 = {
	type = character_event
	window = scheme_successful_event
	title = elope.1004.t
	desc = {
		desc = elope.1004.start
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:liege_of_both }
				desc = elope.1004.both
			}
			desc = elope.1004.target
		}
		desc = elope.1004.mid
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:refused_permission }
				desc = elope.1004.refused
			}
			triggered_desc = {
				trigger = { exists = scope:owner_liege_refused_permission }
				desc = elope.1004.owner.refused
			}
			triggered_desc = {
				trigger = { exists = scope:target_liege_refused_permission }
				desc = elope.1004.target.refused
			}
			triggered_desc = {
				trigger = { exists = scope:granted_permission }
				desc = elope.1004.granted
			}
			triggered_desc = {
				trigger = { scope:target = { is_married = yes } }
				desc = elope.1004.married
			}
			desc = elope.1004.end
		}

	}

	theme = intrigue
	override_background = { reference = wilderness }
	left_portrait = {
		character = scope:target
		animation = admiration
		outfit_tags = { travel_cloak }
	}
	right_portrait = {
		character = scope:owner
		animation = personality_bold
		outfit_tags = { travel_cloak }
	}

	immediate = {
		if = {
			limit = {
				exists = scope:owner_liege
				root = scope:owner_liege
			}
			save_scope_value_as = {
				name = liege_of_both
				value = yes
			}
		}
		if = {
			limit = {
				OR = {
					reverse_has_opinion_modifier = { modifier = refused_marriage_permission_opinion target = scope:owner }
					reverse_has_opinion_modifier = { modifier = refused_marriage_permission_opinion target = scope:target }
				}
			}
			save_scope_value_as = {
				name = refused_permission
				value = yes
			}
		}
		if = {
			limit = {
				exists = scope:owner.liege
				NOT = { scope:owner.liege = root }
				scope:owner = {
					has_opinion_modifier = { modifier = refused_marriage_permission_opinion target = scope:owner.liege }
				}
			}
			save_scope_value_as = {
				name = owner_liege_refused_permission
				value = yes
			}
		}
		if = {
			limit = {
				exists = scope:target.liege
				NOT = { scope:target.liege = root }
				scope:target = {
					has_opinion_modifier = { modifier = refused_marriage_permission_opinion target = scope:target.liege }
				}
			}
			save_scope_value_as = {
				name = target_liege_refused_permission
				value = yes
			}
		}
		if = {
			limit = {
				OR = {
					reverse_has_opinion_modifier = { modifier = granted_marriage_permission_opinion target = scope:owner }
					reverse_has_opinion_modifier = { modifier = granted_marriage_permission_opinion target = scope:target }
				}
			}
			save_scope_value_as = {
				name = granted_permission
				value = yes
			}
		}
	}

	option = {
		name = elope.1004.a #I see
		elope_1001_outcome_execution_or_tooltip_effect = yes
		if = {
			limit = { is_ai = no }
			add_opinion = {
				target = scope:owner
				modifier = elopement_opinion
			}
			add_opinion = {
				target = scope:target
				modifier = elopement_opinion
			}
		}
		if = {
			limit = {
				OR = {
					exists = scope:liege_of_both
					scope:owner = {
						is_playable_character = no
						is_courtier = no
					}
				}
			}
			elope_flee_court_effect = { OWNER = scope:owner TARGET = scope:target }
		}
	}
	option = {
		name = elope.1004.b #They are welcome to return
		trigger = {
			exists = scope:liege_of_both
			NOT = { exists = scope:refused_permission }
		}

		add_prestige = medium_prestige_loss
		elope_1001_outcome_execution_or_tooltip_effect = yes
		consume_all_criminal_reasons_effect = {
			LIEGE = root
			CRIMINAL = scope:owner
		}
		consume_all_criminal_reasons_effect = {
			LIEGE = root
			CRIMINAL = scope:target
		}
	}
}

#Success event for owner liege player who isn't a relative
elope.1005 = {
	type = character_event
	window = scheme_successful_event
	title = elope.1005.t
	desc = {
		desc = elope.1005.start
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:refused_permission }
				desc = elope.1005.refused
			}
			triggered_desc = {
				trigger = { exists = scope:owner_liege_refused_permission }
				desc = elope.1004.owner.refused
			}
			triggered_desc = {
				trigger = { exists = scope:target_liege_refused_permission }
				desc = elope.1004.target.refused
			}
			triggered_desc = {
				trigger = { exists = scope:granted_permission }
				desc = elope.1005.granted
			}
			desc = elope.1005.neither
		}
		triggered_desc = {
			trigger = { NOT = { exists = scope:refused_permission } }
			desc = elope.1005.end
		}
	}

	theme = intrigue
	override_background = { reference = wilderness }
	left_portrait = {
		character = scope:target
		animation = admiration
		outfit_tags = { travel_cloak }
	}
	right_portrait = {
		character = scope:owner
		animation = personality_bold
		outfit_tags = { travel_cloak }
	}

	immediate = {
		if = {
			limit = {
				OR = {
					reverse_has_opinion_modifier = { modifier = refused_marriage_permission_opinion target = scope:owner }
					reverse_has_opinion_modifier = { modifier = refused_marriage_permission_opinion target = scope:target }
				}
			}
			save_scope_value_as = {
				name = refused_permission
				value = yes
			}
		}
		if = {
			limit = {
				exists = scope:owner.liege
				NOT = { scope:owner.liege = root }
				scope:owner = {
					has_opinion_modifier = { modifier = refused_marriage_permission_opinion target = scope:owner.liege }
				}
			}
			save_scope_value_as = {
				name = owner_liege_refused_permission
				value = yes
			}
		}
		if = {
			limit = {
				exists = scope:target.liege
				NOT = { scope:target.liege = root }
				scope:target = {
					has_opinion_modifier = { modifier = refused_marriage_permission_opinion target = scope:target.liege }
				}
			}
			save_scope_value_as = {
				name = target_liege_refused_permission
				value = yes
			}
		}
		if = {
			limit = {
				OR = {
					reverse_has_opinion_modifier = { modifier = granted_marriage_permission_opinion target = scope:owner }
					reverse_has_opinion_modifier = { modifier = granted_marriage_permission_opinion target = scope:target }
				}
			}
			save_scope_value_as = {
				name = granted_permission
				value = yes
			}
		}
	}

	option = {
		name = {
			trigger = { NOT = { exists = scope:refused_permission } }
			text = elope.1005.a #I hope it was worth it
		}
		name = {
			trigger = { exists = scope:refused_permission }
			text = elope.1005.b #They are no longer welcome here
		}
		elope_1001_outcome_execution_or_tooltip_effect = yes
		if = {
			limit = { is_ai = no }
			add_opinion = {
				target = scope:owner
				modifier = elopement_opinion
			}
			add_opinion = {
				target = scope:target
				modifier = elopement_opinion
			}
		}
		elope_flee_court_effect = { OWNER = scope:owner TARGET = scope:target }
	}
	option = {
		name = elope.1005.c #They are free to return
		trigger = {
			NOT = { exists = scope:refused_permission }
		}

		add_prestige = medium_prestige_loss
		elope_1001_outcome_execution_or_tooltip_effect = yes
		consume_all_criminal_reasons_effect = {
			LIEGE = root
			CRIMINAL = scope:owner
		}
		consume_all_criminal_reasons_effect = {
			LIEGE = root
			CRIMINAL = scope:target
		}		
	}
}	
	


### FAILURE - DISCOVERED ###

#Failure discovered event owner
elope.1011 = { #by Mathilda Bjarnehed
	type = character_event
	window = scheme_failed_event
	title = elope.1011.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					OR = {
						has_trait = arrogant
						ai_boldness >= high_positive_ai_value
					}
				}
				desc = elope.1001.start.desc_brave
			}
			desc = elope.1001.start.desc
		}
		desc = elope.1011.middle.desc
		desc = elope.1011.end.desc
	}
	theme = love
	override_background = {
		reference = wilderness
	}
	left_portrait = {
		character = scope:target
		animation = sadness
	}
	right_portrait = {
		character = scope:target.liege
		animation = rage
	}
	lower_center_portrait = scope:spouse_1
	lower_right_portrait = scope:spouse_2
	lower_left_portrait = scope:spouse_3

	immediate = {
		scope:target.liege = { save_scope_as = target_liege }
		elope_outcome_portrait_effect = yes	
		random_dummy_gender_soldier_effect = { SCOPE_NAME = dummy_soldier }	
	}

	option = {
		name = elope.1011.a

		#Outcome and inform target's liege
		if = {
			limit = { elope_1001_inform_liege_trigger = yes }
			show_as_tooltip = {
				elope_failure_discovered_effect = {
					TARGET = scope:target
					OWNER = scope:owner
					DISCOVERER = scope:target.liege
				}
			}
			scope:target.liege = {
				trigger_event = elope.1012
			}
		}
		else = {
			elope_failure_discovered_effect = {
				TARGET = scope:target
				OWNER = scope:owner
				DISCOVERER = scope:target_liege
			}
		}
		
		scope:scheme = { end_scheme = yes }
		
		scope:owner = {
			if = {
				limit = {
					has_variable = waiting_to_elope
					var:waiting_to_elope = scope:target
				}
				remove_variable = waiting_to_elope
				scope:target = { remove_variable ?= waiting_to_elope }
				if = {
					limit = { has_relation_soulmate = scope:target }
					remove_relation_soulmate = scope:target
				}
			}
			if = {
				limit = {
					any_owned_story = {
						type = lmf_waiting_to_elope_story_cycle
						var:elope_target ?= scope:target
					}
				}
				random_owned_story = {
					type = lmf_waiting_to_elope_story_cycle
					limit = { var:elope_target ?= scope:target }
					hidden_effect = { end_story = yes }
				}
			}
		}
	}
}


#Failure discovered for target liege
elope.1012 = { #by Mathilda Bjarnehed
	type = character_event
	window = scheme_failed_event
	title = elope.1012.t
	desc = elope.1012.desc
	theme = intrigue
	left_portrait = scope:target
	right_portrait = scope:owner

	immediate = {
		scope:target.liege = { save_scope_as = target_liege }
		elope_failure_discovered_effect = {
			TARGET = scope:target
			OWNER = scope:owner
			DISCOVERER = scope:target_liege
		}
	}

	#Rival
	option = {
		trigger = {
			can_set_relation_rival_trigger = { CHARACTER = scope:owner }
			is_ai = no #AIs get a chance to set rival relation earlier
		}
		name = elope.1012.a

		set_relation_rival = {
			target = scope:owner
			reason = rival_tried_to_elope
		}

		stress_impact = {
			forgiving = medium_stress_impact_gain
			compassionate = minor_stress_impact_gain
			craven = minor_stress_impact_gain
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_vengefulness = 5
				ai_boldness = 2
			}
		}
	}

	#Imprison
	option = {
		trigger = { scope:target = { is_imprisoned = no } }
		name = elope.1012.b

		imprison_character_effect = {
			TARGET = scope:target
			IMPRISONER = root
		}

		stress_impact = {
			forgiving = medium_stress_impact_gain
			compassionate = medium_stress_impact_gain
		}

		ai_chance = {
			base = 50

			ai_value_modifier = {
				ai_compassion = -1
				ai_vengefulness = 2
				ai_energy = 0.5
				ai_boldness = 0.5
			}
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_vengefulness = 2
				ai_boldness = 2
				ai_compassion = -2
			}
		}
	}

	#Rival and imprison
	option = {
		trigger = {
			can_set_relation_rival_trigger = { CHARACTER = scope:owner }
			is_ai = no #AIs get a chance to set rival relation earlier
			scope:target = { is_imprisoned = no }
		}
		name = elope.1012.c

		set_relation_rival = {
			target = scope:owner
			reason = rival_tried_to_elope
		}
		imprison_character_effect = {
			TARGET = scope:target
			IMPRISONER = root
		}

		stress_impact = {
			forgiving = medium_stress_impact_gain
			compassionate = minor_stress_impact_gain
			craven = minor_stress_impact_gain
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_vengefulness = 5
				ai_boldness = 2
				ai_compassion = -2
			}
		}
	}

	#OK
	option = {
		name = elope.1012.d
		
		stress_impact = {
			sadistic = medium_stress_impact_gain
			vengeful = major_stress_impact_gain
			wrathful = medium_stress_impact_gain
		}

		ai_chance = {
			base = 100
			ai_value_modifier = {
				ai_compassion = 2
				ai_vengefulness = -3
				ai_energy = -0.5
				ai_boldness = -0.5
			}
		}
	}
}


### FAILURE - UNDISCOVERED ###

#Failure undiscovered for owner
elope.1021 = { #by Mathilda Bjarnehed
	type = character_event
	window = scheme_failed_event
	title = elope.1011.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					OR = {
						has_trait = arrogant
						ai_boldness >= high_positive_ai_value
					}
				}
				desc = elope.1001.start.desc_brave
			}
			desc = elope.1001.start.desc
		}
		desc = elope.1011.middle.desc
		desc = elope.1021.end.desc
	}
	theme = love
	left_portrait = {
		character = scope:target
		animation = sadness
	}
	right_portrait = {
		character = scope:target.liege
		animation = anger
	}
	theme = love


	option = {
		name = elope.1021.a
	
		scope:scheme = { end_scheme = yes }

		scope:owner = {
			if = {
				limit = {
					has_variable = waiting_to_elope
					var:waiting_to_elope = scope:target
				}
				remove_variable = waiting_to_elope
				scope:target = { remove_variable ?= waiting_to_elope }
				if = {
					limit = { has_relation_soulmate = scope:target }
					remove_relation_soulmate = scope:target
				}
			}
			if = {
				limit = {
					any_owned_story = {
						type = lmf_waiting_to_elope_story_cycle
						var:elope_target ?= scope:target
					}
				}
				random_owned_story = {
					type = lmf_waiting_to_elope_story_cycle
					limit = { var:elope_target ?= scope:target }
					hidden_effect = { end_story = yes }
				}
			}
		}
	}
}


######################################################
# MAINTENANCE EVENTS
# 2000-2999
######################################################

# Lover is doubting
elope.2000 = { #by Mathilda Bjarnehed
	type = letter_event
	opening = elope.2000.t
	desc = {
		desc = elope.2000.start.desc
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:target = {
						OR = {
							is_consort_of = scope:discoverer
							is_close_or_extended_family_of = scope:discoverer
						}
					}
				}
				desc = elope.2000.target_relation.desc
			}
			desc = elope.2000.titledname.desc
		}
		desc = elope.2000.end.desc
	}
	sender = {
		character = scope:target
		animation = worry
	}
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}
	
	trigger = {
		NOT = { scope:scheme = { has_variable = had_elope_2000_event } }
		scope:target = { is_imprisoned = no }
		exists = scope:target.host
		scope:scheme = {
			scheme_progress >= scheme_progress_33
		}
	}

	weight_multiplier = {
		base = 1
		# Target isn't bold
		modifier = {
			add = {
				value = scope:target.ai_boldness
				multiply = -0.01
				min = -0.8
			}
		}
		# Target doesn't like you that much
		modifier = {
			scope:target = {
				opinion = {
					target = root
					value <= medium_positive_opinion
				}
			}
			add = 0.5
		}
		modifier = {
			scope:target = {
				opinion = {
					target = root
					value <= low_positive_opinion
				}
			}
			add = 0.5
		}
		modifier = {
			scope:target = { has_trait = impatient }
			add = 1
		}
	}

	immediate = {
		scope:scheme = {
			set_variable = {
				name = had_elope_2000_event
				value = yes
			}
		}
		scope:target = {
			if = {
				limit = { exists = primary_spouse }
				primary_spouse = { save_scope_as = discoverer }
			}
			else = {
				host = { save_scope_as = discoverer }
			}
		}
		hidden_effect = {
			scope:target = { add_stress = major_stress_impact_gain }
		}
	}

	# We will hurry
	option = {
		name = elope.2000.a

		scope:scheme = {
			add_scheme_modifier = {
				type = intrigue_scheme_in_a_hurry_modifier
			}
			change_opportunities = -2
		}

		stress_impact = {
			paranoid = medium_stress_impact_gain
			calm = medium_stress_impact_gain	
		}
	}

	# Be brave
	option = {
		name = elope.2000.c
		
		duel = {
			skill = diplomacy
			target = scope:target

			20 = { # Low because of opinion modifier
				compare_modifier = {
					value = scope:duel_value
					multiplier = 2
				}
				opinion_modifier = {
					who = scope:target
					opinion_target = root
				}
				desc = elope.2000.c.success
				send_interface_toast = {
					left_icon = scope:target
					title = elope.2000.c.success
					reverse_add_opinion = {
						target = scope:target
						modifier = trust_opinion
						opinion = 10
					}
				}
			}
			40 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -1
				}
				desc = elope.2000.c.failure
				send_interface_toast = {
					left_icon = scope:target
					title = elope.2000.c.failure
					reverse_add_opinion = {
						target = scope:target
						modifier = dismissive_opinion
						opinion = -25
					}
				}
			}
		}
	}

	#No more communication
	option = {
		name = elope.2000.b

		reverse_add_opinion = {
			target = scope:target
			modifier = hurt_opinion
			opinion = -5
		}

		scope:scheme = {
			add_scheme_modifier = {
				type = intrigue_scheme_no_contact_modifier
			}
		}

		stress_impact = {
			compassionate = minor_stress_impact_gain
			forgiving = minor_stress_impact_gain
		}
	}
}
