﻿poison_opinion = {
	# Basic Setup
	skill = intrigue
	desc = poison_opinion_desc_general
	success_desc = "POISON_OPINION_SUCCESS_DESC"
	icon = icon_scheme_poison_opinion
	illustration = "gfx/interface/illustrations/event_scenes/corridor.dds"
	target_type = character
	is_secret = no
	is_basic = yes
	
	# Parameters
	speed_per_skill_point = -2.5
	spymaster_speed_per_skill_point = 0	
	uses_resistance = no
	base_progress_goal = 365
	base_maximum_success = 95
	minimum_success = 20
	
	# Core Triggers
	allow = {
		age >= 12
		scope:target = {
			is_adult = yes
			is_imprisoned = no
			is_ai = yes
		}
		is_imprisoned = no
		
		#Have I been blocked from targeting this character?
		custom_description = { #Permanent
			text = poison_opinion_blocked
			object = scope:target

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

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

			scope:target = {
				AND = {
					opinion = {
						target = scope:target.liege
						value >= 0
					}
					opinion = {
						target = scope:target.liege
						value <= 50
					}
				}
				trigger_if = { #So players don't get spammed by AI sway
					limit = {
						is_ai = no
					}
					NOT = {
						any_targeting_scheme = {
							scheme_type = poison_opinion
						}
					}
				}
			}
		}
	}
	valid = {
		is_incapable = no
		NOT = { is_at_war_with = scope:target }
		scope:target = {
			is_independent_ruler = no
		}
		scope:target = {
			OR = {
				exists = location
				in_diplomatic_range = scope:owner
			}
		}
		# Femme Fatale employed
		custom_description = {
			text = have_femme_fatale_court_position
			exists = scope:owner.court_position:femme_fatale_court_position
		}
		# Femme Fatale Poisoning Opinion
		trigger_if = {
			limit = { exists = scope:owner.court_position:femme_fatale_court_position }
			custom_description = {
				text = femme_fatale_poisoning_opinion
				subject = scope:owner.court_position:femme_fatale_court_position
				scope:owner = {
					exists = var:femme_fatale_is_poisoning_opinion
					var:femme_fatale_is_poisoning_opinion = yes
				}
			}
		}
	}

	odds_prediction = {
		add = base_odds_prediction_target_is_char_value
		add = odds_skill_contribution_intrigue_value
		add = odds_poison_opinion_scheme_misc_value
		min = 0
	}

	# Base Chances
	base_success_chance = {
		base = 30
		modifier = {
			add = {
				value = scope:owner.intrigue
				floor = yes
			}
			desc = SCHEME_YOUR_INTRIGUE
		}

		modifier = {
			add = {
				value = scope:owner.court_position:femme_fatale_court_position.intrigue
				floor = yes
			}
			desc = SCHEME_FEMME_FATALE_INTRIGUE
		}
		
		# Femme Fatale helps
		modifier = {
			desc = FEMME_FATALE_HELPS_BONUS
			add = 5
			scope:owner.court_position:femme_fatale_court_position = { 
				aptitude = {
					court_position = femme_fatale_court_position
					value == 1
				}
			}
		}
		modifier = {
			desc = FEMME_FATALE_HELPS_BONUS
			add = 10
			scope:owner.court_position:femme_fatale_court_position = { 
				
				aptitude = {
					court_position = femme_fatale_court_position
					value == 2
				}
			}
		}

		modifier = {
			desc = FEMME_FATALE_HELPS_BONUS
			add = 15
			scope:owner.court_position:femme_fatale_court_position = { 
				aptitude = {
					court_position = femme_fatale_court_position
					value == 3
				}
			}
		}

		modifier = {
			desc = FEMME_FATALE_HELPS_BONUS
			add = 20
			scope:owner.court_position:femme_fatale_court_position = {
				aptitude = {
					court_position = femme_fatale_court_position
					value >= 4
				}
			}
		}

		# Enemy Femme Fatale hurts
		modifier = {
			desc = SOOTHE_AND_SURVEIL_HURTS_BONUS
			add = -5
			scope:target.liege = { 
				court_position:femme_fatale_court_position ?= {
					aptitude = {
						court_position = femme_fatale_court_position
						value == 1
					}
				}
				exists = var:femme_fatale_is_soothing_and_surveiling
				var:femme_fatale_is_soothing_and_surveiling = yes
			}
		}

		modifier = {
			desc = SOOTHE_AND_SURVEIL_HURTS_BONUS
			add = -10
			scope:target.liege = { 
				court_position:femme_fatale_court_position ?= {
					aptitude = {
						court_position = femme_fatale_court_position
						value == 2
					}
				}
				exists = var:femme_fatale_is_soothing_and_surveiling
				var:femme_fatale_is_soothing_and_surveiling = yes
			}
		}

		modifier = {
			desc = SOOTHE_AND_SURVEIL_HURTS_BONUS
			add = -15
			scope:target.liege = { 
				court_position:femme_fatale_court_position ?= {
					aptitude = {
						court_position = femme_fatale_court_position
						value == 3
					}
				}
				exists = var:femme_fatale_is_soothing_and_surveiling
				var:femme_fatale_is_soothing_and_surveiling = yes
			}
		}

		modifier = {
			desc = SOOTHE_AND_SURVEIL_HURTS_BONUS
			add = -20
			scope:target.liege = { 
				court_position:femme_fatale_court_position ?= {
					aptitude = {
						court_position = femme_fatale_court_position
						value == 4
					}
				}
				exists = var:femme_fatale_is_soothing_and_surveiling
				var:femme_fatale_is_soothing_and_surveiling = yes
			}
		}
		
		modifier = {
			add = 5
			desc = YOU_SPEAK_THE_LANGUAGE
			scope:owner = { knows_language_of_culture = scope:target.culture }
		}
		modifier = {
			add = 30
			scope:owner = { has_trait = schemer }
			desc = POISON_OPINION_SCHEMER
		}
		modifier = {
			add = 20
			scope:owner = { has_trait = deceitful }
			desc = POISON_OPINION_DECEITFUL
		}
		modifier = {
			add = 20
			scope:owner = { has_trait = vengeful }
			desc = POISON_OPINION_VENGEFUL
		}
		modifier = {
			add = -5
			scope:owner = { is_adult = no }
			desc = I_AM_A_CHILD
		}
		modifier = {
			add = 30
			scope:target = { has_trait = deceitful }
			desc = POISON_OPINION_TARGET_DECEITFUL
		}
		modifier = {
			add = 15
			scope:target = { has_trait = vengeful }
			desc = POISON_OPINION_TARGET_VENGEFUL
		}
		modifier = {
			add = 30
			scope:target = { has_trait = ambitious }
			desc = POISON_OPINION_TARGET_AMBITIOUS
		}
		modifier = {
			add = 20
			scope:target = { has_trait = disloyal }
			desc = POISON_OPINION_TARGET_DISLOYAL
		}
		modifier = {
			add = -30
			scope:target = { has_trait = content }
			desc = POISON_OPINION_TARGET_CONTENT
		}
		modifier = {
			add = -15
			scope:target = { has_trait = forgiving }
			desc = POISON_OPINION_TARGET_FORGIVING
		}
		modifier = {
			add = -20
			scope:target = { has_trait = loyal }
			desc = POISON_OPINION_TARGET_LOYAL
		}

		# Negative modifiers
		modifier = {
			add = -20
			scope:owner = { has_trait = craven }
			desc = ROUSE_RABBLE_CRAVEN
		}
		modifier = {
			add = -10
			scope:owner = { has_trait = lazy }
			desc = ROUSE_RABBLE_LAZY
		}
		modifier = {
			add = -20
			scope:owner = { has_trait = shy }
			desc = ROUSE_RABBLE_SHY
		}
		modifier = {
			add = -10
			scope:owner = { has_trait = fickle }
			desc = ROUSE_RABBLE_FICKLE
		}
		modifier = {
			add = -20
			scope:owner = { has_trait = reclusive }
			desc = ROUSE_RABBLE_RECLUSIVE
		}
		modifier = {
			add = -30
			scope:owner = { has_trait = infirm }
			desc = ROUSE_RABBLE_INFIRM
		}
		modifier = {
			add = -10
			desc = previously_poisoned_opinion
			scope:target = {
				has_opinion_modifier = {
					target = scope:target.liege
					modifier = scheme_poison_opinion_opinion
					value >= -20
				}
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_poison_opinion_opinion
					value < 0
				}
			}
		}
		modifier = {
			add = -20
			desc = previously_poisoned_opinion
			scope:target = {
				has_opinion_modifier = {
					target = scope:target.liege
					modifier = scheme_poison_opinion_opinion
					value >= -35
				}
				has_opinion_modifier = {
					target = scope:target.liege
					modifier = scheme_poison_opinion_opinion
					value < -20
				}
			}
		}
		modifier = {
			add = -30
			desc = previously_poisoned_opinion
			scope:target = {
				has_opinion_modifier = {
					target = scope:target.liege
					modifier = scheme_poison_opinion_opinion
					value >= -50
				}
				has_opinion_modifier = {
					target = scope:target.liege
					modifier = scheme_poison_opinion_opinion
					value < -35
				}
			}
		}
		modifier = {
			add = -40
			desc = previously_poisoned_opinion
			scope:target = {
				has_opinion_modifier = {
					target = scope:target.liege
					modifier = scheme_poison_opinion_opinion
					value >= -70
				}
				has_opinion_modifier = {
					target = scope:target.liege
					modifier = scheme_poison_opinion_opinion
					value < -50
				}
			}
		}
		modifier = {
			add = -50
			desc = previously_poisoned_opinion
			scope:target = {
				has_opinion_modifier = {
					target = scope:owner
					modifier = scheme_poison_opinion_opinion
					value < -70 
				}
			}
		}

		#Rival penalty
		modifier = {
			add = -30
			desc = poison_opinion_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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			trigger = { personal_scheme_should_not_evaluate_tier_differences_trigger = yes }
			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
			}
		}

		# Diarchs are better at schemes within their liege's realm
		diarch_scheming_within_realm_bonus_modifier = 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
			 		}
				}
			}
		}

		#Family Feud
		house_feud_sway_scheme_success_modifier = yes
	}

	# On Actions
	on_phase_completed = {
		# Grab our scopes.
		save_scope_as = scheme
		scheme_target_character = { save_scope_as = target }
		scheme_owner = { save_scope_as = owner }
		# Roll our result.
		random = {
			chance = scope:scheme.scheme_success_chance
			save_scope_value_as = {
				name = scheme_successful
				value = yes
			}
		}
		# How'd we do?
		scope:owner = {
			if = {
				limit = { exists = scope:scheme_successful }
				trigger_event = { on_action = poison_opinion_success }
			}
			else = {
				trigger_event = { on_action = poison_opinion_failure }
			}
		}
	}

	on_monthly = {
		save_scope_as = scheme
		scheme_target_character = { save_scope_as = target }
		scheme_owner = {
			save_scope_as = owner
			trigger_event = { on_action = poison_opinion_ongoing }
		}
	}
	on_invalidated = {
		scheme_target_character = {
			save_scope_as = target
		}
		scheme_owner = {
			save_scope_as = owner
		}
		if = {
			limit = {
				scope:target = { is_alive = no }
			}
			scope:owner = {
				send_interface_toast = {
					title = poison_opinion_invalidated_title
					left_icon = scope:target
					custom_tooltip = poison_opinion_invalidated_dead
				}
			}
		}
		else_if = {	
			limit = {
				scope:owner = {
					is_at_war_with = scope:target
				}
			}
			scope:owner = {
				send_interface_toast = {
					title = poison_opinion_invalidated_title
					left_icon = scope:target
					custom_tooltip = poison_opinion_invalidated_war
				}
			}
		}

		if = {
			limit = {
				scope:target = { 
					NOT = { in_diplomatic_range = scope:owner } 
				}
			}
			scope:owner = {
				send_interface_toast = {
					title = poison_opinion_invalidated_title
					left_icon = scope:target
					custom_description_no_bullet = {
						object = scope:target
						text = scheme_target_not_in_diplomatic_range
					}
				}
			}
		}
		# Femme Fatale unemployed
		if = {
			limit = {
				NOT = { exists = scope:owner.court_position:femme_fatale_court_position }
			}
			scope:owner = {
				send_interface_toast = {
					title = poison_opinion_invalidated_title
					left_icon = scope:owner
					custom_tooltip = {
						text = poison_opinion_invalidated_no_femme_fatale
					}
				}
			}
		}
		# Femme Fatale no longer Poisoning Opinion
		if = {
			limit = { 
				exists = scope:owner.court_position:femme_fatale_court_position
				scope:owner.var:femme_fatale_is_poisoning_opinion = no
			}
			scope:owner = {
				send_interface_toast = {
					title = poison_opinion_invalidated_title
					left_icon = scope:owner.court_position:femme_fatale_court_position
					custom_tooltip = {
						subject = scope:owner.court_position:femme_fatale_court_position
						text = poison_opinion_invalidated_not_poisoning_opinion
					}
				}
			}
		}
		if = {
			limit = {
				scope:target = {
					is_independent_ruler = yes
				}
			}
			scope:owner = {
				send_interface_toast = {
					title = poison_opinion_invalidated_title
					left_icon = scope:target
					custom_tooltip = {
						text = poison_opinion_invalidated_no_liege
					}
				}
			}
		}
	}
}
