﻿#Events handling Sway outcomes

namespace = sway_outcome

#Note: Outcome events for the Sway scheme are unusual. The default is simply a notification for success or failure

################################
# Standard outcomes
# 0000-0999
################################

#Standard success
	#by Petter Vilberg
sway_outcome.0001 = {
	hidden = yes

	immediate = {
		send_interface_message = {
			type = sway_good_message
			title = sway_sway_success_message
			left_icon = scope:target
			scope:target = {
				if = {
					limit = {
						is_alive = yes
						scope:owner = { is_alive = yes }
					}
					if = {
						limit = {
							any_character_struggle = {
								is_struggle_type = persian_struggle
								has_struggle_phase_parameter = fp3_sway_vassals_removes_disloyalty
							}
						}
						add_opinion = {
							target = scope:owner
							modifier = scheme_sway_and_compelled_to_submit_opinion
							opinion = sway_opinion_increase_per_success
						}
					}
					else = {
						add_opinion = {
							target = scope:owner
							modifier = scheme_sway_opinion
							opinion = sway_opinion_increase_per_success
						}
					}
					scope:owner = {
						if = {
							limit = {
								faith = { has_doctrine_parameter = sway_scheme_piety }
								OR = {
									liege ?= scope:target
									target_is_vassal_or_below = scope:target
								}
							}
							add_piety = minor_piety_gain
						}
					}
				}
			}
			sway_end_effect = yes
		}
	}
}

#Standard failure
	#by Petter Vilberg
sway_outcome.0002 = {
	hidden = yes

	immediate = {
		send_interface_message = {
			type = sway_bad_message
			title = sway_sway_failed_message
			left_icon = scope:target
			stress_impact = {
				gregarious = minor_stress_impact_gain
			}
			sway_end_effect = yes
		}
	}
}


#################################
# Positive Outcomes
# 1000-1999
#################################

#Diplomacy Duel to get an extra bonus
	#by Petter Vilberg
sway_outcome.1001 = {
	type = character_event
	title = sway_outcome.1001.t
	desc = sway_outcome.1001.desc
	theme = sway_scheme
	left_portrait = scope:target
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	override_background = {
		trigger = { is_travelling_not_at_activity = yes }
		reference = terrain_travel
	}
	override_background = {
		trigger = { is_travelling_at_activity = yes }
		reference = ep2_activity
	}
	
	trigger = {
		NOT = {
			has_character_flag = had_event_sway_outcome_1001
		}
	}

	immediate = {
		add_character_flag = {
			flag = had_event_sway_outcome_1001
			years = 5
		}
	}

	option = {
		name = sway_outcome.1001.a
		duel = {
			target = scope:target
			skill = diplomacy

			20 = {
				compare_modifier = {
					value = scope:duel_value
				}
				desc = sway_outcome.1001.a.success
				send_interface_toast = {
					left_icon = scope:target
					title = sway_outcome.1001.a.success

					add_prestige = minor_prestige_gain

					scope:target = {
						if = {
							limit = {
								any_character_struggle = {
									is_struggle_type = persian_struggle
									has_struggle_phase_parameter = fp3_sway_vassals_removes_disloyalty
								}
							}
							add_opinion = {
								target = scope:owner
								modifier = scheme_sway_and_compelled_to_submit_opinion
								opinion = 50
							}
						}
						else = {
							add_opinion = {
								target = scope:owner
								modifier = scheme_sway_opinion
								opinion = 50
							}
						}
						scope:owner = {
							if = {
								limit = {
									faith = { has_doctrine_parameter = sway_scheme_piety }
									OR = {
										liege ?= scope:target
										target_is_vassal_or_below = scope:target
									}
								}
								add_piety = minor_piety_gain
							}
						}
					}
				}
			}
			20 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -1
				}
				desc = sway_outcome.1001.a.failure
				send_interface_toast = {
					left_icon = scope:target
					title = sway_outcome.1001.a.failure

					add_prestige = minor_prestige_loss
				}
			}
		}
		sway_end_effect = yes
	}

	option = {
		name = sway_outcome.1001.b
		scope:target = {
			add_opinion = {
				target = scope:owner
				modifier = scheme_sway_opinion
				opinion = 30
			}
		}
		scope:owner = {
			if = {
				limit = {
					faith = { has_doctrine_parameter = sway_scheme_piety }
					OR = {
						liege ?= scope:target
						target_is_vassal_or_below = scope:target
					}
				}
				add_piety = minor_piety_gain
			}
		}
		sway_end_effect = yes
	}
}

