﻿sway = {
	
	skill = diplomacy
	desc = sway_desc_general
	# cooldown = { months = 2 }
	uses_agents = no
	power_per_skill_point = 8
	spymaster_power_per_skill_point = 0	
	resistance_per_skill_point = 0
	spymaster_resistance_per_skill_point = 0
	uses_resistance = no
	minimum_progress_chance = 40
	maximum_progress_chance = 95
	minimum_success = 20
	maximum_success = 95
	icon = icon_scheme_personal
	
	allow = {
		age >= 12
		scope:target = {
			is_adult = yes
			is_imprisoned = no
		}
		is_imprisoned = no
		
		#Have I been blocked from targeting this character?
		custom_description = { #Permanent
			text = sway_blocked
			object = scope:target

			NOT = {
				scope:target = {
					has_opinion_modifier = {
						modifier = sway_blocker_opinion
						target = scope:owner
					}
				}
			}
		}

		#AI blockers
		trigger_if = {
			limit = { is_ai = yes }

			scope:target = {
				OR = {
					opinion = {
						target = scope:owner
						value <= 50
					}
					AND = {
						is_vassal_of = scope:owner
						is_a_faction_member = yes
						# [LTAF]
						joined_faction = { NOT = { faction_is_type = loyalist_faction }}
						# [/LTAF]
					}
				}
				trigger_if = { #So players don't get spammed by AI sway
					limit = {
						is_ai = no
					}
					NOT = {
						any_targeting_scheme = {
							scheme_type = sway
						}
					}
				}
			}
		}
	}
	
	valid = {
		NOT = { is_at_war_with = scope:target }
		scope:target = {
			OR = {
				exists = location
				in_diplomatic_range = scope:owner
			}
		}
	}

	base_success_chance = {
		base = 50
		#SCHEME OWNER#
		#Language
		modifier = {
			add = 5
			desc = YOU_SPEAK_THE_LANGUAGE
			scope:owner = { knows_language_of_culture = scope:target.culture }
		}
		modifier = {
			add = 8
			scope:owner = { has_trait = diplomat }
			desc = SCHEME_BEFRIEND_MY_LIFESTYLE
		}
		modifier = {
			add = -5
			scope:owner = { is_adult = no }
			desc = I_AM_A_CHILD
		}
		modifier = {
			add = -10
			desc = previously_swayed
			scope:target = {
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_sway_opinion
					value >= 25
				}
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_sway_opinion
					value < 40
				}
			}
		}
		modifier = {
			add = -20
			desc = previously_swayed
			scope:target = {
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_sway_opinion
					value >= 40
				}
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_sway_opinion
					value < 55
				}
			}
		}
		modifier = {
			add = -30
			desc = previously_swayed
			scope:target = {
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_sway_opinion
					value >= 55
				}
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_sway_opinion
					value < 70
				}
			}
		}
		modifier = {
			add = -40
			desc = previously_swayed
			scope:target = {
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_sway_opinion
					value >= 70
				}
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_sway_opinion
					value < 85
				}
			}
		}
		modifier = {
			add = -50
			desc = previously_swayed
			scope:target = {
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_sway_opinion
					value >= 85
				}
			}
		}
		compare_modifier = {
			desc = sway_my_diplomacy
			target = scope:owner
			value = diplomacy
			multiplier = 2
		}
		#Reduction of power against foreign rulers
		modifier = {
			desc = sway_foreign_target
			add = -20
			NOT = { scope:target.top_liege = scope:owner.top_liege }
		}

		# Dynasty Kin Personal Scheme Success Chance on Dynasty Perk
		modifier = {
			add = kin_legacy_4_success_chance
			desc = KIN_LEGACY_DESC
			exists = scope:owner.dynasty
			scope:owner.dynasty = {
				has_dynasty_perk = kin_legacy_4
			}
			scope:target.dynasty = scope:owner.dynasty
		}

		# House Personal Scheme Success Chance on Cultural Parameter
		modifier = {
			add = cultural_house_personal_scheme_success_chance
			desc = KIN_PARAMETER_DESC
			exists = scope:owner.house
			exists = scope:target.house
			scope:owner.culture = {
				has_cultural_parameter = cultural_house_personal_scheme_success_chance
			}
			scope:target.house = scope:owner.house
		}

		#Rival penalty
		modifier = {
			add = -30
			desc = sway_my_rival
			scope:owner = { has_relation_rival = scope:target }
		}

		#Rank tier difference (landed target/target whose liege doesn't care)
		modifier = { #3 or more higher rank
			add = 50
			desc = "HIGHER_RANK_THAN_SCHEME_TARGET"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = no
				NOT = {
					is_theocratic_lessee = yes
				}
			}
			scope:owner = {
				tier_difference = {
					target = scope:target
					value >= 3
				}
			}
		}
		modifier = { #2 higher rank
			add = 25
			desc = "HIGHER_RANK_THAN_SCHEME_TARGET"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = no
				NOT = {
					is_theocratic_lessee = yes
				}
			}
			scope:owner = {
				tier_difference = {
					target = scope:target
					value = 2
				}
			}
		}
		modifier = { #1 higher rank
			add = 10
			desc = "HIGHER_RANK_THAN_SCHEME_TARGET"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = no
				NOT = {
					is_theocratic_lessee = yes
				}
			}
			scope:owner = {
				tier_difference = {
					target = scope:target
					value = 1
				}
			}
		}
		modifier = { #1 lower rank
			add = -10
			desc = "LOWER_RANK_THAN_SCHEME_TARGET"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = no
			}
			scope:owner = {
				tier_difference = {
					target = scope:target
					value = -1
				}
			}
		}
		modifier = { #2 lower rank
			add = -25
			desc = "LOWER_RANK_THAN_SCHEME_TARGET"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = no
			}
			scope:owner = {
				tier_difference = {
					target = scope:target
					value = -2
				}
			}
		}
		modifier = { #3 or less lower rank
			add = -50
			desc = "LOWER_RANK_THAN_SCHEME_TARGET"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = no
			}
			scope:owner = {
				tier_difference = {
					target = scope:target
					value <= -3
				}
			}
		}
		#Rank tier difference (unlanded character)
		modifier = { #3 or more higher rank
			add = 15
			desc = "HIGHER_RANK_THAN_SCHEME_TARGET_LIEGE"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = yes
				NOT = {
					is_theocratic_lessee = yes
				}
			}
			scope:owner = {
				tier_difference = {
					target = scope:target.liege
					value >= 3
				}
			}
		}
		modifier = { #2 higher rank
			add = 10
			desc = "HIGHER_RANK_THAN_SCHEME_TARGET_LIEGE"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = yes
				NOT = {
					is_theocratic_lessee = yes
				}
			}
			scope:owner = {
				tier_difference = {
					target = scope:target.liege
					value = 2
				}
			}
		}
		modifier = { #1 higher rank
			add = 5
			desc = "HIGHER_RANK_THAN_SCHEME_TARGET_LIEGE"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = yes
				NOT = {
					is_theocratic_lessee = yes
				}
			}
			scope:owner = {
				tier_difference = {
					target = scope:target.liege
					value = 1
				}
			}
		}
		modifier = { #1 lower rank
			add = -5
			desc = "LOWER_RANK_THAN_SCHEME_TARGET_LIEGE"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = yes
			}
			scope:owner = {
				tier_difference = {
					target = scope:target.liege
					value = -1
				}
			}
		}
		modifier = { #2 lower rank
			add = -10
			desc = "LOWER_RANK_THAN_SCHEME_TARGET_LIEGE"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = yes
			}
			scope:owner = {
				tier_difference = {
					target = scope:target.liege
					value = -2
				}
			}
		}
		modifier = { #3 or less lower rank
			add = -15
			desc = "LOWER_RANK_THAN_SCHEME_TARGET_LIEGE"
			scope:target = {
				personal_scheme_success_compare_target_liege_tier_trigger = yes
			}
			scope:owner = {
				tier_difference = {
					target = scope:target.liege
					value <= -3
				}
			}
		}
		modifier = { # Realm Priests care about Piety Level
			add = {
				add = 5
				multiply = scope:owner.piety_level
			}
			desc = "I_AM_PIOUS"
			scope:owner.piety_level > 1
			scope:target = {
				is_theocratic_lessee = yes
			}
		}
		modifier = { # Realm Priests care about Piety Level
			add = -50
			desc = "I_AM_PIOUS"
			scope:owner.piety_level < 0
			scope:target = {
				is_theocratic_lessee = yes
			}
		}
		#Religious Heads
		modifier = {
			add = -50
			desc = "SCHEME_VS_RELIGIOUS_HEAD"
			scope:target = {
				faith = scope:owner.faith
				faith = {
					exists = religious_head
					religious_head = {
			 			this = scope:target
			 		}
				}
			}
		}

		# Thicker Than Water Perk
		modifier = {
			add = thicker_than_water_bonus
			desc = BEFRIEND_THICKER_THAN_WATER_PERK_DESC
			scope:owner = {
				has_perk = thicker_than_water_perk
			}
			scope:target = {
				is_close_or_extended_family_of = scope:owner
			}
		}
		
		#Family Feud
		house_feud_sway_scheme_success_modifier = yes
	}

	on_ready = {
		random = {
			chance = scope:scheme.scheme_success_chance

			save_scope_value_as = {
				name = scheme_successful
				value = yes
			}
		}
		scope:owner = {
			if = {
				limit = {
					exists = scope:scheme_successful
				}
				trigger_event = {
					on_action = sway_success
				}
			}
			else = {
				trigger_event = {
					on_action = sway_failure
				}	
			}
		}
	}

	on_invalidated = {
		scheme_target = {
			save_scope_as = target
		}
		scheme_owner = {
			save_scope_as = owner
		}
		if = {
			limit = {
				scope:target = { is_alive = no }
			}
			scope:owner = {
				send_interface_toast = {
					title = sway_invalidated_title
					left_icon = scope:target
					custom_tooltip = sway_invalidated_dead
				}
			}
		}
		else_if = {	
			limit = {
				scope:owner = {
					is_at_war_with = scope:target
				}
			}
			scope:owner = {
				send_interface_toast = {
					title = sway_invalidated_title
					left_icon = scope:target
					custom_tooltip = sway_invalidated_war
				}
			}
		}

		if = {
			limit = {
				scope:target = { 
					NOT = { in_diplomatic_range = scope:owner } 
				}
			}
			scope:owner = {
				send_interface_toast = {
					title = sway_invalidated_title
					left_icon = scope:target
					custom_description_no_bullet = {
						object = scope:target
						text = scheme_target_not_in_diplomatic_range
					}
				}
			}
		}
	}

	on_monthly = {
		save_scope_as = scheme
		scheme_target = { save_scope_as = target }
		scheme_owner = {
			save_scope_as = owner
			trigger_event = { on_action = sway_ongoing }
		}
	}
	success_desc = "SWAY_SUCCESS_DESC"
}
