﻿coerce_tributary = {
	# Basic Setup
	skill = learning
	desc = "coerce_tributary_desc_general"
	success_desc = "COERCE_TRIBUTARY_SUCCESS_DESC"
	icon = icon_scheme_coerce_tributary
	illustration = "gfx/interface/illustrations/event_scenes/corridor.dds"
	category = political
	target_type = character
	is_secret = no
	cooldown = { years = 5 }

	# Parameters
	speed_per_skill_point = t2_spsp_owner_value
	spymaster_speed_per_skill_point = t2_spsp_owner_spy_value
	target_spymaster_speed_per_skill_point = 0
	tier_speed = 1
	base_progress_goal = t3_base_phase_length_value
	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 = {
		is_adult = yes
		is_imprisoned = no
		government_has_flag = government_is_mandala
		custom_tooltip = {
			text = unlock_coerce_tributary_scheme_tt
			house ?= { has_house_head_parameter = unlock_coerce_tributary_scheme }
		}
		is_house_head = yes
	}

	valid = {
		scope:target = {
			is_ai = yes
			is_independent_ruler = yes
			is_landed = yes
			is_alive = yes
			in_diplomatic_range = scope:owner
			this != scope:owner
			custom_tooltip = {
				text = target_is_your_subject.tt
				overlord != scope:owner
			}
		}
		scope:owner = {
			government_has_flag = government_is_mandala
		}
	}

	# Agents
	agent_leave_threshold = -25
	agent_join_chance = {
		base = 0
		ai_agent_join_chance_basic_suite_modifier = yes
		ai_agent_join_chance_personal_general_suite_modifier = yes
	}
	valid_agent = { is_valid_agent_standard_trigger = yes } #Is adult, is NOT imprisoned
	agent_groups_owner_perspective = { scripted_relations peer_vassals vassals family }
	agent_groups_target_character_perspective = { peer_vassals vassals scripted_relations family }

	odds_prediction = {
		add = 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_mandala_creation_aspect_value
		add = odds_mandala_serenity_aspect_value
		add = odds_mandala_destruction_aspect_value
		add = odds_mandala_trickery_aspect_value

		add = odds_mandala_target_creation_aspect_value
		add = odds_mandala_target_serenity_aspect_value
		add = odds_mandala_target_destruction_aspect_value
		add = odds_mandala_target_trickery_aspect_value

		add = odds_mandala_target_suzerain_creation_aspect_value
		add = odds_mandala_target_suzerain_serenity_aspect_value
		add = odds_mandala_target_suzerain_destruction_aspect_value
		add = odds_mandala_target_suzerain_trickery_aspect_value

		add = odd_dislikes_suzerain_value
		add = odds_no_suzerain_value
		add = odds_not_same_mandala_aspect_value
		add = odds_you_are_disbelieved_mandala_value
		add = odds_their_realm_size_value
		add = odds_their_suzerain_radiance_value
		min = 0
	}

	# Base Chances
	base_success_chance = {
		base = 10

		#Positive
		scheme_type_skill_success_chance_modifier = { SKILL = LEARNING }

		owner_aspect_skill_modifier = yes
		
		target_share_aspect_skill_modifier = yes

		modifier = {
			trigger_if = {
				limit = {
					scope:target = { is_tributary = yes }
				}
				scope:target = {
					opinion = {
						target = suzerain
						value < low_negative_opinion
					}
				}
			}
			trigger_else = { always = no }
			desc = SCHEME_TARGET_DISLIKES_SUZERAIN
			add = 10
		}

		modifier = {
			scope:target = { is_tributary = no }
			desc = SCHEME_TARGET_HAS_NO_SUZERAIN
			add = 10
		}

		#Negative
		not_share_aspect_modifier = yes
		
		target_suzerain_share_aspect_skill_modifier = yes

		modifier = {
			scope:owner = { has_character_modifier = disbelieved_mandala_modifier }
			desc = is_disbelieved_mandala
			add = -10
		}

		modifier = {
			scope:owner.realm_size < scope:target.realm_size
			desc = SCHEME_TARGET_REALM_SIZE
			add = {
				add = scope:owner.realm_size
				subtract = scope:target.realm_size
			}		
		}

		modifier = {
			scope:target = { 
				is_tributary = yes
				suzerain = { 
					has_mandala_capital_trigger = yes
					mandala_radiance_value > scope:owner.mandala_radiance_value
				}
			}
			desc = SUZERAIN_HAS_GREATER_RADIANCE
			add = {
				value = scope:target.suzerain.mandala_radiance_value
				subtract = scope:owner.mandala_radiance_value
				multiply = -5
			}
		}

		# Countermeasures.
		apply_indirect_scheme_success_chance_adjustments_modifier = yes

		# Distance Penalty
		ttd_medium_distance_success_chance_modifier = yes
	}

	# On Actions
	on_start = {
		set_variable = {
			name = apply_countermeasures
			value = flag:indirect
		}
		# 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_diplomat
			add_agent_slot = agent_diplomat
			add_agent_slot = agent_scribe
			add_agent_slot = agent_cleric
			add_agent_slot = agent_cleric
		}
	}
	on_phase_completed = {
		suppress_scheme_follow_up_event_till_input_given_effect = yes
		coerce_tributary_scheme_prep_effect = yes
		cap_schemes_and_fire_reminders_effect = yes
	}
	on_hud_click = { coerce_tributary_scheme_prep_effect = yes }
	on_monthly = {
		scheme_owner = {
			trigger_event = {
				on_action = coerce_tributary_ongoing
				days = { 1 30 }
			}
		}
	}
	on_semiyearly = {
		if = {
			limit = {
				scheme_owner = { is_ai = yes }
			}
			coerce_tributary_scheme_prep_effect = yes
			purge_ai_scheme_slots_effect = yes #Leaving this in, for now
		}
	}

	## Invalidation
	on_invalidated = {
		scheme_target_character = {
			save_scope_as = target
		}
		scheme_owner = {
			save_scope_as = owner
			send_interface_toast = {
				type = event_toast_effect_neutral
				title = coerce_tributary_invalidated_title
				left_icon = scope:target
				if = { # Invalidation due to death
					limit = {
						scope:target = { is_alive = no }
						NOT = { block_death_event_trigger = { DEAD = scope:target } }
					}
					custom_tooltip = scheme_target_died
				}
				else_if = { # Diplo range: is it relevant here?
					limit = {
						scope:target = { 
							NOT = { in_diplomatic_range = scope:owner } 
						}
					}
					custom_tooltip = scheme_target_not_in_diplomatic_range
				}
				else_if = { # I'm not Mandala
					limit = {
						scope:owner = {
							NOT = { government_has_flag = government_is_mandala }
						}
					}
					custom_tooltip = scheme_owner_not_mandala
				}
				else_if = { # They're not independent anymore
					limit = {
						scope:target = { is_independent_ruler = no }
					}
					custom_tooltip = scheme_target_not_independent
				}
				else_if = { # They're actually my tributary, somehow?
					limit = {
						scope:target = { is_tributary_of = scope:owner }
					}
					custom_tooltip = scheme_target_tributary_of_owner
				}
				else = {
					custom_tooltip = scheme_cancelled
				}
			}
		}
	}
}