#Learning Duel to get an extra bonus
	#by Petter Vilberg
sway_outcome.1002 = {
	type = character_event
	title = sway_outcome.1002.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { faith = scope:target.faith }
				desc = sway_outcome.1002.same_faith
			}
			desc = sway_outcome.1002.other_faith
		}
	}
	theme = sway_scheme
	left_portrait = scope:target
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	override_background = {
		trigger = { scope:target = { is_travelling = yes } }
		reference = terrain_travel
	}
	
	trigger = {
		NOT = {
			has_character_flag = had_event_sway_outcome_1002
		}
	}

	weight_multiplier = {
		base = 0
		compare_modifier = {
			value = learning
			multiplier = 0.1
		}
		modifier = {
			add = 2
			scope:target = {
				is_landed = yes
				government_has_flag = government_is_theocracy
			}
		}
	}

	immediate = {
		add_character_flag = {
			flag = had_event_sway_outcome_1002
			years = 5
		}
	}

	option = {
		name = sway_outcome.1002.a
		duel = {
			target = scope:target
			skill = learning

			20 = {
				compare_modifier = {
					value = scope:duel_value
					min = -18
					max = 20
				}
				desc = sway_outcome.1001.a.success
				send_interface_toast = {
					left_icon = scope:target
					title = sway_outcome.1001.a.success

					add_prestige = minor_prestige_gain

					scope:target = {
						if = {
							limit = {
								any_character_struggle = {
									is_struggle_type = persian_struggle
									has_struggle_phase_parameter = fp3_sway_vassals_removes_disloyalty
								}
							}
							add_opinion = {
								target = scope:owner
								modifier = scheme_sway_and_compelled_to_submit_opinion
								opinion = 50
							}
						}
						else = {
							add_opinion = {
								target = scope:owner
								modifier = scheme_sway_opinion
								opinion = 50
							}
						}
						scope:owner = {
							if = {
								limit = {
									faith = { has_doctrine_parameter = sway_scheme_piety }
									OR = {
										liege ?= scope:target
										target_is_vassal_or_below = scope:target
									}
								}
								add_piety = minor_piety_gain
							}
						}
					}
				}
			}
			20 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -1
					min = -18
					max = 20
				}
				desc = sway_outcome.1001.a.failure
				send_interface_toast = {
					left_icon = scope:target
					title = sway_outcome.1001.a.failure

					add_prestige = minor_prestige_loss
				}
			}
		}
		sway_end_effect = yes
	}

	option = {
		name = sway_outcome.1002.b
		scope:target = {
			add_opinion = {
				target = scope:owner
				modifier = scheme_sway_opinion
				opinion = 30
			}
		}
		scope:owner = {
			if = {
				limit = {
					faith = { has_doctrine_parameter = sway_scheme_piety }
					OR = {
						liege ?= scope:target
						target_is_vassal_or_below = scope:target
					}
				}
				add_piety = minor_piety_gain
			}
		}
		sway_end_effect = yes
	}
}


#They're warming up to me, can I take it further?
	#by Linnéa Thimrén
