﻿# The outcome of a seduction scheme

namespace = seduce_outcome

# Never! And I will tell everyone! (reveals, not dependent of discovery roll)
# by Mathilda Bjarnehed
seduce_outcome.4003 = {
	type = character_event
	window = scheme_failed_event
	id_override_priority = 100
	title = seduce_outcome.4003.t
	desc = {
		random_valid = {
			triggered_desc = { #They have a mean plot
				trigger = {
					scope:target = {
						OR = {
							opinion = {
								target = root
								value < 0
							}
							ai_honor <= low_negative_ai_value
							ai_compassion <= low_negative_ai_value
							ai_vengefulness >= low_positive_ai_value
							has_trait = sadistic
							has_trait = vengeful
							has_trait = deceitful
						}
					}
					NOR = {
						has_trait = compassionate
						has_trait = chaste
						has_trait = zealous
					}
				}
				desc = seduce_outcome.4003.plot.desc
			}
			desc = seduce_outcome.4003.regular.desc
		}
	}
	theme = seduce_scheme
	left_portrait = {
		character = scope:target
		animation = anger
	}

	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	trigger = {
		OR = {
			#Regular conditions
			reverse_opinion = { #Dislikes you
				target = scope:target
				value < 0
			}
			AND = { #Thinks that you're ugly
				scope:target = { ai_compassion < medium_positive_ai_value }
				attraction < 0
			}
			ai_values_divergence = { #Very different
				target = scope:target
				value >= high_ai_values_divergence
			}
			scope:target = { has_trait = chaste } #Chaste
			scope:target = { #This is not honorable
				trait_is_shunned_or_criminal_in_my_or_lieges_rite_trigger = { TRAIT = trait:adulterer GENDER_CHARACTER = scope:target }
				OR = {
					ai_honor >= low_positive_ai_value
					has_trait = zealous
					has_trait = honest
				}
			}
			#Was triggered by player choice
			exists = scope:target_chose_mean_reject
		}
		NOT = { is_consort_of = scope:target }

		#Disabled by Graceful Recovery Perk
		NOT = { has_perk = graceful_recovery_perk }
	}

	weight_multiplier = {
		base = 0.5
		modifier = {
			scope:target = { ai_vengefulness >= medium_positive_ai_value }
			add = 1
		}
		modifier = {
			scope:target = { ai_compassion < medium_positive_ai_value }
			add = 1
		}
		modifier = {
			has_relation_rival = scope:target
			add = 2
		}
		modifier = {
			has_trait = zealous
			add = 1
		}
		modifier = {
			#A fellow homo-/bisexual character will hesitate to call you out in public
			scope:target = { relation_with_character_is_sodomy_in_my_or_lieges_rite_trigger = { CHARACTER = root } }
			add = -0.5
		}
	}

	immediate = { play_music_cue = "mx_cue_negative" }

	option = {
		name = {
			text = seduce_outcome.4003.a.plot
			trigger = {
				scope:target = {
					OR = {
						opinion = {
							target = root
							value < 0
						}
						ai_honor <= low_negative_ai_value
						ai_compassion <= low_negative_ai_value
						ai_vengefulness >= low_positive_ai_value
						has_trait = sadistic
						has_trait = vengeful
						has_trait = deceitful
					}
				}
				NOR = {
					has_trait = compassionate
					has_trait = chaste
					has_trait = zealous
				}
			}
		}
		name = seduce_outcome.4003.a.regular

		save_scope_value_as = {
			name = was_hard_reject
			value = flag:yes
		}

		if = {
			limit = {
				OR = {
					scope:target = { is_playable_character = yes }
					host ?= root
				}
			}
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
		else_if = {
			limit = {
				scope:target = {
					exists = liege
					liege != scope:owner
				}
			}
			show_as_tooltip = {
				seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
					TARGET = scope:target
					OWNER = scope:owner
				}
			}
			scope:target = {
				liege = {
					save_temporary_scope_as = target_liege
					notify_liege_seduction_failure_effect = yes
				}
			}
		}

		scope:target = { seduction_block_character_effect = { CHARACTER = scope:owner } }

		scope:scheme = {
			end_scheme = yes
		}
	}
}

# Discovered failure!
# by Mathilda Bjarnehed
seduce_outcome.4005 = {
	type = character_event
	window = scheme_failed_event
	id_override_priority = 100
	title = seduce_outcome.2900.t
	desc = seduce_outcome.4005.desc

	theme = seduce_scheme
	override_background = {
		reference = courtyard
	}
	left_portrait = scope:target
	right_portrait = scope:target_liege
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	trigger = {
		exists = scope:scheme_discovered
		scope:target = {
			is_playable_character = no
			exists = host
		}
	}

	immediate = {
		scope:target = { host = { save_scope_as = target_liege } }
	}

	option = {
		name = seduce_outcome.4005.a

		show_as_tooltip = {
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		} #Is actually applied in 4900

		scope:target = { seduction_cooldown_for_character_effect = { CHARACTER = scope:owner } }

		scope:scheme = {
			end_scheme = yes
		}
		#Send "failed seduction attempt discovered" event to target's liege
		scope:target_liege = { notify_liege_seduction_failure_effect = yes }
	}
}

