﻿murder = {
	# Basic Setup
	skill = intrigue
	desc = murder_desc_general
	success_desc = "MURDER_SUCCESS_DESC"
	discovery_desc = "MURDER_DISCOVERY_DESC"
	icon = icon_scheme_murder
	illustration = "gfx/interface/illustrations/event_scenes/corridor.dds"
	category = hostile
	target_type = character
	is_secret = yes
	maximum_breaches = 5
	cooldown = { years = 10 }

	# Parameters
	speed_per_skill_point = t2_spsp_owner_value
	speed_per_target_skill_point = t2_spsp_target_value
	base_progress_goal = t2_base_phase_length_value
	maximum_secrecy = 95
	base_maximum_success = t2_base_max_success_value
	phases_per_agent_charge = 1
	success_chance_growth_per_skill_point = t2_scgpsp_value
	
	# Core Triggers
	allow = {
		age >= 14
		is_imprisoned = no
		any_held_title = {
			tier >= tier_barony
		}
	}
	valid = {
		is_incapable = no
		trigger_if = {
			limit = {
				is_parent_of = scope:target
				NOT = {
					has_trait_with_flag = can_murder_own_children
				}
			}
			NOT = { is_parent_of = scope:target }
		}
		custom_description = {
			object = scope:target
			text = "I_have_imprisoned_target"
			scope:target = {
				imprisoner != scope:owner
			}
		}
		custom_description = {
			object = scope:target
			text = i_have_been_caught_trying_to_murder_target
			scope:target = {
				NOT = {
					has_opinion_modifier = {
						target = prev
						modifier = murder_personal_grudge_opinion
					}
				}
			}
		}
		scope:target = {
			OR = {
				exists = location
				in_diplomatic_range = scope:owner
			}
		}
		# Special AI exceptions
		NOT = {
			scope:owner = {
				is_ai = yes
				has_opinion_modifier = {
					target = scope:target
					modifier = repentant_opinion
				}
			}
		}
		# Events
		custom_tooltip = {
			text = guilt_fever_tt
			NOT = { has_character_flag = guilt_fever_murder_cd }
		}
	}

	# Agents
	agent_leave_threshold = -25
	agent_join_chance = {
		base = 0
		
		ai_agent_join_chance_basic_suite_modifier = yes
		ai_agent_join_chance_hostile_grievous_modifier = yes
		
		cc_ai_agent_join_chance_murder = yes
	}
	agent_groups_owner_perspective = { courtiers guests scripted_relations }
	agent_groups_target_character_perspective = { courtiers vassals }
	valid_agent = { is_valid_agent_standard_trigger = yes }

	odds_prediction = {
		add = hostile_scheme_base_odds_prediction_target_is_char_value
		add = odds_skill_contribution_intrigue_value
		add = agent_groups_owner_perspective_value
		add = agent_groups_target_character_perspective_value
		add = odds_variables_contribution_murder
		add = odds_murder_scheme_misc_value
		min = 0
	}

	# Base Chances
	base_success_chance = {
		base = 0
		scheme_type_skill_success_chance_modifier = { SKILL = INTRIGUE }
		
		hostile_scheme_base_chance_modifier = yes

		# Countermeasures.
		apply_calculated_scheme_success_chance_adjustments_modifier = yes
		
		# Your dark arts advisor is helping you out
		modifier = {
			add = 15
			desc = "ACHMACH_MURDER_BONUS"
			scope:owner = {
				has_variable = achmach_murder_help_var
				any_councillor = {
					has_variable = achmach_murder_help_councillor_var
				}
			}
		}
		
		# As Temüjin, you swore to murder Jamukha
		modifier = {
			add = 50
			desc = "TEMUJIN_JAMUKHA_MURDER_BONUS"
			scope:owner = {
				exists = var:temujin_jamukha_murder_var
				var:temujin_jamukha_murder_var = scope:target
			}
		}

		# Imaginary friend told you to kill them
		modifier = {
			add = 50
			desc = "IMAGINARY_FRIEND_MURDER_BONUS"
			scope:owner = {
				exists = var:imaginary_friend_murder_target
				var:imaginary_friend_murder_target = scope:target
			}
		}
		
		# They crowned you king/queen of fools
		modifier = {
			add = 20
			desc = "MURDER_FOOL_NEMESIS_BONUS"
			scope:owner = {
				exists = var:festival_nemesis_fool_var
				var:festival_nemesis_fool_var = scope:target
			}
		}
		
		# You found their escape tunnel
		modifier = {
			add = 100
			desc = "SCHEME_DISCOVERED_ESCAPE_TUNNEL"
			scope:owner = {
				exists = var:discovered_escape_tunnel_of
				var:discovered_escape_tunnel_of = scope:target
			}
		}
		
		# You heard them explain their plan to your camp followers
		modifier = {
			add = 50
			desc = "SCHEME_ET_TU_BRUTE"
			scope:owner = {
				exists = var:et_tu_brute_var
				var:et_tu_brute_var = scope:target
			}
		}
		
		# You know where their chamber is
		modifier = {
			add = 50
			desc = "SCHEME_WNIGHT_VICTIM_CHAMBER"
			scope:owner = {
				exists = var:wnight_chandelier_murder_var
				var:wnight_chandelier_murder_var = scope:target
			}
		}

		modifier = {
			add = 10
			scope:owner = { has_trait = lifestyle_herbalist }
			desc = MURDER_HERBALIST_BONUS
		}

		modifier = {
			add = -50
			scope:target = {				
				has_opinion_modifier = {
					target = scope:owner
					modifier = attempted_murder_me_crime
				}
			}
			desc = HAS_ATTEMPTED_TO_MURDER_TARGET_BEFORE
		}
		
		# Spiritual Head of Faith
		modifier = {
			add = -50
			desc = "SCHEME_VS_SPIRITUAL_HOF"
			scope:target = {
				faith = scope:owner.faith
				faith = {
					has_doctrine = doctrine_spiritual_head
				}
				faith = {
					religious_head ?= {
			 			this = scope:target
			 		}
				}
			}
		}

		# Sponsored Inspiration
		modifier = {
			add = -25
			desc = target_has_sponsored_inspiration
			scope:target = {
				inspiration ?= { exists = inspiration_sponsor }
			}
		}

		# Family Feud
		house_feud_hostile_scheme_success_modifier = yes
		
		# At War
		first_valid = {
			modifier = {
				add = -50
				desc = "SCHEME_AT_WAR"
				scope:target = {
					is_at_war_with = scope:owner
				}
			}
			modifier = {
				add = -25
				scope:target = {
					is_playable_character = no
					liege ?= {
						is_at_war_with = scope:owner
					}
				}
				desc = "SCHEME_AT_WAR_WITH_LIEGE"
			}
			modifier = {
				add = -25
				scope:target = {
					is_playable_character = yes
					liege ?= {
						is_at_war_with = scope:owner
					}
				}
				desc = "SCHEME_AT_WAR_WITH_LIEGE"
			}
		}

		# Diarchs are better at schemes within their liege's realm
		diarch_scheming_within_realm_bonus_modifier = yes

		# Tailor
		
		modifier = {
			add = 10
			scope:owner = {
				has_character_modifier = tournament_tailor_mixup_scheme_modifier
				exists = var:tailor_mixup_house
				exists = scope:target.house
				var:tailor_mixup_house = scope:target.house
			}
			desc = "tournament_tailor_mixup_scheme_modifier_value"
		}

		modifier = {
			add = 10
			desc = feast_learnt_habits_modifier.tt
			scope:owner = {
				any_scheme = {
					type = murder
					scheme_target_character = scope:target
					has_scheme_modifier = feast_learnt_habits_modifier
				}
			}
		}

		# Caliph protection
		modifier = {
			add = -200
			scope:target = {
				has_character_modifier = fp3_struggle_caliph_super_suspicious_modifier
			}
			desc = has_fp3_struggle_caliph_super_suspicious_modifier

		}

		# Events
		modifier = {
			add = -50
			scope:target = {
				has_character_modifier = cant_poison_soup_modifier
			}
			desc = cant_poison_soup_modifier_value
		}

		modifier = {
			scope:target = {
				exists = court_owner
				court_owner = {
					has_character_flag = keeper_of_the_harem_maintaining_decorum
				}
				is_consort_of = court_owner
				NOT = {
					is_consort_of = scope:owner
				}
			}
			add = -50
		}

		# Distance Penalty
		ttd_minor_distance_success_chance_modifier = yes
	}
	base_secrecy = {
		add = secrecy_base_value
		add = countermeasure_apply_secrecy_maluses_value
		add = secrecy_charting_realm_increase_value
	}

	# On Actions
	on_start = {
		set_variable = {
			name = apply_countermeasures
			value = flag:calculating
		}
		add_scheme_starting_opportunities_intrigue_effect = yes
		# Fallback agents — a balanced config if you start the scheme from script.
		if = {
			limit = {
				scheme_owner = {
					NOT = { has_variable = agents_added }
				}
			}
			add_agent_slot = agent_assassin
			add_agent_slot = agent_assassin
			add_agent_slot = agent_thug
			add_agent_slot = agent_infiltrator
			add_agent_slot = agent_alibi
		}
		else = {
			scheme_owner = { remove_variable = agents_added }
		}
		scheme_owner = {
			if = {
				limit = {
					domicile ?= { has_domicile_parameter = camp_unlocks_poisoner_scheme_agents }
				}
				root = { add_agent_slot = agent_poisoner }
			}
		}
	}
	on_phase_completed = {
		suppress_scheme_follow_up_event_till_input_given_effect = yes
		murder_scheme_prep_effect = yes
		cap_schemes_and_fire_reminders_effect = yes
	}
	on_hud_click  = { murder_scheme_prep_effect = yes }
	on_semiyearly = {
		if = {
			limit = {
				scheme_owner = { is_ai = yes }
			}
			murder_scheme_prep_effect = yes
			purge_ai_scheme_slots_effect = yes
		}
	}
	on_monthly = {
		hostile_scheme_monthly_discovery_chance_effect = yes
		if = {
			limit = {
				NOT = { exists = scope:discovery_event_happening }
			}			
			scheme_owner = {
				trigger_event = {
					on_action = murder_ongoing
				}
			}
		}
	}
	on_invalidated = {
		scheme_target_character = {
			save_scope_as = target
		}
		scheme_owner = {
			save_scope_as = owner
		}

		if = { # If the target is part of the imaginary friend story cycle, fire this invalidation event, otherwise fire one of the normal ones
			limit = {
				scope:target = {
					is_alive = no
					killer != scope:owner
				}
				scope:owner = { var:imaginary_friend_murder_target ?= scope:target }
			}
			scope:owner = {
				trigger_event = bp2_yearly.2023
			}
		}
		else = {
			if = { #Did the character die in another way?
				limit = {
					scope:target = {
						is_alive = no
						killer != scope:owner
					}
				}
				scope:owner = {
					trigger_event = murder_outcome.2000
				}
			}

			if = { #Did the character move outside of diplomatic range
				limit = {
					scope:target = {
						NOT = { in_diplomatic_range = scope:owner }
					}
				}
				scope:owner = {
					trigger_event = murder_outcome.2500
				}
			}
		}
	}
}