sway_outcome.1003 = {
	type = character_event
	title = sway_outcome.1003.t
	desc = sway_outcome.1003.desc
	theme = sway_scheme
	left_portrait = scope:target
	right_portrait = scope:friend
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	override_background = {
		trigger = { is_travelling_not_at_activity = yes }
		reference = terrain_travel
	}
	override_background = {
		trigger = { is_travelling_at_activity = yes }
		reference = ep2_activity
	}
	
	trigger = {
		NOT = {
			has_character_flag = had_event_sway_outcome_1003
		}
	}

	immediate = {
		add_character_flag = {
			flag = had_event_sway_outcome_1003
			years = 5
		}
		scope:target = {
			if = {
				limit = {
					any_character_struggle = {
						is_struggle_type = persian_struggle
						has_struggle_phase_parameter = fp3_sway_vassals_removes_disloyalty
					}
				}
				add_opinion = {
					target = scope:owner
					modifier = scheme_sway_and_compelled_to_submit_opinion
					opinion = 30
				}
			}
			else = {
				add_opinion = {
					target = scope:owner
					modifier = scheme_sway_opinion
					opinion = 30
				}
			}
			scope:owner = {
				if = {
					limit = {
						faith = { has_doctrine_parameter = sway_scheme_piety }
						OR = {
							liege ?= scope:target
							target_is_vassal_or_below = scope:target
						}
					}
					add_piety = minor_piety_gain
				}
			}
		}
		if = {
			limit = {
				any_relation = {
					type = friend
					diplomacy > root.diplomacy
				}
			}
			random_relation = {
				type = friend
				limit = {
					diplomacy > root.diplomacy
				}
				save_scope_as = friend
			}
		}
	}

	option = { #Gamble!
		name = sway_outcome.1003.a
		duel = {
			target = scope:target
			skill = diplomacy

			30 = {
				compare_modifier = {
					value = scope:duel_value
				}
				desc = sway_outcome.1003.a.success
				send_interface_toast = {
					left_icon = scope:target
					title = sway_outcome.1003.a.success

					scope:target = {
						if = {
							limit = {
								any_character_struggle = {
									is_struggle_type = persian_struggle
									has_struggle_phase_parameter = fp3_sway_vassals_removes_disloyalty
								}
							}
							add_opinion = {
								target = scope:owner
								modifier = scheme_sway_and_compelled_to_submit_opinion
								opinion = 20
							}
						}
						else = {
							add_opinion = {
								target = scope:owner
								modifier = scheme_sway_opinion
								opinion = 20
							}
						}
					}
				}
			}
			20 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -1
				}
				desc = sway_outcome.1003.a.failure
				send_interface_toast = {
					left_icon = scope:target
					title = sway_outcome.1003.a.failure

					scope:target = {
						if = {
							limit = {
								any_character_struggle = {
									is_struggle_type = persian_struggle
									has_struggle_phase_parameter = fp3_sway_vassals_removes_disloyalty
								}
							}
							add_opinion = {
								target = scope:owner
								modifier = scheme_sway_and_compelled_to_submit_opinion
								opinion = -10
							}
						}
						else = {
							add_opinion = {
								target = scope:owner
								modifier = scheme_sway_opinion
								opinion = -10
							}
						}
					}
				}	
			}
		}
	}

	option = { #Gamble! Friend helps you out!
		name = sway_outcome.1003.a_friend
		trigger = {
			exists = scope:friend
		}
		scope:friend = {
			duel = {
				target = scope:target
				skill = diplomacy

				40 = {
					compare_modifier = {
						value = scope:duel_value
					}
					desc = sway_outcome.1003.a.success
					send_interface_toast = {
						left_icon = scope:target
						title = sway_outcome.1003.a.success

						scope:target = {
							if = {
								limit = {
									any_character_struggle = {
										is_struggle_type = persian_struggle
										has_struggle_phase_parameter = fp3_sway_vassals_removes_disloyalty
									}
								}
								add_opinion = {
									target = scope:owner
									modifier = scheme_sway_and_compelled_to_submit_opinion
									opinion = 15
								}
							}
							else = {
								add_opinion = {
									target = scope:owner
									modifier = scheme_sway_opinion
									opinion = 15
								}
							}
						}
					}
				}
				20 = {
					compare_modifier = {
						value = scope:duel_value
						multiplier = -1
					}
					desc = sway_outcome.1003.a.failure
					send_interface_toast = {
						left_icon = scope:target
						title = sway_outcome.1003.a.failure

						scope:target = {
							if = {
								limit = {
									any_character_struggle = {
										is_struggle_type = persian_struggle
										has_struggle_phase_parameter = fp3_sway_vassals_removes_disloyalty
									}
								}
								add_opinion = {
									target = scope:owner
									modifier = scheme_sway_and_compelled_to_submit_opinion
									opinion = -10
								}
							}
							else = {
								add_opinion = {
									target = scope:owner
									modifier = scheme_sway_opinion
									opinion = -10
								}
							}
						}
					}
				}
			}
		}
	}

	option = { #Safe route
		name = sway_outcome.1003.b
		
	}

	after = {
		sway_end_effect = yes
	}
}