# Target's host get notified of your attempt
# by Mathilda Bjarnehed
seduce_outcome.4900 = { # Climbing up to the window
	type = character_event
	window = scheme_failed_event
	id_override_priority = 100
	title = seduce_outcome.3901.t
	desc = seduce_outcome.4900.desc
	theme = seduce_scheme
	override_background = {
		reference = corridor_night
	}
	left_portrait = {
		character = scope:owner
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = shame
		}
		animation = flirtation
	}
	right_portrait = {
		character = scope:target
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = anger
		}
		animation = dismissal
	}

	immediate = { save_scope_as = target_liege }

	option = {
		name = {
			trigger = {
				OR = {
					is_spouse_of = scope:target
					is_close_or_extended_family_of = scope:target
				}
			}
			text = seduce_outcome.4900.a.family
		}
		name = {
			trigger = {
				NOR = {
					is_spouse_of = scope:target
					is_close_or_extended_family_of = scope:target
				}
			}
			text = seduce_outcome.4900.a.courtier
		}

		custom_tooltip = seduce_outcome.4900.failure.tt
		scope:owner = {
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
	}
}

seduce_outcome.4901 = { # Caught waiting naked in their room
	type = character_event
	window = scheme_failed_event
	title = seduce_outcome.3901.t
	desc = {
		desc = seduce_outcome.4901.opening
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:was_hard_reject }
				desc = seduce_outcome.4901.reject
			}
			desc = seduce_outcome.4901.normal
		}
	}
	theme = seduce_scheme
	override_background = {
		reference = bedchamber
	}
	left_portrait = {
		character = scope:owner
		animation = shame
		outfit_tags = { no_clothes }
	}
	right_portrait = {
		character = scope:target
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = anger
		}
		animation = disgust
		outfit_tags = { nightgown }
	}

	immediate = {
		save_scope_as = target_liege
		scope:owner = { make_naked_effect = yes }
	}
	
	option = {
		name = seduce_outcome.4901.a
		custom_tooltip = seduce_outcome.4900.failure.tt
		scope:owner = {
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
	}
	
	after = {
		scope:owner = { remove_naked_effect = yes }
	}
}

seduce_outcome.4902 = { # Came across them in the gardens
	type = character_event
	window = scheme_failed_event
	title = seduce_outcome.3901.t
	desc = {
		desc = seduce_outcome.4902.opening
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:was_hard_reject }
				desc = seduce_outcome.4902.reject
			}
			desc = seduce_outcome.4902.normal
		}
	}
	theme = seduce_scheme
	override_background = {
		reference = garden
	}
	left_portrait = {
		character = scope:owner
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = shame
		}
		animation = flirtation
	}
	right_portrait = {
		character = scope:target
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = anger
		}
		animation = dismissal
	}

	immediate = { save_scope_as = target_liege }

	option = {
		name = seduce_outcome.4902.a
		custom_tooltip = seduce_outcome.4900.failure.tt
		scope:owner = {
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
	}
}

seduce_outcome.4903 = { # Forbidden seduction caught in the corridor
	type = character_event
	window = scheme_failed_event
	title = seduce_outcome.3901.t
	desc = {
		desc = seduce_outcome.4903.opening
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:was_hard_reject }
				desc = seduce_outcome.4903.reject
			}
			desc = seduce_outcome.4903.normal
		}
	}
	theme = seduce_scheme
	override_background = {
		reference = corridor_night
	}
	left_portrait = {
		character = scope:owner
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = shame
		}
		animation = flirtation
	}
	right_portrait = {
		character = scope:target
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = anger
		}
		animation = dismissal
	}

	immediate = { save_scope_as = target_liege }

	option = {
		name = seduce_outcome.4903.a
		custom_tooltip = seduce_outcome.4900.failure.tt
		scope:owner = {
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
	}
}

