﻿steal_herd = {
    # Basic Setup
    skill = intrigue
    desc = "steal_herd_desc_general"
    success_desc = "STEAL_HERD_SUCCESS_DESC"
    discovery_desc = "STEAL_HERD_DISCOVERY_DESC"
    icon = icon_scheme_steal_herd 
    illustration = "gfx/interface/illustrations/event_scenes/mpo_hunt_steppe.dds"
    target_type = character
	category = hostile
	is_secret = yes
	maximum_breaches = 5
	cooldown = { years = 3 }

    # Travel Triggers (default no)
	freeze_scheme_when_traveling = yes
	freeze_scheme_when_traveling_target = no

    speed_per_skill_point = t3_spsp_owner_value
	speed_per_target_skill_point = t3_spsp_target_value
	base_progress_goal = 50
	maximum_secrecy = 95
	base_maximum_success = t2_base_max_success_value
	phases_per_agent_charge = 1
	success_chance_growth_per_skill_point = t3_scgpsp_value

    # Core Triggers
	allow = {
		is_landed = yes
		is_adult = yes
		is_imprisoned = no
		government_has_flag = government_is_nomadic
		scope:target = {
			is_landed = yes
            OR = {
                government_has_flag = government_is_nomadic
                government_has_flag = government_is_herder
            }
			highest_held_title_tier >= tier_county
		}
		in_diplomatic_range = scope:target
	}

    valid = {
        is_incapable = no
        NOT = { is_at_war_with = scope:target }
        custom_description = {
			text = steal_herd_blocked_target_none_tt
			object = scope:target
			scope:target = { domicile ?= { herd > 0 } } # Can't steal from someone with no herd
		}
		in_diplomatic_range = scope:target
    }

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

    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 = hostile_scheme_base_odds_prediction_target_is_char_value
		add = odds_steal_herd_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

        # Skill
		compare_modifier = {
			desc = "SCHEME_YOUR_PROWESS"
			value = scope:owner.prowess
			multiplier = 1
		}

        # Repeat
		modifier = {
			add = -50 
			scope:target = {				
				has_opinion_modifier = {
					target = scope:owner
					modifier = attempted_to_steal_herd_crime
				}
			}
			desc = HAS_ATTEMPTED_TO_STEAL_HERD_BEFORE
		}

        #You have a criminal background
		modifier = {
			add = 5
			desc = SCHEME_STEAL_HERD_GALLOWSBAIT
			scope:owner = {
				has_trait = gallowsbait
				has_trait_xp = {
					trait = gallowsbait
					track = thief
					value = 0
				}
			}
		}

        modifier = {
			add = 10
			desc = SCHEME_STEAL_HERD_GALLOWSBAIT
			scope:owner = {
				has_trait = gallowsbait
				has_trait_xp = {
					trait = gallowsbait
					track = thief
					value < 40
				}
                has_trait_xp = {
					trait = gallowsbait
					track = thief
					value > 1
				}
			}
		}

        modifier = {
			add = 10
			desc = SCHEME_STEAL_HERD_GALLOWSBAIT
			scope:owner = {
				has_trait = gallowsbait
				has_trait_xp = {
					trait = gallowsbait
					track = thief
					value >= 40
				}
                NOT = {
                    has_trait_xp = {
                        trait = gallowsbait
                        track = bandit
                        value < 80
                    }
                }
			}
		}

        modifier = {
			add = 15
			desc = SCHEME_STEAL_HERD_GALLOWSBAIT
			scope:owner = {
				has_trait = gallowsbait
				has_trait_xp = {
					trait = gallowsbait
					track = thief
					value >= 80
				}
			}
		}

		modifier = {
			add = 10 
			desc = SCHEME_STEAL_HERD_AMOUNT
			scope:owner = { has_character_flag = steal_herd_low }
		}

		modifier = {
			add = -10 
			desc = SCHEME_STEAL_HERD_AMOUNT
			scope:owner = { has_character_flag = steal_herd_high }
		}

		modifier = {
			scope:target = {
				government_has_flag = government_is_herder 
			}
			add = 10
			desc = SCHEME_STEAL_HERD_IS_HERDER
		}

		# Distance Penalty
		ttd_medium_distance_success_chance_modifier = yes
    }
	base_secrecy = {
		add = secrecy_base_value
		add = countermeasure_apply_secrecy_maluses_value
	}

    on_start = {
		set_variable = {
			name = apply_countermeasures
			value = flag:calculating
		}
		add_scheme_starting_opportunities_intrigue_effect = yes
		if = {
			limit = {
				scheme_owner = {
					NOT = { has_variable = agents_added }
				}
			}
			add_agent_slot = agent_thief
			add_agent_slot = agent_thief
			add_agent_slot = agent_thief
			add_agent_slot = agent_infiltrator
			add_agent_slot = agent_lookout
		}
    }

    # On Actions
	on_phase_completed = {
		suppress_scheme_follow_up_event_till_input_given_effect = yes
		steal_herd_scheme_prep_effect = yes
		cap_schemes_and_fire_reminders_effect = yes
	}
	on_hud_click  = { steal_herd_scheme_prep_effect = yes }
	on_semiyearly = {
		if = {
			limit = {
				scheme_owner = { is_ai = yes }
			}
			steal_herd_scheme_prep_effect = yes
		}
	}
    on_monthly = {
		save_scope_as = scheme
		scheme_owner = { save_scope_as = owner }
		scheme_target_character = { save_scope_as = target }

		hostile_scheme_monthly_discovery_chance_effect = yes

		if = {
			limit = {
				NOT = { exists = scope:discovery_event_happening }
			}			
			scheme_owner = {
				trigger_event = {
					on_action = steal_herd_ongoing
					days = { 1 15 }
				}
			}
		}
	}
    on_invalidated = {
		scheme_target_character = {
			save_scope_as = target
		}
		scheme_owner = {
			save_scope_as = owner
		}
		# Invalidation due to death
		if = {
			limit = {
				scope:target = { is_alive = no }
				scope:owner = { is_alive = yes }
			}
			scope:owner = {
				send_interface_toast = {
					title = steal_herd_invalidated_title
					left_icon = scope:target
					custom_tooltip = scheme_target_died
				}
			}
		}
        # Invalidation due to your war
        if = {	
			limit = {
				scope:owner = { is_at_war = yes }
			}
			scope:owner = {
				send_interface_toast = {
					title = steal_herd_invalidated_title
					left_icon = scope:target
					custom_tooltip = steal_herd_invalidated_war
				}
			}
		}
        # Invalidation due to their war
        if = {	
			limit = {
				scope:target = { is_at_war = yes }
			}
			scope:owner = {
				send_interface_toast = {
					title = steal_herd_invalidated_title
					left_icon = scope:target
					custom_tooltip = steal_herd_invalidated_war_target
				}
			}
		}
        # They migrated away :(
        if = {
			limit = {
				scope:target = { 
					NOT = { in_diplomatic_range = scope:owner } 
				}
			}
			scope:owner = {
				send_interface_toast = {
					title = steal_herd_invalidated_title
					left_icon = scope:target
					custom_description_no_bullet = {
						object = scope:target
						text = scheme_target_not_in_diplomatic_range
					}
				}
			}
		}
        # No more herd
        if = {
			limit = {
				scope:target = { 
					domicile ?= { herd <= 0 } 
				}
			}
			scope:owner = {
				send_interface_toast = {
					title = steal_herd_invalidated_title
					left_icon = scope:target
					custom_tooltip = steal_herd_invalidated_no_herd
				}
			}
		}
    }
}