#A disloyal vassal can be compelled to reconsider during the Anarchy at Samarra Struggle 
	#by Ola Jentzsch

sway_outcome.1004 = {
	type = character_event
	title = sway_outcome.1004.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:target = {
						ai_vengefulness >= medium_positive_ai_value
					}
				}
				desc = sway_outcome_grudgingly.1004.desc
			}
			random_valid = {
				desc = sway_outcome_magnanimity.1004.desc
				desc = sway_outcome_blessed.1004.desc
				triggered_desc = {
					trigger = {
						scope:target = {
							NOR = {
								has_trait = stubborn
								has_trait = arrogant 
								has_trait = august
								has_trait = callous 
							}
						}
					}
					desc = sway_outcome_flattery.1004.desc 
				}
				triggered_desc = {
					trigger = {
						AND = {
							scope:target = {
								AND = {
									OR = {
										has_religion = religion:buddhism_religion
										has_religion = religion:jainism_religion
										has_religion = religion:hinduism_religion
									}
									ai_zeal >= low_positive_ai_value
								}
							}
							scope:owner = {
								OR = {
									has_religion = religion:buddhism_religion
									has_religion = religion:jainism_religion
									has_religion = religion:hinduism_religion
								} 
							}
						}
					}
					desc = sway_outcome_dharmic.1004.desc 
				}
				triggered_desc = {
					trigger = {
						scope:target = {
							has_religion = religion:islam_religion
							ai_zeal >= low_positive_ai_value
							exists = faith.religious_head 
							faith.religious_head = { this = root }
						}
					}
					desc = sway_outcome_caliph.1004.desc 		
				}				
			}
		}
	}
	theme = sway_scheme
	left_portrait = {
		character = scope:owner
		triggered_animation = {
			trigger = {
				has_trait = callous
				has_trait = vengeful
				has_trait = sadistic
			}
			animation = personality_callous
		}
		animation = personality_bold 
	}
	right_portrait = {
		character = scope:target
		animation = throne_room_bow_1
	}

	trigger = {

		any_character_struggle = {
			is_struggle_type = persian_struggle
			has_struggle_phase_parameter = fp3_sway_scheme_more_powerful
		}

		scope:target = { 
			AND = {
				is_vassal_of = scope:owner 
				has_trait = disloyal
			}
			NOT = {
				has_relation_rival = scope:owner
			}
		}
	}

	weight_multiplier = { #more likely to trigger if the target likes you, or has a flexible personality
		base = 1
		modifier = { 
			add = 0.5
			scope:target = { has_trait = fickle } #They're flexible 
		}
		modifier = { 
			add = 0.5
			scope:target = { has_trait = trusting } #They trust you
		}
		modifier = { 
			add = -0.7
			scope:target = { has_trait = stubborn } #They are not prone to change their ways
		}
		modifier = { 
			add = -0.3
			scope:target = { has_trait = vengeful } #They are not soon to forgive slights, real or imagined
		}
	}

	immediate = {

		scope:target = {
			add_opinion = {
				target = scope:owner
				modifier = scheme_sway_opinion
				opinion = 20
			}
			remove_trait = disloyal 
		}
		scope:owner = {
			if = {
				limit = {
					faith = { has_doctrine_parameter = sway_scheme_piety }
					OR = {
						liege ?= scope:target
						target_is_vassal_or_below = scope:target
					}
				}
				add_piety = minor_piety_gain
			}
		}
	}

	option = {
		name = sway_outcome.1004.a 

		trigger = {
			OR = {
				has_trait = vengeful
				has_trait = arrogant
				has_trait = paranoid
			}
		}

		scope:scheme = {
			end_scheme = yes
		}
	}

	option = {
		name = sway_outcome.1004.b 

		trigger = {
			NOR = {
				has_trait = vengeful
				has_trait = arrogant
				has_trait = paranoid
			}
		}

		scope:scheme = {
			end_scheme = yes
		}
	}
}