seduce_outcome.4904 = { # Failed seduction caught at a feast
	type = character_event
	window = scheme_failed_event
	title = seduce_outcome.3901.t
	desc = {
		desc = seduce_outcome.4904.opening
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:was_hard_reject }
				desc = seduce_outcome.4904.reject
			}
			desc = seduce_outcome.4904.normal
		}
	}
	theme = seduce_scheme
	override_background = {
		reference = feast
	}
	left_portrait = {
		character = scope:owner
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = shame
		}
		animation = flirtation
	}
	right_portrait = {
		character = scope:target
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = anger
		}
		animation = dismissal
	}

	immediate = { save_scope_as = target_liege }

	option = {
		name = seduce_outcome.4904.a
		custom_tooltip = seduce_outcome.4900.failure.tt
		scope:owner = {
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
	}
}

seduce_outcome.4905 = { # Spouse informs you of attempted seduction
	type = character_event
	window = scheme_failed_event
	title = seduce_outcome.3901.t
	desc = seduce_outcome.4905.desc
	theme = seduce_scheme

	right_portrait = {
		character = scope:target
		animation = anger
	}
	lower_right_portrait = scope:owner

	immediate = { save_scope_as = target_liege }

	option = {
		name = seduce_outcome.4905.a
		custom_tooltip = seduce_outcome.4900.failure.tt
		add_opinion = {
			target = scope:owner
			modifier = attempted_to_seduce_spouse_opinion
		}
		progress_towards_rival_effect = {
			CHARACTER = scope:owner
			REASON = tried_to_seduce_spouse
			OPINION = 0
		}
		hidden_effect = {
			scope:owner = {
				seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
					TARGET = scope:target
					OWNER = scope:owner
				}
			}
		}
	}
}

seduce_outcome.4906 = { # Caught trying to seduce spouse in the corridor
	type = character_event
	window = scheme_failed_event
	title = seduce_outcome.3901.t
	desc = seduce_outcome.4906.desc
	theme = seduce_scheme
	override_background = {
		reference = corridor_night
	}
	left_portrait = {
		character = scope:owner
		animation = flirtation
	}
	right_portrait = {
		character = scope:target
		animation = dismissal
	}

	immediate = { save_scope_as = target_liege }

	option = {
		name = seduce_outcome.4906.a
		custom_tooltip = seduce_outcome.4900.failure.tt
		add_opinion = {
			target = scope:owner
			modifier = attempted_to_seduce_spouse_opinion
		}
		progress_towards_rival_effect = {
			CHARACTER = scope:owner
			REASON = tried_to_seduce_spouse
			OPINION = 0
		}
		hidden_effect = {
			scope:owner = {
				seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
					TARGET = scope:target
					OWNER = scope:owner
				}
			}
		}
	}
}

seduce_outcome.4907 = { # Seducer told off in court
	type = character_event
	window = scheme_failed_event
	title = seduce_outcome.3901.t
	desc = {
		desc = seduce_outcome.4907.opening
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:was_hard_reject }
				desc = seduce_outcome.4907.reject
			}
			desc = seduce_outcome.4907.normal
		}
	}
	theme = seduce_scheme
	override_background = {
		reference = throne_room
	}
	left_portrait = {
		character = scope:owner
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = shame
		}
		animation = flirtation
	}
	right_portrait = {
		character = scope:target
		triggered_animation = {
			trigger = { exists = scope:was_hard_reject }
			animation = anger
		}
		animation = dismissal
	}

	immediate = { save_scope_as = target_liege }

	option = {
		name = seduce_outcome.4907.a
		custom_tooltip = seduce_outcome.4900.failure.tt
		scope:owner = {
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
	}
}

seduce_outcome.4908 = { # Female seducer avoided with liege's help
	type = character_event
	window = scheme_failed_event
	title = seduce_outcome.3901.t
	desc = seduce_outcome.4908.desc
	theme = seduce_scheme
	override_background = {
		reference = corridor_night
	}
	left_portrait = {
		character = scope:owner
		animation = shame
	}
	center_portrait = {
		character = root
		animation = disapproval
	}
	right_portrait = {
		character = scope:target
		animation = stress
	}

	immediate = { save_scope_as = target_liege }

	option = {
		name = seduce_outcome.4908.a
		custom_tooltip = seduce_outcome.4900.failure.tt
		scope:owner = {
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
	}
}

seduce_outcome.4909 = { # Female seducer has letters returned
	type = character_event
	window = scheme_failed_event
	title = seduce_outcome.3901.t
	desc = seduce_outcome.4909.desc
	theme = seduce_scheme
	override_background = {
		reference = study
	}
	left_portrait = {
		character = scope:owner
		animation = shame
	}
	right_portrait = {
		character = scope:target
		animation = beg
	}

	immediate = { save_scope_as = target_liege }

	option = {
		name = seduce_outcome.4909.a
		custom_tooltip = seduce_outcome.4900.failure.tt
		scope:owner = {
			seduce_outcome_publicised_attempted_crimes_or_nothing_effect = {
				TARGET = scope:target
				OWNER = scope:owner
			}
		}
	}	
}