#################################
# Negative Outcomes
# 2000-2999
#################################

#Diplomatic misunderstanding
	#by Petter Vilberg
sway_outcome.2001 = {
	type = character_event
	title = sway_outcome.2001.t
	desc = {
		desc = sway_outcome.2001.opening
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:target = {
						OR = {
							is_of_major_interest_to_root_trigger = yes
							is_of_minor_interest_to_root_trigger = yes
						}
						NOT = {
							has_relation_rival = root
						}
					}
				}
				desc = sway_outcome.2001.not_interested_relation
			}
			triggered_desc = {
				trigger = {
					scope:target = {
						possibly_interested_in_character_trigger = {
							CHARACTER = root
						}
					}
				}
				desc = sway_outcome.2001.not_interested_romantically
			}
			random_valid = {
				desc = sway_outcome.2001.not_interested_horses
				desc = sway_outcome.2001.not_interested_toll_exemptions
				desc = sway_outcome.2001.not_interested_friend
				triggered_desc = {
					trigger = {
						OR = { religion = religion:eastern_orthodox_religion religion = religion:catholic_religion religion = religion:protestant_religion }
						OR = { scope:target.religion = religion:eastern_orthodox_religion scope:target.religion = religion:catholic_religion scope:target.religion = religion:protestant_religion }
					}
					desc = sway_outcome.2001.not_interested_relics
				}
			}
		}
		desc = sway_outcome.2001.end
	}
	theme = sway_scheme
	left_portrait = {
		character = scope:target
		animation = eyeroll
	}
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	override_background = {
		trigger = { is_travelling_not_at_activity = yes }
		reference = terrain_travel
	}
	override_background = {
		trigger = { is_travelling_at_activity = yes }
		reference = ep2_activity
	}
	
	trigger = {
		NOT = {
			has_character_flag = had_event_sway_outcome_2001
		}
		NOR = {
			has_relation_lover = scope:target
			has_relation_friend = scope:target
			any_consort = {
				this = scope:target
			}
			betrothed ?= scope:target

		}
	}

	immediate = {
		add_character_flag = {
			flag = had_event_sway_outcome_2001
			years = 5
		}
	}

	option = {
		name = sway_outcome.2001.a
		scope:target = {
			add_opinion = {
				target = scope:owner
				modifier = sway_blocker_opinion
				opinion = -10
			}
		}
		scope:scheme = {
			end_scheme = yes
		}
	}
}


#They think you're plotting against them
	#by Linnéa Thimrén
sway_outcome.2002 = {
	type = character_event
	title = sway_outcome.2002.t
	desc = sway_outcome.2002.desc
	theme = sway_scheme
	left_portrait = scope:target
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	override_background = {
		trigger = { is_travelling_not_at_activity = yes }
		reference = terrain_travel
	}
	override_background = {
		trigger = { is_travelling_at_activity = yes }
		reference = ep2_activity
	}
	
	trigger = {
		NOT = {
			has_character_flag = had_event_sway_outcome_2002
		}
	}

	weight_multiplier = {
		base = 0.75
		modifier = {
			add = 0.75
			has_trait = paranoid
		}
	}

	immediate = {
		add_character_flag = {
			flag = had_event_sway_outcome_2002
			years = 5
		}
	}

	option = {
		name = sway_outcome.2002.a
		scope:target = {
			add_opinion = {
				target = scope:owner
				modifier = sway_blocker_opinion
				opinion = -10
			}
			add_character_modifier = {
				modifier = more_vigilant_recistance_modifier
				years = 5
			}
		}
		scope:scheme = {
			end_scheme = yes
		}
	}
}
