﻿@skill_duel_autopass_value = extremely_high_skill_rating

@agent_events_0002_opportunity_gain_value = 3
@agent_events_0031_skill_cap_value = high_skill_rating
@agent_events_0041_min_opinion_to_train_value = 20
@agent_events_4011_skilled_agent_value = high_skill_rating

@scheme_progress_opt_out_option_value = 20
@scheme_beneficial_modifier_default_duration = 1825
@scheme_min_start_before_agent_events = 365

namespace = agent_events

##################################################
# # Agent harmony.
# 0001 - 0010	Two agents really like each other.
# 0011 - 0020	Agents bond over the experience, forming a relationship.
# 0021 - 0030	One agent teaches another.
# 0031 - 0040	Agent learns by doing.
# 0041 - 0050	Agent offers to teach you.
#
# # Agent tension.
# 1001 - 1010	Two agents hate each other.
# 1011 - 1020	Agents form a rivalry/grudge over the experience.
# 1021 - 1030	Agent learns bad habits from another.
# 1031 - 1040	Agent hates another for ineffectiveness/jealousy of effectiveness
# 1041 - 1050	Agent getting stressed over ineffectiveness
#
# # Agent synergies.
# 2001 - 2010	Positive relations help scheme
# 2011 - 2020	Negative relations hurt scheme
# 2021 - 2030	Skilled agents with opposite traits compete
#
# # Important relations.
# 3001 - 3010	Your lovers & friends offer to put more effort in.
# 3011 - 3020	Your lovers & friends ask you to relax your efforts a little.
# 3021 - 3030	Your family brought together by scheming
# 3031 - 3040	Your family torn apart by scheming.
# 3041 - 3050	Their close relations/positive-opinion family have second thoughts.
# 3051 - 3060	Their rivals grow to respect and bond with you over scheme.
# 3061 - 3070	Their spymaster buys you a grace refresh.
# 3071 - 3080	Their spymaster or high intrigue councillor unlocks additional agent slots.
# 
# # Distance to target.
# 4001 - 4010	Distance hampers agent effectiveness.
# 4011 - 4020	Distance enhances agent effectiveness.
# 
##################################################








##################################################
# SCRIPTED TRIGGERS & EFFECTS

scripted_effect agent_events_0000_scheme_progress_towards_relation_effect = {
	if = {
		limit = {
			scope:scheme = { is_type_secret = yes }
		}
		progress_towards_$RELATION$_effect = {
			CHARACTER = $TARGET$
			OPINION = 30
			REASON = $RELATION$_grew_over_secret_scheme
		}
	}
	else_if = {
		limit = {
			scope:scheme = { is_scheme_category = contract }
		}
		progress_towards_$RELATION$_effect = {
			CHARACTER = $TARGET$
			OPINION = 30
			REASON = $RELATION$_grew_over_task_scheme
		}
	}
	else = {
		progress_towards_$RELATION$_effect = {
			CHARACTER = $TARGET$
			OPINION = 30
			REASON = $RELATION$_grew_over_open_scheme
		}
	}
}











##################################################
# AGENT HARMONY

##################################################
# Thick as Thieves
# by Ewan Cowhig Croft
# 0001 - 0010
##################################################

scripted_effect agent_events_0001_diplo_duel_success_effect = {
	# If we can sort a friendship, encourage one.
	scope:char_1 = {
		agent_events_0000_scheme_progress_towards_relation_effect = {
			TARGET = scope:char_2
			RELATION = friend
		}
	}
	# Plus gain some extra scheme modifiers.
	scope:scheme = { change_opportunities = @agent_events_0002_opportunity_gain_value }
}

#	Two agents really like each other.
agent_events.0001 = {
	type = character_event
	title = agent_events.0001.t
	desc = agent_events.0001.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = scope:char_1
		animation = happiness
	}
	right_portrait = {
		character = scope:char_2
		animation = admiration
	}
	lower_center_portrait = root
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	trigger = {
		scope:char_1 ?= { is_alive = yes }
		scope:char_2 ?= { is_alive = yes }
	}

	immediate = {
		scope:char_1 = {
			add_opinion = {
				target = scope:char_2
				modifier = friendliness_opinion
				opinion = 20
			}
			reverse_add_opinion = {
				target = scope:char_2
				modifier = friendliness_opinion
				opinion = 20
			}
		}
	}

	# Diplomacy auto-success: encourage this.
	option = {
		name = agent_events.0001.a
		trigger = { diplomacy >= @skill_duel_autopass_value }
		skill = diplomacy

		# Same benefits as winning the duel.
		agent_events_0001_diplo_duel_success_effect = yes

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = 2 }
		}
	}
	
	# Diplo duel: try to encourage this.
	option = {
		name = agent_events.0001.b
		trigger = { diplomacy < @skill_duel_autopass_value }

		duel = {
			skill = diplomacy
			value = high_skill_rating
			# Teamwork makes the dreamwork.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = agent_events.0001.b.tt.success
				send_interface_toast = {
					title = agent_events.0001.b.tt.success
					left_icon = scope:char_1
					right_icon = scope:char_2
					agent_events_0001_diplo_duel_success_effect = yes
				}
			}
			# No one likes a micro-manager.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 5
				desc = agent_events.0001.b.tt.failure
				send_interface_toast = {
					title = agent_events.0001.b.tt.failure
					left_icon = scope:char_1
					right_icon = scope:char_2
					reverse_add_opinion = {
						target = scope:char_1
						modifier = respect_opinion
						opinion = -25
					}
					reverse_add_opinion = {
						target = scope:char_2
						modifier = respect_opinion
						opinion = -25
					}
				}
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = 2 }
		}
	}
	
	# Have them focus more on the plot.
	option = {
		name = agent_events.0001.c
		trigger = {
			# Makes sure our modifier isn't worthless; you should get at least _something_ out of it.
			scope:scheme = { max_scheme_success_chance <= 90 }
		}

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_0001_agents_focused_on_scheme_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		stress_impact = {
			diligent = minor_stress_impact_loss
			deceitful = miniscule_stress_impact_loss
			lazy = miniscule_stress_impact_gain
			compassionate = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_energy = 1
				ai_compassion = -1
			}
		}
	}
	
	# Seems nice enough.
	option = {
		name = agent_events.0001.d

		# Opt out of more dramatic effects.
		scope:scheme = { add_scheme_progress = @scheme_progress_opt_out_option_value }

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = -1
				ai_sociability = -1
			}
		}
	}
}

#	Pre-filter the event so that we can check to see if there's any suitable characters.
agent_events.0002 = {
	hidden = yes

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			# Is it worth doing any iterating?
			scheme_number_of_filled_agent_slots >= 2
			# Aaaaand would we get anything out of this?
			scheme_agent_charges <= {
				value = opportunity_cap_value
				subtract = @agent_events_0002_opportunity_gain_value
			}
		}
	}

	immediate = {
		scope:scheme = {
			# Ok, now grab two people who don't completely hate one another but aren't _already_ friends.
			every_scheme_agent_character = {
				limit = {
					save_temporary_scope_as = char_1_temp
					scope:scheme = {
						any_scheme_agent_character = {
							this != scope:char_1_temp
							opinion = {
								target = scope:char_1_temp
								value >= 30
							}
							reverse_opinion = {
								target = scope:char_1_temp
								value >= 30
							}
							NOT = {
								has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:char_1_temp }
							}
							save_temporary_scope_as = char_2_temp
						}
					}
				}
				# Right, let's transfer those scopes to more durable versions.
				scope:char_1_temp = { save_scope_as = char_1 }
				scope:char_2_temp = { save_scope_as = char_2 }
			}
		}
		#Ok, now let's see if we can fire the main thing.
		trigger_event = agent_events.0001
	}
}

##################################################
# Close Working Conditions
# by Ewan Cowhig Croft
# 0011 - 0020
##################################################

scripted_trigger agent_events_0011_agent_with_agent_potential_relation_trigger = {
	any_relation = {
		type = $RELATION$
		save_temporary_scope_as = scheme_check_scope
		scope:scheme = { scheme_is_character_agent = scope:scheme_check_scope }
		save_temporary_scope_as = char_temp
	}
}

scripted_trigger agent_events_0012_extra_requirements_for_lovers_trigger = {
	# Fidelity.
	might_cheat_on_every_partner_trigger = yes
	scope:char_temp = { might_cheat_on_every_partner_trigger = yes }
	# Plus make sure we could benefit and that this wouldn't be an issue for us.
	save_temporary_scope_as = char_temp_2
	root = {
		OR = {
			can_add_hook = {
				target = scope:char_temp_2
				type = favor_hook
			}
			can_add_hook = {
				target = scope:char_temp
				type = favor_hook
			}
		}
		# It's easiest to just not care whether root would be okay with this happening, outside of the most obvious polyamorous checks.
		trigger_if = {
			limit = { accepts_adultery_without_penalty_trigger = yes }
			NOR = {
				is_consort_of = scope:char_temp #Unop ck3-tiger Use correct scopes
				is_consort_of = scope:char_temp_2 #Unop ck3-tiger Use correct scopes
			}
		}
	}
}

scripted_effect agent_events_00121_intrigue_duel_success_effect = {
	scope:scheme = {
		add_scheme_modifier = {
			type = agent_events_0012_lovers_get_weird_about_scheme_modifier
			days = @scheme_beneficial_modifier_default_duration
		}
	}
	scope:char_1 = {
		agent_events_0000_scheme_progress_towards_relation_effect = {
			TARGET = scope:char_2
			RELATION = lover
		}
	}
}

#	Agents bond over the experience, forming a relationship (friendship version).
agent_events.0011 = {
	type = character_event
	title = agent_events.0011.t
	desc = agent_events.0011.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = scope:char_1
		animation = personality_bold
	}
	right_portrait = {
		character = scope:char_2
		animation = admiration
	}
	lower_center_portrait = root
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			# Is it worth doing any iterating?
			scheme_number_of_filled_agent_slots >= 2
			# Okay, let's check some stuff.
			any_scheme_agent_character = {
				agent_events_0011_agent_with_agent_potential_relation_trigger = { RELATION = potential_friend }
				save_temporary_scope_as = char_temp_2
				root = {
					OR = {
						can_add_hook = {
							target = scope:char_temp_2
							type = favor_hook
						}
						can_add_hook = {
							target = scope:char_temp
							type = favor_hook
						}
					}
				}
			}
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = {
					agent_events_0011_agent_with_agent_potential_relation_trigger = { RELATION = potential_friend }
				}
				save_scope_as = char_1
				random_relation = {
					type = potential_friend
					limit = {
						scope:scheme = { scheme_is_character_agent = scope:char_1 }
					}
					save_scope_as = char_2
				}
			}
		}
	}

	# Encourage their relationship.
	option = {
		name = agent_events.0011.a
		
		add_favour_hook_if_possible_simple_effect = { TARGET = scope:char_1 }
		add_favour_hook_if_possible_simple_effect = { TARGET = scope:char_2 }
		scope:char_1 = {
			agent_events_0000_scheme_progress_towards_relation_effect = {
				TARGET = scope:char_2
				RELATION = friend
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = 2 }
		}
	}
	
	# Perhaps scope:char_1 would prefer to hang out with me?
	option = {
		name = agent_events.0011.b
		trigger = {
			NOR = {
				has_relation_friend = scope:char_1
				has_relation_friend = scope:char_2
			}
		}

		agent_events_0000_scheme_progress_towards_relation_effect = {
			TARGET = scope:char_1
			RELATION = friend
		}
		reverse_add_opinion = {
			target = scope:char_2
			modifier = envy_opinion
			opinion = -20
		}

		stress_impact = {
			gregarious = miniscule_stress_impact_loss
			shy = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_sociability = 1
				ai_compassion = -1
			}
			opinion_modifier = {
				opinion_target = scope:char_1
				multiplier = 2
			}
		}
	}
	
	# Scope:char_2 could really do better.
	option = {
		name = agent_events.0011.c
		trigger = {
			NOR = {
				has_relation_friend = scope:char_1
				has_relation_friend = scope:char_2
			}
		}

		agent_events_0000_scheme_progress_towards_relation_effect = {
			TARGET = scope:char_2
			RELATION = friend
		}
		reverse_add_opinion = {
			target = scope:char_1
			modifier = envy_opinion
			opinion = -20
		}

		stress_impact = {
			gregarious = miniscule_stress_impact_loss
			shy = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_sociability = 1
				ai_compassion = -1
			}
			opinion_modifier = {
				opinion_target = scope:char_1
				multiplier = 2
			}
		}
	}
	
	# I'm friends with one already, why not be friends with both?
	option = {
		name = agent_events.0011.d
		trigger = {
			calc_true_if = {
				amount = 1
				has_relation_friend = scope:char_1
				has_relation_friend = scope:char_2
			}
		}

		# Already friends with scope:char_1.
		if = {
			limit = { has_relation_friend = scope:char_1 }
			agent_events_0000_scheme_progress_towards_relation_effect = {
				TARGET = scope:char_2
				RELATION = friend
			}
		}
		# Otherwise, already friends with scope:char_2.
		else = {
			agent_events_0000_scheme_progress_towards_relation_effect = {
				TARGET = scope:char_1
				RELATION = friend
			}
		}

		stress_impact = {
			gregarious = miniscule_stress_impact_loss
			# Don't be mean to shy here: if they're already friends with both, then hanging out shouldn't suck.
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_sociability = 2
				ai_energy = 1
			}
		}
	}
	
	# Friends with both: Glad we're all getting along!
	option = {
		name = agent_events.0011.e
		trigger = {
			has_relation_friend = scope:char_1
			has_relation_friend = scope:char_2
		}
		reason = relation_positive

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_0011_friends_working_on_scheme_together_modifier
				years = @scheme_beneficial_modifier_default_duration
			}
		}

		stress_impact = {
			base = major_stress_impact_loss
			gregarious = minor_stress_impact_loss
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_sociability = 2
				ai_energy = 1
			}
		}
	}
	
	# Keep it professional, folks.
	option = {
		name = agent_events.0011.f

		# Opt out of more dramatic effects.
		scope:scheme = { add_scheme_progress = @scheme_progress_opt_out_option_value }

		stress_impact = {
			shy = miniscule_stress_impact_loss
			diligent = miniscule_stress_impact_loss
			gregarious = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_compassion = 1
				ai_sociability = -2
			}
		}
	}
}

#	Agents bond over the experience, forming a relationship (lovers version).
agent_events.0012 = {
	type = character_event
	title = agent_events.0012.t
	desc = agent_events.0012.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = scope:char_1
		animation = flirtation
	}
	right_portrait = {
		character = scope:char_2
		animation = admiration
	}
	lower_center_portrait = root
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			# Is it worth doing any iterating?
			scheme_number_of_filled_agent_slots >= 2
			# Okay, let's check some stuff.
			any_scheme_agent_character = {
				agent_events_0011_agent_with_agent_potential_relation_trigger = { RELATION = potential_lover }
				agent_events_0012_extra_requirements_for_lovers_trigger = yes
			}
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = {
					agent_events_0011_agent_with_agent_potential_relation_trigger = { RELATION = potential_lover }
					agent_events_0012_extra_requirements_for_lovers_trigger = yes
				}
				save_scope_as = char_1
				scope:char_temp = { save_scope_as = char_2 }
			}
		}
	}

	# Encourage their relationship.
	option = {
		name = agent_events.0012.a
		
		add_favour_hook_if_possible_simple_effect = { TARGET = scope:char_1 }
		add_favour_hook_if_possible_simple_effect = { TARGET = scope:char_2 }
		scope:char_1 = {
			agent_events_0000_scheme_progress_towards_relation_effect = {
				TARGET = scope:char_2
				RELATION = lover
			}
		}

		stress_impact = {
			lustful = miniscule_stress_impact_loss
			chaste = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_compassion = 2
				ai_sociability = 0.5
			}
		}
	}
	
	# Intrigue auto-success: inflame their passion as part of the scheme.
	option = {
		name = agent_events.0012.b
		trigger = { intrigue >= @skill_duel_autopass_value }
		skill = intrigue

		# Same benefits as winning the duel.
		agent_events_00121_intrigue_duel_success_effect = yes

		stress_impact = {
			lustful = miniscule_stress_impact_loss
			deceitful = miniscule_stress_impact_loss
			chaste = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_sociability = 1
				ai_honor = -1
			}
		}
	}
	
	# Intrigue duel: try to make the scheme part of their games.
	option = {
		name = agent_events.0012.c
		trigger = { intrigue < @skill_duel_autopass_value }

		duel = {
			skill = intrigue
			value = high_skill_rating
			# They're into it.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = agent_events.0012.c.tt.success
				send_interface_toast = {
					title = agent_events.0012.c.tt.success
					left_icon = scope:char_1
					right_icon = scope:char_2
					agent_events_00121_intrigue_duel_success_effect = yes
				}
			}
			# My dude you are being gross.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 5
				desc = agent_events.0012.c.tt.failure
				send_interface_toast = {
					title = agent_events.0012.c.tt.failure
					left_icon = scope:char_1
					right_icon = scope:char_2
					reverse_add_opinion = {
						target = scope:char_1
						modifier = amused_opinion
						opinion = -30
					}
					reverse_add_opinion = {
						target = scope:char_2
						modifier = amused_opinion
						opinion = -30
					}
					scope:char_1 = { remove_relation_potential_lover = scope:char_2 }
				}
			}
		}

		stress_impact = {
			lustful = miniscule_stress_impact_loss
			deceitful = miniscule_stress_impact_loss
			chaste = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_sociability = 1
				ai_honor = -1
			}
		}
	}
	
	# Try to tamp that shit down.
	option = {
		name = agent_events.0012.d

		scope:char_1 = { remove_relation_potential_lover = scope:char_2 }
		reverse_add_opinion = {
			target = scope:char_1
			modifier = annoyed_opinion
			opinion = -15
		}
		reverse_add_opinion = {
			target = scope:char_2
			modifier = annoyed_opinion
			opinion = -15
		}

		stress_impact = {
			chaste = miniscule_stress_impact_loss
			lustful = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 0.25
				ai_compassion = -1
			}
		}
	}
	
	# Who cares?
	option = {
		name = agent_events.0012.e
		
		random_list = {
			# They've got chemistry!
			50 = {
				desc = agent_events.0012.e.tt.become_lovers
				send_interface_toast = {
					title = agent_events.0012.e.tt.become_lovers
					left_icon = scope:char_1
					right_icon = scope:char_2
					scope:char_1 = {
						agent_events_0000_scheme_progress_towards_relation_effect = {
							TARGET = scope:char_2
							RELATION = lover
						}
					}
				}
			}
			# There's a flash, then they fade.
			50 = {
				desc = agent_events.0012.e.tt.not_lovers
				send_interface_toast = {
					title = agent_events.0012.e.tt.not_lovers
					left_icon = scope:char_1
					right_icon = scope:char_2
					scope:char_1 = { remove_relation_potential_lover = scope:char_2 }
				}
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_energy = -0.5
				ai_sociability = -1
			}
		}
	}
}

##################################################
# Learning from the Best
# by Ewan Cowhig Croft
# 0021 - 0030
##################################################

scripted_trigger agent_events_0021_agent_slot_with_best_skill_trigger = {
	any_scheme_agent_character = {
		save_temporary_scope_value_as = {
			name = skill_temp
			value = $SKILL$
		}
	}
	any_scheme_agent_character = { $SKILL$ < scope:skill_temp }
}

scripted_effect agent_events_0021_order_agents_by_skill_effect = {
	ordered_scheme_agent_character = {
		order_by = {
			# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
			if = {
				limit = {
					scope:scheme = { scheme_skill = intrigue }
				}
				add = intrigue
			}
			else_if = {
				limit = {
					scope:scheme = { scheme_skill = diplomacy }
				}
				add = diplomacy
			}
			else_if = {
				limit = {
					scope:scheme = { scheme_skill = martial }
				}
				add = martial
			}
			else_if = {
				limit = {
					scope:scheme = { scheme_skill = stewardship }
				}
				add = stewardship
			}
			else_if = {
				limit = {
					scope:scheme = { scheme_skill = learning }
				}
				add = learning
			}
			else_if = {
				limit = {
					scope:scheme = { scheme_skill = prowess }
				}
				add = prowess
			}
			multiply = $MULT$
		}
		save_scope_as = $SCOPE$
	}
}

scripted_effect agent_events_0021_transfer_some_skill_effect = {
	scope:char_2 = {
		add_$SKILL$_skill = {
			add = scope:char_1.$SKILL$
			subtract = scope:char_2.$SKILL$
			divide = 5
			ceiling = yes
			min = 1
			max = 4
		}
	}
}

scripted_effect agent_events_0021_give_lifestyle_xp_effect = {
	if = {
		limit = {
			scope:char_1 = {
				has_trait_rank = {
					trait = education_$SKILL$
					rank >= 4
				}
			}
		}
		root = { add_$SKILL$_lifestyle_perk_points = 1 }
	}
	else = {
		root = { add_$SKILL$_lifestyle_xp = massive_lifestyle_xp }
	}
}

#	One agent teaches another.
agent_events.0021 = {
	type = character_event
	title = agent_events.0021.t
	desc = {
		desc = agent_events.0021.desc.intro
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:scheme = { scheme_skill = diplomacy }
				}
				desc = agent_events.0021.desc.diplomacy
			}
			triggered_desc = {
				trigger = {
					scope:scheme = { scheme_skill = martial }
				}
				desc = agent_events.0021.desc.martial
			}
			triggered_desc = {
				trigger = {
					scope:scheme = { scheme_skill = stewardship }
				}
				desc = agent_events.0021.desc.stewardship
			}
			triggered_desc = {
				trigger = {
					scope:scheme = { scheme_skill = intrigue }
				}
				desc = agent_events.0021.desc.intrigue
			}
			triggered_desc = {
				trigger = {
					scope:scheme = { scheme_skill = learning }
				}
				desc = agent_events.0021.desc.learning
			}
			triggered_desc = {
				trigger = {
					scope:scheme = { scheme_skill = prowess }
				}
				desc = agent_events.0021.desc.prowess
			}
		}
		desc = agent_events.0021.desc.outro
	}
	theme = generic_intrigue_scheme
	left_portrait = {
		character = scope:char_1
		animation = happy_teacher
	}
	right_portrait = {
		character = scope:char_2
		triggered_animation = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			animation = chancellor
		}
		triggered_animation = {
			trigger = {
				scope:scheme = {
					OR = {
						scheme_skill = martial
						scheme_skill = prowess
					}
				}
			}
			animation = marshal
		}
		triggered_animation = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			animation = steward
		}
		triggered_animation = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			animation = spymaster
		}
		triggered_animation = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			animation = chaplain
		}
	}
	lower_center_portrait = root
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			# Is it worth doing any iterating?
			scheme_number_of_filled_agent_slots >= 2
			# Okay, let's check some stuff.
			switch = {
				trigger = scheme_skill
				# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
				intrigue = {
					agent_events_0021_agent_slot_with_best_skill_trigger = { SKILL = intrigue }
				}
				diplomacy = {
					agent_events_0021_agent_slot_with_best_skill_trigger = { SKILL = diplomacy }
				}
				martial = {
					agent_events_0021_agent_slot_with_best_skill_trigger = { SKILL = martial }
				}
				stewardship = {
					agent_events_0021_agent_slot_with_best_skill_trigger = { SKILL = stewardship }
				}
				learning = {
					agent_events_0021_agent_slot_with_best_skill_trigger = { SKILL = learning }
				}
				prowess = {
					agent_events_0021_agent_slot_with_best_skill_trigger = { SKILL = martial }
				}
			}
		}
	}

	immediate = {
		scope:scheme = {
			# Top...
			agent_events_0021_order_agents_by_skill_effect = {
				SCOPE = char_1
				MULT = 1
			}
			# ... and tail.
			agent_events_0021_order_agents_by_skill_effect = {
				SCOPE = char_2
				MULT = -1
			}
		}
	}

	# Excellent!
	option = {
		name = agent_events.0021.a

		scope:scheme = {
			switch = {
				trigger = scheme_skill
				# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
				intrigue = {
					agent_events_0021_transfer_some_skill_effect = { SKILL = intrigue }
				}
				diplomacy = {
					agent_events_0021_transfer_some_skill_effect = { SKILL = diplomacy }
				}
				martial = {
					agent_events_0021_transfer_some_skill_effect = { SKILL = martial }
				}
				stewardship = {
					agent_events_0021_transfer_some_skill_effect = { SKILL = stewardship }
				}
				learning = {
					agent_events_0021_transfer_some_skill_effect = { SKILL = learning }
				}
				prowess = {
					# Because we don't have prowess lifestyles.
					agent_events_0021_transfer_some_skill_effect = { SKILL = martial }
				}
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_sociability = 2 }
		}
	}
	
	# Put that energy into the plan, you fool.
	option = {
		name = agent_events.0021.b

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_0021_scheme_speed_boost_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		stress_impact = {
			diligent = miniscule_stress_impact_loss
			lazy = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_energy = 2 }
		}
	}
	
	# Perhaps there's something I could learn from this...
	option = {
		name = agent_events.0021.c

		scope:scheme = {
			switch = {
				trigger = scheme_skill
				# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
				intrigue = {
					agent_events_0021_give_lifestyle_xp_effect = { SKILL = intrigue }
				}
				diplomacy = {
					agent_events_0021_give_lifestyle_xp_effect = { SKILL = diplomacy }
				}
				martial = {
					agent_events_0021_give_lifestyle_xp_effect = { SKILL = martial }
				}
				stewardship = {
					agent_events_0021_give_lifestyle_xp_effect = { SKILL = stewardship }
				}
				learning = {
					agent_events_0021_give_lifestyle_xp_effect = { SKILL = learning }
				}
				prowess = {
					# As we have no lifestyle for prowess.
					agent_events_0021_give_lifestyle_xp_effect = { SKILL = martial }
				}
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_rationality = 2 }
		}
	}
}

##################################################
# Learning on the Job
# by Ewan Cowhig Croft
# 0031 - 0040
##################################################

scripted_trigger agent_events_0031_valid_agent_trigger = {
	is_alive = yes
	$SKILL$ <= @agent_events_0031_skill_cap_value
	NOT = { has_character_flag = agent_recently_had_agent_events_0031 }
}

scripted_effect agent_events_0031_choose_agent_effect = {
	random_scheme_agent_character = {
		limit = {
			# Prefer our own courtiers first so we can re-use them.
			is_alive = yes
			is_courtier_of = root
			agent_events_0031_valid_agent_trigger = { SKILL = $SKILL$ }
		}
		alternative_limit = {
			is_alive = yes
			agent_events_0031_valid_agent_trigger = { SKILL = $SKILL$ }
		}
		save_scope_as = char_1
		add_character_flag = {
			flag = agent_recently_had_agent_events_0031
			years = 10
		}
		agent_events_0031_improve_agent_effect = {
			SKILL = $SKILL$
			STRESS = medium_stress_gain
		}
	}
}

scripted_effect agent_events_0031_improve_agent_effect = {
	add_$SKILL$_skill = {
		integer_range = {
			min = 1
			max = 3
		}
	}
	add_stress = $STRESS$
}

scripted_effect agent_events_0031_relevant_duel_effect = {
	root = {
		duel = {
			skill = $SKILL$
			target = scope:char_1
			# You push them even further.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = agent_events.0031.a.tt.success
				send_interface_toast = {
					title = agent_events.0031.a.tt.success
					left_icon = scope:char_1
					scope:char_1 = {
						agent_events_0031_improve_agent_effect = {
							SKILL = $SKILL$
							STRESS = major_stress_gain
						}
						add_opinion = {
							target = root
							modifier = frustrated_opinion
							opinion = -20
						}
					}
				}
			}
			# You push them too hard and for naught.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 5
				desc = agent_events.0031.a.tt.failure
				send_interface_toast = {
					title = agent_events.0031.a.tt.failure
					left_icon = scope:char_1
					scope:char_1 = {
						add_stress = major_stress_gain
						add_opinion = {
							target = root
							modifier = frustrated_opinion
							opinion = -40
						}
					}
				}
			}
		}
	}
}

#	Agent learns by doing.
agent_events.0031 = {
	type = character_event
	title = agent_events.0031.t
	desc = agent_events.0031.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:char_1
		animation = personality_bold
	}
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}
	# Header overrides
		## Diplo schemes.
		override_header_background = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/window_event/event_header_blue.dds"
		}
		## Martial or prowess schemes.
		override_header_background = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/window_event/event_header_red.dds"
		}
		## Stewardship schemes.
		override_header_background = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/window_event/event_header_green.dds"
		}
		## Learning schemes.
		override_header_background = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/window_event/event_header_grey.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			# Okay, let's check some stuff.
			switch = {
				trigger = scheme_skill
				# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
				intrigue = {
					any_scheme_agent_character = {
						agent_events_0031_valid_agent_trigger = { SKILL = intrigue }
					}
				}
				diplomacy = {
					any_scheme_agent_character = {
						agent_events_0031_valid_agent_trigger = { SKILL = diplomacy }
					}
				}
				martial = {
					any_scheme_agent_character = {
						agent_events_0031_valid_agent_trigger = { SKILL = martial }
					}
				}
				stewardship = {
					any_scheme_agent_character = {
						agent_events_0031_valid_agent_trigger = { SKILL = stewardship }
					}
				}
				learning = {
					any_scheme_agent_character = {
						agent_events_0031_valid_agent_trigger = { SKILL = learning }
					}
				}
				prowess = {
					any_scheme_agent_character = {
						agent_events_0031_valid_agent_trigger = { SKILL = prowess }
					}
				}
			}
		}
	}

	immediate = {
		# Process out our skill gains.
		scope:scheme = {
			switch = {
				trigger = scheme_skill
				# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
				intrigue = {
					agent_events_0031_choose_agent_effect = { SKILL = intrigue }
				}
				diplomacy = {
					agent_events_0031_choose_agent_effect = { SKILL = diplomacy }
				}
				martial = {
					agent_events_0031_choose_agent_effect = { SKILL = martial }
				}
				stewardship = {
					agent_events_0031_choose_agent_effect = { SKILL = stewardship }
				}
				learning = {
					agent_events_0031_choose_agent_effect = { SKILL = learning }
				}
				prowess = {
					agent_events_0031_choose_agent_effect = { SKILL = prowess }
				}
			}
		}
	}

	# Relevant skill duel to push them even harder.
	option = {
		name = agent_events.0031.a
		
		# Process out our skill gains.
		scope:scheme = {
			switch = {
				trigger = scheme_skill
				# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
				intrigue = {
					agent_events_0031_relevant_duel_effect = { SKILL = intrigue }
				}
				diplomacy = {
					agent_events_0031_relevant_duel_effect = { SKILL = diplomacy }
				}
				martial = {
					agent_events_0031_relevant_duel_effect = { SKILL = martial }
				}
				stewardship = {
					agent_events_0031_relevant_duel_effect = { SKILL = stewardship }
				}
				learning = {
					agent_events_0031_relevant_duel_effect = { SKILL = learning }
				}
				prowess = {
					agent_events_0031_relevant_duel_effect = { SKILL = prowess }
				}
			}
		}

		stress_impact = {
			sadistic = minor_stress_impact_loss
			callous = minor_stress_impact_loss
			diligent = miniscule_stress_impact_loss
			lazy = minor_stress_impact_gain
			compassionate = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = -1 }
		}
	}
	
	# Take some credit for this with other agents.
	option = {
		name = agent_events.0031.b
		trigger = {
			scope:scheme = { scheme_number_of_filled_agent_slots >= 2 }
		}

		scope:scheme = {
			every_scheme_agent_character = {
				custom = custom.every_scheme_agent_character
				limit = {
					this != scope:char_1
					is_alive = yes
				}
				add_opinion = {
					target = root
					modifier = impressed_opinion
					opinion = 15
				}
			}
		}
		reverse_add_opinion = {
			target = scope:char_1
			modifier = annoyed_opinion
			opinion = -30
		}

		stress_impact = {
			arrogant = miniscule_stress_impact_loss
			humble = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_sociability = 0.5
				ai_honor = -0.25
			}
		}
	}
	
	# It's all comin' together.
	option = {
		name = agent_events.0031.c
		
		# Opt out of more dramatic effects.
		scope:scheme = { add_scheme_progress = @scheme_progress_opt_out_option_value }

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_rationality = 1 }
		}
	}
}

##################################################
# Studious Scheming
# by Ewan Cowhig Croft
# 0041 - 0050
##################################################

scripted_trigger agent_events_0041_agent_is_suitably_better_skilled_than_root_trigger = {
	any_scheme_agent_character = {
		# Suitably skilled.
		$SKILL$ >= {
			value = root.$SKILL$
			add = 5
		}
		# Plus make sure they might actually teach you.
		opinion = {
			target = root
			value >= @agent_events_0041_min_opinion_to_train_value
		}
	}
}

scripted_effect agent_events_0041_get_best_agent_by_skill_effect = {
	ordered_scheme_agent_character = {
		order_by = $SKILL$
		limit = {
			opinion = {
				target = root
				value >= @agent_events_0041_min_opinion_to_train_value
			}
		}
		save_scope_as = char_1
	}
}

scripted_effect agent_events_0041_transfer_some_skill_effect = {
}

scripted_effect agent_events_0041_relevant_duel_effect = {
	scope:char_1 = {
		duel = {
			skill = $SKILL$
			target = root
			# They teach you a thing or two.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = agent_events.0041.a.tt.success
				root = {
					send_interface_toast = {
						title = agent_events.0041.a.tt.success
						left_icon = scope:char_1
						add_$SKILL$_skill = {
							add = scope:char_1.$SKILL$
							subtract = root.$SKILL$
							divide = 5
							ceiling = yes
							min = 1
							max = 3
						}
					}
				}
			}
			# You get nothing from this, and they're frustrated.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 5
				desc = agent_events.0041.a.tt.failure
				root = {
					send_interface_toast = {
						title = agent_events.0041.a.tt.failure
						left_icon = scope:char_1
						scope:char_1 = { add_stress = major_stress_gain }
					}
				}
			}
		}
	}
}

#	Agent offers to teach you.
agent_events.0041 = {
	type = character_event
	title = agent_events.0041.t
	desc = agent_events.0041.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:char_1
		animation = happy_teacher
	}
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 10 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			switch = {
				trigger = scheme_skill
				# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
				intrigue = {
					agent_events_0041_agent_is_suitably_better_skilled_than_root_trigger = { SKILL = intrigue }
				}
				diplomacy = {
					agent_events_0041_agent_is_suitably_better_skilled_than_root_trigger = { SKILL = diplomacy }
				}
				martial = {
					agent_events_0041_agent_is_suitably_better_skilled_than_root_trigger = { SKILL = martial }
				}
				stewardship = {
					agent_events_0041_agent_is_suitably_better_skilled_than_root_trigger = { SKILL = stewardship }
				}
				learning = {
					agent_events_0041_agent_is_suitably_better_skilled_than_root_trigger = { SKILL = learning }
				}
				prowess = {
					agent_events_0041_agent_is_suitably_better_skilled_than_root_trigger = { SKILL = prowess }
				}
			}
		}
	}

	immediate = {
		scope:scheme = {
			switch = {
				trigger = scheme_skill
				# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
				intrigue = {
					agent_events_0041_get_best_agent_by_skill_effect = { SKILL = intrigue }
				}
				diplomacy = {
					agent_events_0041_get_best_agent_by_skill_effect = { SKILL = diplomacy }
				}
				martial = {
					agent_events_0041_get_best_agent_by_skill_effect = { SKILL = martial }
				}
				stewardship = {
					agent_events_0041_get_best_agent_by_skill_effect = { SKILL = stewardship }
				}
				learning = {
					agent_events_0041_get_best_agent_by_skill_effect = { SKILL = learning }
				}
				prowess = {
					agent_events_0041_get_best_agent_by_skill_effect = { SKILL = prowess }
				}
			}
		}
	}

	# Accept (reversed skill duel for them to learn you a lesson).
	option = {
		name = agent_events.0041.a

		custom_tooltip = agent_events.0041.a.tt.they_attempt_to_teach_you
		scope:scheme = {
			switch = {
				trigger = scheme_skill
				# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
				intrigue = {
					agent_events_0041_relevant_duel_effect = { SKILL = intrigue }
				}
				diplomacy = {
					agent_events_0041_relevant_duel_effect = { SKILL = diplomacy }
				}
				martial = {
					agent_events_0041_relevant_duel_effect = { SKILL = martial }
				}
				stewardship = {
					agent_events_0041_relevant_duel_effect = { SKILL = stewardship }
				}
				learning = {
					agent_events_0041_relevant_duel_effect = { SKILL = learning }
				}
				prowess = {
					agent_events_0041_relevant_duel_effect = { SKILL = prowess }
				}
			}
		}

		stress_impact = {
			humble = minor_stress_impact_loss
			arrogant = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_rationality = 2 }
		}
	}
	
	# Arrogant: brush them aside.
	option = {
		name = agent_events.0041.b
		trigger = { has_trait = arrogant }
		trait = arrogant

		add_stress = monumental_stress_loss
		add_prestige = medium_prestige_gain
		reverse_add_opinion = {
			target = scope:char_1
			modifier = frustrated_opinion
			opinion = -15
		}

		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 1
				ai_compassion = -1
			}
		}
	}
	
	# Tell them to plough that effort back into the scheme.
	option = {
		name = agent_events.0041.c
		
		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_0041_better_agent_focusing_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_energy = 2 }
		}
	}
}












##################################################
# AGENT TENSION

##################################################
# At the Wrong Throat
# by Ewan Cowhig Croft
# 1001 - 1010
##################################################

scripted_effect agent_events_1001_duel_rivals_into_submission_effect = {
	# Duel whoever has the highest skill.
	if = {
		limit = { scope:char_1.$SKILL$ >= scope:char_2.$SKILL$ }
		scope:char_1 = { save_scope_as = dueller }
	}
	else = {
		scope:char_2 = { save_scope_as = dueller }
	}
	duel = {
		skill = $SKILL$
		target = scope:dueller
		# You get through to them.
		50 = {
			compare_modifier = {
				value = scope:duel_value
				multiplier = 3.5
				min = -49
			}
			min = 5
			desc = agent_events.1001.$LOC$.tt.success
			send_interface_toast = {
				title = agent_events.1001.$LOC$.tt.success
				left_icon = scope:char_1
				right_icon = scope:char_2
				reverse_add_opinion = {
					target = scope:char_1
					modifier = respect_opinion
					opinion = 30
				}
				reverse_add_opinion = {
					target = scope:char_2
					modifier = respect_opinion
					opinion = 30
				}
			}
		}
		# They keep squabbling regardless.
		50 = {
			compare_modifier = {
				value = scope:duel_value
				multiplier = -3.5
				min = -49
			}
			min = 5
			desc = agent_events.1001.$LOC$.tt.failure
			send_interface_toast = {
				title = agent_events.1001.$LOC$.tt.failure
				left_icon = scope:char_1
				right_icon = scope:char_2
				scope:scheme = {
					add_scheme_modifier = {
						type = agent_events_1001_rival_agents_squabble_modifier
						days = @scheme_beneficial_modifier_default_duration
					}
				}
			}
		}
	}
}

#	Two agents hate each other.
agent_events.1001 = {
	type = character_event
	title = agent_events.1001.t
	desc = agent_events.1001.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = scope:char_1
		animation = rage
	}
	right_portrait = {
		character = scope:char_2
		animation = dismissal
	}
	lower_center_portrait = root
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	trigger = {
		exists = scope:char_1
		exists = scope:char_2
	}

	immediate = {
		scope:char_1 = {
			add_opinion = {
				target = scope:char_2
				modifier = angry_opinion
				opinion = -30
			}
			reverse_add_opinion = {
				target = scope:char_2
				modifier = angry_opinion
				opinion = -30
			}
		}
	}

	# Lecture both of them.
	option = {
		name = agent_events.1001.a

		agent_events_1001_duel_rivals_into_submission_effect = {
			SKILL = diplomacy
			LOC = a
		}

		stress_impact = {
			gregarious = miniscule_stress_impact_loss
			shy = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_energy = 2 }
		}
	}
	
	# Appeal to reason.
	option = {
		name = agent_events.1001.b
		
		agent_events_1001_duel_rivals_into_submission_effect = {
			SKILL = learning
			LOC = b
		}

		stress_impact = {
			patient = miniscule_stress_impact_loss
			impatient = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_rationality = 1 }
		}
	}
	
	# Sadist/Eccentric: escalate that hatred.
	option = {
		name = agent_events.1001.c
		trigger = {
			OR = {
				has_trait = sadistic
				has_trait = eccentric
			}
			OR = {
				can_add_hook = {
					target = scope:char_1
					type = manipulation_hook
				}
				can_add_hook = {
					target = scope:char_2
					type = manipulation_hook
				}
			}
		}

		scope:char_1 = {
			agent_events_0000_scheme_progress_towards_relation_effect = {
				TARGET = scope:char_2
				RELATION = nemesis
			}
		}
		add_hook_if_possible_default_length_effect = {
			TARGET = scope:char_1
			TYPE = manipulation_hook
		}
		add_hook_if_possible_default_length_effect = {
			TARGET = scope:char_2
			TYPE = manipulation_hook
		}
		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_1001_rival_agents_squabble_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		stress_impact = {
			sadistic = massive_stress_impact_loss
			eccentric = medium_stress_impact_loss
			compassionate = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = -2 }
		}
	}
	
	# Use your hook(s) to force them to stop.
	option = {
		name = agent_events.1001.d
		trigger = {
			OR = {
				has_hook = scope:char_1
				has_hook = scope:char_2
			}
		}
		reason = hook

		# Use one of our hooks.
		if = {
			limit = { has_usable_hook = scope:char_1 }
			use_hook = scope:char_1
		}
		else = { use_hook = scope:char_2 }
		# And apply our modifier.
		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_1001_rival_agents_forced_submission_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		stress_impact = {
			arbitrary = miniscule_stress_impact_loss
			just = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_rationality = 2 }
		}
	}
	
	# Not my problem.
	option = {
		name = agent_events.1001.e

		random_list = {
			# It won't stop.
			50 = {
				desc = agent_events.1001.e.rivals_bicker
				send_interface_toast = {
					title = agent_events.1001.e.rivals_bicker
					left_icon = scope:char_1
					right_icon = scope:char_2
					scope:scheme = {
						add_scheme_modifier = {
							type = agent_events_1001_rival_agents_squabble_modifier
							days = @scheme_beneficial_modifier_default_duration
						}
					}
				}
			}
			# It at least naturally simmers down.
			50 = {
				desc = agent_events.1001.e.rivals_bicker_less
				send_interface_toast = {
					title = agent_events.1001.e.rivals_bicker_less
					left_icon = scope:char_1
					right_icon = scope:char_2
					scope:scheme = {
						add_scheme_modifier = {
							type = agent_events_1001_rival_agents_squabble_less_modifier
							days = @scheme_beneficial_modifier_default_duration
						}
					}
				}
			}
		}

		stress_impact = {
			shy = medium_stress_impact_loss
			gregarious = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_sociability = 1 }
		}
	}
}

#	Pre-filter the event so that we can check to see if there's any suitable characters.
agent_events.1002 = {
	hidden = yes

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			# Is it worth doing any iterating?
			scheme_number_of_filled_agent_slots >= 2
			has_scheme_modifier = agent_events_1001_rival_agents_squabble_modifier
		}
	}

	immediate = {
		scope:scheme = {
			# Ok, now grab two people who very much hate one another but aren't _already_ nemeses.
			every_scheme_agent_character = {
				limit = {
					save_temporary_scope_as = char_1_temp
					scope:scheme = {
						any_scheme_agent_character = {
							this != scope:char_1_temp
							opinion = {
								target = scope:char_1_temp
								value <= -30
							}
							reverse_opinion = {
								target = scope:char_1_temp
								value <= -30
							}
							# Filter out inappropriate relationships.
							NOR = {
								has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:char_1_temp }
								has_any_worst_bad_relationship_with_character_trigger = { CHARACTER = scope:char_1_temp }
							}
							save_temporary_scope_as = char_2_temp
						}
					}
				}
				# Right, let's transfer those scopes to more durable versions.
				scope:char_1_temp = { save_scope_as = char_1 }
				scope:char_2_temp = { save_scope_as = char_2 }
			}
		}
		# Ok, now let's see if we can fire the main thing.
		trigger_event = agent_events.1001
	}
}

##################################################
# Wounds Fester
# by Ewan Cowhig Croft
# 1011 - 1020
##################################################

scripted_trigger agent_events_1011_possible_agent_rivals_trigger = {
	OR = {
		AND = {
			$SCOPE$ = {
				agent_events_0011_agent_with_agent_potential_relation_trigger = { RELATION = potential_rival }
			}
			opinion = {
				target = scope:char_temp
				value <= -20
			}
			reverse_opinion = {
				target = scope:char_temp
				value <= -20
			}
		}
		AND = {
			$SCOPE$ = {
				agent_events_0011_agent_with_agent_potential_relation_trigger = { RELATION = rival }
			}
			opinion = {
				target = scope:char_temp
				value <= -20
			}
			reverse_opinion = {
				target = scope:char_temp
				value <= -20
			}
		}
	}
}

#	Agents form a rivalry/grudge over the experience.
agent_events.1011 = {
	type = character_event
	title = agent_events.1011.t
	desc = agent_events.1011.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = scope:char_1
		animation = disgust
	}
	right_portrait = {
		character = scope:char_2
		animation = anger
	}
	lower_center_portrait = root
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	trigger = {
		scope:scheme = {
			exists = scope:char_1
			exists = scope:char_2
		}
	}

	# Force them to work together.
	option = {
		name = agent_events.1011.a

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_1011_rival_agents_forced_to_work_together_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		stress_impact = {
			sadistic = miniscule_stress_impact_loss
			callous = miniscule_stress_impact_loss
			compassionate = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = -1 }
		}
	}
	
	# Try to keep them apart.
	option = {
		name = agent_events.1011.b

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_1011_rival_agents_kept_separate_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		stress_impact = {
			compassionate = miniscule_stress_impact_loss
			callous = minor_stress_impact_gain
			sadistic = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = 1 }
		}
	}
	
	# Leave well enough alone.
	option = {
		name = agent_events.1011.c

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_1011_rival_agents_left_alone_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		stress_impact = {
			shy = miniscule_stress_impact_loss
			gregarious = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_sociability = -2 }
		}
	}
}

#	Pre-filter the event so that we can check to see if there's any suitable characters.
agent_events.1012 = {
	hidden = yes

	#cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			# Is it worth doing any iterating?
			scheme_number_of_filled_agent_slots >= 2
			NOR = {
				has_scheme_modifier = agent_events_1011_rival_agents_forced_to_work_together_modifier
				has_scheme_modifier = agent_events_1011_rival_agents_kept_separate_modifier
				has_scheme_modifier = agent_events_1011_rival_agents_left_alone_modifier
			}
			# Okay, let's check some stuff.
			any_scheme_agent_character = {
				agent_events_1011_possible_agent_rivals_trigger = { SCOPE = this }
			}
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = {
					agent_events_1011_possible_agent_rivals_trigger = { SCOPE = this }
				}
				save_scope_as = char_1
			}
			random_scheme_agent_character = {
				limit = {
					this != scope:char_1
					agent_events_1011_possible_agent_rivals_trigger = { SCOPE = scope:char_1 }
				}
				save_scope_as = char_2
			}
		}
		# Ok, now let's see if we can fire the main thing.
		trigger_event = agent_events.1011
	}
}












##################################################
# AGENT SYNERGIES

##################################################
# A Pleasure to Work With
# by Ewan Cowhig Croft
# 2001 - 2010
##################################################

scripted_trigger agent_events_2001_suitable_relation_trigger = {
	has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root }
	opinion = {
		target = root
		value >= 50
	}
}

#	Positive relations help scheme
agent_events.2001 = {
	type = character_event
	title = agent_events.2001.t
	desc = agent_events.2001.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = personality_bold
	}
	right_portrait = {
		character = scope:relation
		animation = admiration
	}
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_agent_charges < opportunity_cap_value
			any_scheme_agent_character = { agent_events_2001_suitable_relation_trigger = yes }
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = { agent_events_2001_suitable_relation_trigger = yes }
				save_scope_as = relation
			}
		}
	}

	# Good, gooooood.
	option = {
		name = agent_events.2001.a

		scope:scheme = { change_opportunities = 2 }

		# No stress here.
		# No AI needed, one-option event.
	}
}

##################################################
# Personal Agendas
# by Ewan Cowhig Croft
# 2011 - 2020
##################################################

scripted_trigger agent_events_2011_suitable_relation_trigger = {
	OR = {
		AND = {
			has_any_moderate_bad_relationship_with_character_trigger = { CHARACTER = root }
			opinion = {
				target = root
				value <= -30
			}
		}
		opinion = {
			target = root
			value <= -90
		}
	}
}

#	Negative relations hurt scheme
agent_events.2011 = {
	type = character_event
	title = agent_events.2011.t
	desc = agent_events.2011.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = stress
	}
	right_portrait = {
		character = scope:relation
		animation = dismissal
	}
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_agent_charges >= 3
			any_scheme_agent_character = { agent_events_2011_suitable_relation_trigger = yes }
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = { agent_events_2011_suitable_relation_trigger = yes }
				save_scope_as = relation
			}
		}
	}

	# Can't you two hold it for just two seconds?
	option = {
		name = agent_events.2011.a
		
		scope:scheme = { change_opportunities = -4 }

		# No stress here.
		# No AI needed, one-option event.
	}
}

##################################################
# A Little Competition
# by Ewan Cowhig Croft
# 2021 - 2030
##################################################

scripted_trigger agent_events_2021_valid_competing_agents_trigger = {
	save_temporary_scope_as = char_temp
	scope:scheme = {
		any_scheme_agent_character = {
			NOT = { this = scope:char_temp } #Unop: To not select twice the same character for both role
			number_of_opposing_traits = {
				target = scope:char_temp
				value >= 2
			}
			# Don't grab anyone above a potential, since we might gradiate the relationship here.
			NOR = {
				has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:char_temp }
				has_any_moderate_bad_relationship_with_character_trigger = { CHARACTER = scope:char_temp }
			}
			save_temporary_scope_as = char_temp_2
		}
	}
}

#	Skilled agents with opposite traits compete
agent_events.2021 = {
	type = character_event
	title = agent_events.2021.t
	desc = agent_events.2021.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = scope:agent_1
		animation = happiness
	}
	right_portrait = {
		character = scope:agent_2
		animation = ecstasy
	}

	lower_center_portrait = root
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 2
			any_scheme_agent_character = {
				# Don't stop iterating at the first valid character.
				count = all
				agent_events_2021_valid_competing_agents_trigger = yes
			}
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = { agent_events_2021_valid_competing_agents_trigger = yes }
				save_scope_as = agent_1
			}
			random_scheme_agent_character = {
				limit = {
					number_of_opposing_traits = {
						target = scope:agent_1
						value >= 2
					}
					# Don't grab anyone above a potential, since we might gradiate the relationship here.
					NOR = {
						has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:agent_1 }
						has_any_moderate_bad_relationship_with_character_trigger = { CHARACTER = scope:agent_1 }
					}
				}
				save_scope_as = agent_2
			}
		}
		# Add a little mutual respect.
		scope:agent_1 = {
			add_opinion = {
				target = scope:agent_2
				modifier = respect_opinion
				opinion = 10
			}
			reverse_add_opinion = {
				target = scope:agent_2
				modifier = respect_opinion
				opinion = 10
			}
		}
	}

	# Encourage this for friendly purposes.
	option = {
		name = agent_events.2021.a

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_2021_competing_agents_encouraged_rivalry_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}
		scope:agent_1 = {
			agent_events_0000_scheme_progress_towards_relation_effect = {
				TARGET = scope:agent_2
				RELATION = friend
			}
		}

		stress_impact = {
			gregarious = miniscule_stress_impact_loss
			compassionate = miniscule_stress_impact_loss
			sadistic = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = 1 }
		}
	}
	
	# Encourage mutual hostility.
	option = {
		name = agent_events.2021.b

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_2021_competing_agents_encouraged_friendship_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}
		scope:agent_1 = {
			agent_events_0000_scheme_progress_towards_relation_effect = {
				TARGET = scope:agent_2
				RELATION = rival
			}
		}

		stress_impact = {
			gregarious = miniscule_stress_impact_loss
			sadistic = miniscule_stress_impact_loss
			callous = miniscule_stress_impact_loss
			compassionate = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = -1 }
		}
	}
	
	# Leave them to it.
	option = {
		name = agent_events.2021.c

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_2021_competing_agents_left_alone_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		stress_impact = {
			shy = miniscule_stress_impact_loss
			gregarious = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_sociability = -2 }
		}
	}
}












##################################################
# IMPORTANT RELATIONS

##################################################
# Burning at Both Ends
# by Ewan Cowhig Croft
# 3001 - 3010
##################################################

scripted_trigger agent_events_3001_valid_relation_trigger = {
	has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root }
	opinion = {
		target = root
		value >= 50
	}
	NOT = { has_trait = $TRAIT$ }
}

scripted_trigger agent_events_3001_scheme_has_relation_work_opinion_modifiers_trigger = {
	OR = {
		has_scheme_modifier = agent_events_3001_pushed_best_relation_hard_modifier
		has_scheme_modifier = agent_events_3001_pushed_positive_relation_hard_modifier
		has_scheme_modifier = agent_events_3001_did_not_push_positive_relation_modifier
		has_scheme_modifier = agent_events_3011_relaxed_for_relation_modifier
		has_scheme_modifier = agent_events_3011_pushed_relation_away_hard_modifier
		has_scheme_modifier = agent_events_3011_pushed_relation_away_slightly_modifier
	}
}

#	Your lovers & friends offer to put more effort in.
agent_events.3001 = {
	type = character_event
	title = agent_events.3001.t
	desc = agent_events.3001.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = love
	}
	right_portrait = {
		character = scope:relation
		animation = stress
	}
	override_background = { reference = bedchamber }
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			any_scheme_agent_character = {
				agent_events_3001_valid_relation_trigger = { TRAIT = lazy }
			}
			agent_events_3001_scheme_has_relation_work_opinion_modifiers_trigger = no
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = {
					agent_events_3001_valid_relation_trigger = { TRAIT = lazy }
				}
				save_scope_as = relation
			}
		}
	}

	# Please, give it your all.
	option = {
		name = agent_events.3001.a
		trigger = {
			has_any_best_good_relationship_with_character_trigger = { CHARACTER = scope:relation }
		}
		reason = relation_positive

		scope:scheme = {
			change_opportunities = 4
			add_scheme_modifier = {
				type = agent_events_3001_pushed_best_relation_hard_modifier
				days = 3650
			}
		}
		# You nuke their brain.
		scope:relation = { add_stress = 200 }

		stress_impact = {
			base = medium_stress_impact_gain
			sadistic = major_stress_impact_loss
			callous = major_stress_impact_loss
			compassionate = medium_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = -4 }
		}
	}
	
	# You could do more, so much more!
	option = {
		name = agent_events.3001.b

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_3001_pushed_positive_relation_hard_modifier
				days = 3650
			}
		}
		# They're fair-disadvantaged.
		scope:relation = { add_stress = 100 }

		stress_impact = {
			sadistic = minor_stress_impact_loss
			callous = minor_stress_impact_loss
			compassionate = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = -2 }
		}
	}
	
	# I value our time together first and foremost.
	option = {
		name = agent_events.3001.c

		hidden_effect = {
			add_opinion = {
				target = scope:relation
				modifier = love_opinion
				opinion = 40
			}
		}
		reverse_add_opinion = {
			target = scope:relation
			modifier = love_opinion
			opinion = 40
		}
		add_stress = massive_stress_loss
		scope:relation = { add_stress = massive_stress_loss }

		# No stress impact, we give it as a reward.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = 2 }
		}
	}
	
	# You're doing plenty as-is.
	option = {
		name = agent_events.3001.d

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_3001_did_not_push_positive_relation_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_energy = 1 }
		}
	}
}

##################################################
# For My Sake
# by Ewan Cowhig Croft
# 3011 - 3020
##################################################

#	Your lovers & friends ask you to relax your efforts a little.
agent_events.3011 = {
	type = character_event
	title = agent_events.3011.t
	desc = agent_events.3011.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = disbelief
	}
	right_portrait = {
		character = scope:relation
		animation = worry
	}
	override_background = { reference = bedchamber }
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			any_scheme_agent_character = {
				agent_events_3001_valid_relation_trigger = { TRAIT = diligent }
			}
			agent_events_3001_scheme_has_relation_work_opinion_modifiers_trigger = no
		}
		NOT = { has_trait = lazy }
		OR = {
			has_trait = diligent
			stress >= 50
		}
	}

	immediate = {
		scope:scheme = {
			ordered_scheme_agent_character = {
				limit = {
					agent_events_3001_valid_relation_trigger = { TRAIT = diligent }
				}
				order_by = "opinion(root)" 
				save_scope_as = relation
			}
		}
	}

	# For you? Of course.
	option = {
		name = agent_events.3011.a
		
		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_3011_relaxed_for_relation_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}
		reverse_add_opinion = {
			target = scope:relation
			modifier = grateful_opinion
			opinion = 40
		}

		stress_impact = {
			base = medium_stress_impact_loss
			lazy = minor_stress_impact_loss
			compassionate = minor_stress_impact_loss
			callous = minor_stress_impact_gain
			sadistic = minor_stress_impact_gain
			diligent = medium_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = 2 }
		}
	}
	
	# A true GetRelation wouldn't ask this of me.
	option = {
		name = agent_events.3011.b
		
		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_3011_pushed_relation_away_hard_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}
		reverse_add_opinion = {
			target = scope:relation
			modifier = hurt_opinion
			opinion = -50
		}

		stress_impact = {
			base = medium_stress_impact_gain
			diligent = minor_stress_impact_loss
			callous = miniscule_stress_impact_loss
			sadistic = miniscule_stress_impact_loss
			lazy = minor_stress_impact_gain
			compassionate = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = -1 }
		}
	}
	
	# The only way out is through.
	option = {
		name = agent_events.3011.c
		
		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_3011_pushed_relation_away_slightly_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}
		reverse_add_opinion = {
			target = scope:relation
			modifier = disappointed_opinion
			opinion = -20
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_energy = 1 }
		}
	}
}

##################################################
# The Family that Stays Together
# by Ewan Cowhig Croft
# 3021 - 3030
##################################################

scripted_trigger agent_events_3021_appropriate_family_member_trigger = {
	OR = {
		is_close_or_extended_family_of = root
		is_consort_of = root
	}
	OR = {
		has_trait = diligent
		opinion = {
			target = root
			value >= 90
		}
		save_temporary_scope_as = char_temp
		trigger_if = {
			limit = {
				scope:scheme = {
					is_scheme_target_type = character
					OR = {
						is_scheme_category = hostile
						is_savable_murder_scheme_trigger = yes
					}
				}
			}
			has_trait = vengeful
		}
	}
	NOR = {
		has_trait = lazy
		trigger_if = {
			limit = {
				scope:scheme = {
					is_scheme_target_type = character
					OR = {
						is_scheme_category = hostile
						is_savable_murder_scheme_trigger = yes
					}
				}
			}
			OR = {
				has_trait = forgiving
				has_any_good_relationship_with_character_trigger = { CHARACTER = scope:scheme.scheme_target_character }
			}
		}
	}
}

#	Your family brought together by scheming
agent_events.3021 = {
	type = character_event
	title = agent_events.3021.t
	desc = agent_events.3021.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = happiness
	}
	right_portrait = {
		character = scope:relation
		animation = admiration
	}
	override_background = { reference = sitting_room }
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			scheme_agent_charges < opportunity_cap_value
			any_scheme_agent_character = { agent_events_3021_appropriate_family_member_trigger = yes }
		}
	}

	immediate = {
		scope:scheme = {
			ordered_scheme_agent_character = {
				limit = { agent_events_3021_appropriate_family_member_trigger = yes }
				order_by = "opinion(root)"
				save_scope_as = relation
			}
		}
	}

	# Familial bliss.
	option = {
		name = agent_events.3021.a

		# Benefits with the relation.
		add_favour_hook_if_possible_simple_effect = { TARGET = scope:relation }
		hidden_effect = {
			add_opinion = {
				target = scope:relation
				modifier = trust_opinion
				opinion = 30
			}
		}
		reverse_add_opinion = {
			target = scope:relation
			modifier = trust_opinion
			opinion = 30
		}
		# Benefits for the scheme.
		scope:scheme = { change_opportunities = 2 }

		# No stress here.
		# No AI needed, one-option event.
	}
}

##################################################
# Torn Apart
# by Ewan Cowhig Croft
# 3031 - 3040
##################################################

scripted_trigger agent_events_3031_appropriate_family_member_trigger = {
	OR = {
		is_close_or_extended_family_of = root
		is_consort_of = root
	}
	OR = {
		has_trait = lazy
		opinion = {
			target = root
			value >= 50
		}
	}
	NOR = {
		has_trait = diligent
		trigger_if = {
			limit = {
				scope:scheme = {
					is_scheme_target_type = character
					OR = {
						is_scheme_category = hostile
						is_savable_murder_scheme_trigger = yes
					}
				}
			}
			OR = {
				has_trait = vengeful
				has_any_bad_relationship_with_character_trigger = { CHARACTER = scope:scheme.scheme_target_character }
			}
		}
	}
}

#	Your family torn apart by scheming.
agent_events.3031 = {
	type = character_event
	title = agent_events.3031.t
	desc = agent_events.3031.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = worry
	}
	right_portrait = {
		character = scope:relation
		animation = grief
	}
	override_background = { reference = bedchamber }
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		NOT = { has_trait = lazy }
		# Must be a hard worker.
		OR = {
			has_trait = diligent
			AND = {
				has_trait = vengeful
				scope:scheme = {
					is_scheme_target_type = character
					scheme_target_character ?= {
						has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
					}
				}
			}
			# Any scheme that's been going on for a long-ish time.
			scope:scheme = { scheme_duration_days >= 1825 }
		}
		scope:scheme = {
			scheme_number_of_filled_agent_slots >= 1
			any_scheme_agent_character = { agent_events_3031_appropriate_family_member_trigger = yes }
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = { agent_events_3031_appropriate_family_member_trigger = yes }
				save_scope_as = relation
			}
		}
	}

	# Please, scope:relation, it's not like that.
	option = {
		name = agent_events.3031.a
		
		duel = {
			skill = diplomacy
			value = high_skill_rating
			# Your pleading is pitiful.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = 3.5
					min = -49
				}
				min = 5
				desc = agent_events.3031.a.tt.success
				send_interface_toast = {
					title = agent_events.3031.a.tt.success
					left_icon = scope:relation
					reverse_add_opinion = {
						target = scope:relation
						modifier = pity_opinion
						opinion = -15
					}
				}
			}
			# Your words fall on deaf ears.
			50 = {
				compare_modifier = {
					value = scope:duel_value
					multiplier = -3.5
					min = -49
				}
				min = 5
				desc = agent_events.3031.a.tt.failure
				send_interface_toast = {
					title = agent_events.3031.a.tt.failure
					left_icon = scope:relation
					reverse_add_opinion = {
						target = scope:relation
						modifier = frustrated_opinion
						opinion = -50
					}
				}
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = 1 }
		}
	}

	# They just don't understand my vision!
	option = {
		name = agent_events.3031.b
		
		reverse_add_opinion = {
			target = scope:relation
			modifier = frustrated_opinion
			opinion = -35
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = -1 }
		}
	}
}

##################################################
# Second Thoughts
# by Ewan Cowhig Croft
# 3041 - 3050
##################################################

scripted_trigger agent_events_3041_valid_close_relation_trigger = {
	OR = {
		AND = {
			is_close_or_extended_family_of = scope:scheme.scheme_target_character
			opinion = {
				target = scope:scheme.scheme_target_character
				value >= 70
			}
		}
		has_any_best_good_relationship_with_character_trigger = { CHARACTER = scope:scheme.scheme_target_character }
	}
}

scripted_effect agent_events_3041_duel_to_stay_effect = {
	duel = {
		skill = $SKILL$
		target = scope:target_relation
		# They'll stay.
		50 = {
			compare_modifier = {
				value = scope:duel_value
				multiplier = 3.5
				min = -49
			}
			min = 5
			desc = agent_events.3041.$LOC$.tt.success
			send_interface_toast = {
				title = agent_events.3041.$LOC$.tt.success
				left_icon = scope:target_relation
				custom_tooltip = {
					text = agent_events.3041.tt.forced_to_stay
					scope:target_relation = {
						force_add_to_agent_slot = {
							agent_slot = scope:agent_slot
							years = 5
						}
					}
				}
				reverse_add_opinion = {
					target = scope:target_relation
					modifier = frustrated_opinion
					opinion = -30
				}
			}
		}
		# They'll go.
		50 = {
			compare_modifier = {
				value = scope:duel_value
				multiplier = -3.5
				min = -49
			}
			min = 5
			desc = agent_events.3041.$LOC$.tt.failure
			send_interface_toast = {
				title = agent_events.3041.$LOC$.tt.failure
				left_icon = scope:target_relation
				scope:target_relation = { forbid_from_scheme = scope:scheme }
			}
		}
	}
}

#	Their close relations/positive-opinion family have second thoughts.
agent_events.3041 = {
	type = character_event
	title = agent_events.3041.t
	desc = agent_events.3041.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = disapproval
	}
	right_portrait = {
		character = scope:target_relation
		animation = stress
	}
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			is_scheme_target_type = character
			OR = {
				is_scheme_category = hostile
				is_savable_murder_scheme_trigger = yes
			}
			any_scheme_agent_character = { agent_events_3041_valid_close_relation_trigger = yes }
		}
	}

	immediate = {
		scope:scheme = {
			ordered_scheme_agent_character = {
				limit = { agent_events_3041_valid_close_relation_trigger = yes }
				order_by = "opinion(scope:scheme.scheme_target_character)"
				save_scope_as = target_relation
			}
			random_scheme_agent_slot = {
				limit = { slot_character = scope:target_relation }
				save_scope_as = agent_slot
			}
		}
	}

	# Forced already: remember why you're here.
	option = {
		name = agent_events.3041.a
		trigger = {
			scope:target_relation = { is_forced_into_scheme = scope:scheme }
		}

		custom_tooltip = {
			text = agent_events.3041.a.tt.forced_to_stay_longer
			scope:target_relation = {
				force_add_to_agent_slot = {
					agent_slot = scope:agent_slot
					years = 10
				}
			}
		}
		scope:target_relation = {
			progress_towards_rival_effect = {
				REASON = rival_forced_into_scheme_scheme
				CHARACTER = root
				OPINION = default_rival_opinion
			}
		}

		stress_impact = {
			arbitrary = medium_stress_impact_loss
			callous = miniscule_stress_impact_loss
			sadistic = miniscule_stress_impact_loss
			compassionate = minor_stress_impact_gain
			just = medium_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_compassion = -2 }
		}
	}
	
	# Diplo duel to convince them to stay.
	option = {
		name = agent_events.3041.b

		agent_events_3041_duel_to_stay_effect = {
			SKILL = diplomacy
			LOC = b
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_energy = 1 }
		}
	}
	
	# Intrigue duel to convince them to stay.
	option = {
		name = agent_events.3041.c

		agent_events_3041_duel_to_stay_effect = {
			SKILL = intrigue
			LOC = c
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_honor = -1 }
		}
	}
	
	# They can leave at any time.
	option = {
		name = agent_events.3041.d

		scope:target_relation = { forbid_from_scheme = scope:scheme }

		stress_impact = {
			just = miniscule_stress_impact_loss
			compassionate = miniscule_stress_impact_loss
			callous = minor_stress_impact_gain
			sadistic = minor_stress_impact_gain
			arbitrary = minor_stress_impact_gain
		}
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_energy = -1 }
		}
	}
}

##################################################
# A Common Enemy
# by Ewan Cowhig Croft
# 3051 - 3060
##################################################

scripted_trigger agent_events_3051_valid_close_relation_trigger = {
	OR = {
		has_any_moderate_bad_relationship_with_character_trigger = { CHARACTER = scope:scheme.scheme_target_character }
		has_relation_grudge = scope:scheme.scheme_target_character
	}
	opinion = {
		target = root
		value >= 1
	}
}

#	Their rivals grow to respect and bond with you over scheme.
agent_events.3051 = {
	type = character_event
	title = agent_events.3051.t
	desc = agent_events.3051.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = happiness
	}
	right_portrait = {
		character = scope:target_rival
		animation = admiration
	}
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			is_scheme_target_type = character
			OR = {
				is_scheme_category = hostile
				is_savable_murder_scheme_trigger = yes
			}
			any_scheme_agent_character = { agent_events_3051_valid_close_relation_trigger = yes }
		}
	}

	immediate = {
		scope:scheme = {
			ordered_scheme_agent_character = {
				limit = { agent_events_3051_valid_close_relation_trigger = yes }
				order_by = {
					add = "opinion(scope:scheme.scheme_target_character)"
					multiply = -1
				}
				save_scope_as = target_rival
				add_opinion = {
					target = root
					modifier = respect_opinion
					opinion = 30
				}
			}
		}
	}

	# Accept the favour.
	option = {
		name = agent_events.3051.a
		trigger = {
			can_add_hook = {
				target = scope:target_rival
				type = favor_hook
			}
		}

		add_favour_hook_if_possible_simple_effect = { TARGET = scope:target_rival }

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_rationality = 1 }
		}
	}
	
	# Maybe we can be friends?
	option = {
		name = agent_events.3051.b
		trigger = {
			NOT = {
				has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = scope:target_rival }
			}
		}

		agent_events_0000_scheme_progress_towards_relation_effect = {
			TARGET = scope:target_rival
			RELATION = friend
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_sociability = 1 }
		}
	}
	
	# Plough it into the scheme, please.
	option = {
		name = agent_events.3051.c

		scope:scheme = {
			if = {
				limit = { scheme_agent_charges < opportunity_cap_value }
				change_opportunities = 2
			}
		}
		scope:target_rival = {
			add_opinion = {
				target = root
				modifier = respect_opinion
				opinion = 20
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_energy = 1 }
		}
	}
}

##################################################
# Saving Grace
# by Ewan Cowhig Croft
# 3061 - 3070
##################################################

scripted_trigger agent_events_3061_valid_spymaster_trigger = {
	is_councillor_of = scope:scheme.scheme_target_character
	has_council_position = councillor_spymaster
	opinion = {
		target = root
		value >= 1
	}
}

#	Their spymaster buys you a grace refresh.
agent_events.3061 = {
	type = character_event
	title = agent_events.3061.t
	desc = agent_events.3061.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = happiness
	}
	right_portrait = {
		character = scope:target_spymaster
		animation = spymaster
	}
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			is_type_secret = yes
			is_scheme_target_type = character
			OR = {
				is_scheme_category = hostile
				is_savable_murder_scheme_trigger = yes
			}
			any_scheme_agent_character = { agent_events_3061_valid_spymaster_trigger = yes }
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = { agent_events_3061_valid_spymaster_trigger = yes }
				save_scope_as = target_spymaster
			}
		}
	}

	# Good job!
	option = {
		name = agent_events.3061.a

		custom_tooltip = {
			text = agent_events.3061.a.tt.extra_grace
			scope:scheme = {
				increment_variable_effect = {
					VAR = secrecy_grace_period
					VAL = 6
				}
			}
		}

		# No stress here.
		# No AI needed, one-option event.
	}
}

##################################################
# If I May
# by Ewan Cowhig Croft
# 3071 - 3080
##################################################

scripted_trigger agent_events_3071_valid_agent_trigger = {
	OR = {
		agent_events_3061_valid_spymaster_trigger = yes
		AND = {
			is_councillor_of = scope:scheme.scheme_target_character
			intrigue >= extremely_high_skill_rating
		}
		has_relation_nemesis = scope:scheme.scheme_target_character
	}
}

#	Their spymaster, high scheme skill councillor, or nemesis unlocks additional agent slots.
agent_events.3071 = {
	type = character_event
	title = agent_events.3071.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = {
					scope:agent = { has_relation_nemesis = scope:target }
				}
				desc = agent_events.3071.desc.intro.nemesis
			}
			triggered_desc = {
				trigger = {
					scope:agent = { has_council_position = councillor_spymaster }
				}
				desc = agent_events.3071.desc.intro.spymaster
			}
			desc = agent_events.3071.desc.intro.councillor
		}
		desc = agent_events.3071.desc.outro
	}
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = personality_rational
	}
	right_portrait = {
		character = scope:agent
		animation = spymaster
	}
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			# Only for our accounted-for types.
			OR = {
				is_savable_murder_scheme_trigger = yes
				scheme_type = abduct
				scheme_type = claim_throne
				scheme_type = depose
				scheme_type = overthrow_regent
				scheme_type = seize_realm
				scheme_type = steal_back_artifact
			}
			any_scheme_agent_character = { agent_events_3071_valid_agent_trigger = yes }
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = { agent_events_3061_valid_spymaster_trigger = yes }
				save_scope_as = agent
			}
		}
	}

	# Take the success agent.
	option = {
		name = agent_events.3071.a

		scope:scheme = {
			switch = {
				trigger = scheme_type
				murder = { add_agent_slot = agent_thug }
				abduct = { add_agent_slot = agent_muscle }
				claim_throne = { add_agent_slot = agent_scribe }
				depose = { add_agent_slot = agent_diplomat }
				overthrow_regent = { add_agent_slot = agent_ambusher }
				seize_realm = { add_agent_slot = agent_diplomat }
				steal_back_artifact = { add_agent_slot = agent_thug }
			}
		}

		# No stress here.
		ai_chance = {
			# Grab any new agent you can get.
			base = 100
		}
	}
	
	# Take the speed agent.
	option = {
		name = agent_events.3071.b

		scope:scheme = {
			switch = {
				trigger = scheme_type
				murder = { add_agent_slot = agent_footpad }
				abduct = { add_agent_slot = agent_footpad }
				claim_throne = { add_agent_slot = agent_socialite }
				depose = { add_agent_slot = agent_socialite }
				overthrow_regent = { add_agent_slot = agent_tracker }
				seize_realm = { add_agent_slot = agent_planner }
				steal_back_artifact = { add_agent_slot = agent_footpad }
			}
		}

		# No stress here.
		ai_chance = {
			# Grab any new agent you can get.
			base = 100
		}
	}
	
	# Take the secrecy agent.
	option = {
		name = agent_events.3071.c
		trigger = {
			scope:scheme = { is_type_secret = yes }
		}

		scope:scheme = {
			switch = {
				trigger = scheme_type
				murder = { add_agent_slot = agent_alibi }
				abduct = { add_agent_slot = agent_decoy }
				claim_throne = { add_agent_slot = agent_decoy }
				depose = { add_agent_slot = agent_alibi }
				overthrow_regent = { add_agent_slot = agent_lookout }
				seize_realm = { add_agent_slot = agent_decoy }
				steal_back_artifact = { add_agent_slot = agent_alibi }
			}
		}

		# No stress here.
		ai_chance = {
			# Grab any new agent you can get.
			base = 100
		}
	}
	
	# We're doing fine, thank you.
	option = {
		name = agent_events.3071.d

		scope:scheme = { change_opportunities = 2 }
		reverse_add_opinion = {
			target = scope:agent
			modifier = disrespect_opinion
			opinion = -10
		}

		# No stress here.
		ai_chance = {
			# AI should not pick this option: _always_ get an agent slot.
			base = 1
		}
	}
}












##################################################
# DISTANCE TO TARGET

##################################################
# Too Far Afield
# by Ewan Cowhig Croft
# 4001 - 4010
##################################################

scripted_trigger agent_events_4001_too_far_from_target_trigger = {
	is_imprisoned = no
	is_travelling = no
	is_commanding_army = no
	exists = location #Unop: To avoid the error: Character with no location in link 'location'
	location = { is_sea_province = no } #Unop: Computation distance will fail at sea
	exists = scope:scheme.scheme_target_character.location
	scope:scheme.scheme_target_character.location = { is_sea_province = no } #Unop: Computation distance will fail at sea
	location ?= {
		squared_distance = {
			target = scope:scheme.scheme_target_character.location
			value >= squared_distance_large
		}
	}
}

#	Distance hampers agent effectiveness.
agent_events.4001 = {
	type = character_event
	title = agent_events.4001.t
	desc = agent_events.4001.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = stress
	}
	right_portrait = {
		character = scope:distant_agent
		animation = worry
	}
	override_background = { reference = throne_room }
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { months = 18 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			is_scheme_target_type = character
			scheme_target_character = {
				is_imprisoned = no
				is_travelling = no
				is_commanding_army = no
			}
			NOT = { has_scheme_modifier = agent_events_4001_distance_malus_t5_modifier }
			any_scheme_agent_character = {
				exists = this
				agent_events_4001_too_far_from_target_trigger = yes
			}
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = {
					exists = this
					agent_events_4001_too_far_from_target_trigger = yes
				}
				save_scope_as = distant_agent
			}
		}
	}

	# Get out of here, scope:distant_agent!
	option = {
		name = agent_events.4001.a

		scope:distant_agent = { forbid_from_scheme = scope:scheme }

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_rationality = 1 }
		}
	}

	# Damnation...
	option = {
		name = agent_events.4001.b

		scope:scheme = {
			switch = {
				trigger = has_scheme_modifier 
				agent_events_4001_distance_malus_t4_modifier = {
					hidden_effect = { remove_scheme_modifier = agent_events_4001_distance_malus_t4_modifier }
					add_scheme_modifier = { type = agent_events_4001_distance_malus_t5_modifier }
				}
				agent_events_4001_distance_malus_t3_modifier = {
					hidden_effect = { remove_scheme_modifier = agent_events_4001_distance_malus_t3_modifier }
					add_scheme_modifier = { type = agent_events_4001_distance_malus_t4_modifier }
				}
				agent_events_4001_distance_malus_t2_modifier = {
					hidden_effect = { remove_scheme_modifier = agent_events_4001_distance_malus_t2_modifier }
					add_scheme_modifier = { type = agent_events_4001_distance_malus_t3_modifier }
				}
				agent_events_4001_distance_malus_t1_modifier = {
					hidden_effect = { remove_scheme_modifier = agent_events_4001_distance_malus_t1_modifier }
					add_scheme_modifier = { type = agent_events_4001_distance_malus_t2_modifier }
				}
				fallback = {
					add_scheme_modifier = { type = agent_events_4001_distance_malus_t1_modifier }
				}
			}
		}

		# No stress here.
		ai_chance = {
			base = 1
			ai_value_modifier = { ai_energy = -1 }
		}
	}
}

##################################################
# A Shadow At Court
# by Ewan Cowhig Croft
# 4011 - 4020
##################################################

scripted_trigger agent_events_4011_nicely_close_to_target_trigger = {
	#Unop: Some location sanity checks
	exists = location
	exists = scope:scheme.scheme_target_character.location
	location = { is_sea_province = no }
	scope:scheme.scheme_target_character.location = { is_sea_province = no }
	location ?= scope:scheme.scheme_target_character.location
	save_temporary_scope_as = char_temp
	scope:scheme = {
		switch = {
			trigger = scheme_skill
			# We put intrigue out of order at the top because we know this is gonna be the majority of the relevant schemes.
			intrigue = { scope:char_temp.intrigue >= @agent_events_4011_skilled_agent_value }
			diplomacy = { scope:char_temp.diplomacy >= @agent_events_4011_skilled_agent_value }
			martial = { scope:char_temp.martial >= @agent_events_4011_skilled_agent_value }
			stewardship = { scope:char_temp.stewardship >= @agent_events_4011_skilled_agent_value }
			learning = { scope:char_temp.learning >= @agent_events_4011_skilled_agent_value }
			prowess = { scope:char_temp.prowess >= @agent_events_4011_skilled_agent_value }
		}
	}
}

#	Distance enhances agent effectiveness.
agent_events.4011 = {
	type = character_event
	title = agent_events.4011.t
	desc = agent_events.4011.desc
	theme = generic_intrigue_scheme
	left_portrait = {
		character = root
		animation = happiness
	}
	right_portrait = {
		character = scope:skilled_agent
		animation = personality_bold
	}
	# Icon overrides.
	## Tabbed one degree further for easy folding.
		## Diplo schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = diplomacy }
			}
			reference = "gfx/interface/icons/event_types/type_diplomacy.dds"
		}
		## Martial or prowess schemes.
		override_icon = {
			trigger = {
				scope:scheme = {
					scheme_skill = martial
					scheme_skill = prowess
				}
			}
			reference = "gfx/interface/icons/event_types/type_martial.dds"
		}
		## Stewardship schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = stewardship }
			}
			reference = "gfx/interface/icons/event_types/type_stewardship.dds"
		}
		## Intrigue schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = intrigue }
			}
			reference = "gfx/interface/icons/event_types/type_intrigue.dds"
		}
		## Learning schemes.
		override_icon = {
			trigger = {
				scope:scheme = { scheme_skill = learning }
			}
			reference = "gfx/interface/icons/event_types/type_learning.dds"
		}

	# Scheme Preparations status bar
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	cooldown = { years = 3 }

	trigger = {
		scope:scheme = {
			scheme_duration_days >= @scheme_min_start_before_agent_events
			scheme_number_of_filled_agent_slots >= 1
			is_scheme_target_type = character
			scheme_target_character = {
				is_imprisoned = no
				is_travelling = no
				is_commanding_army = no
			}
			NOR = {
				has_scheme_modifier = agent_events_4011_bonus_growth_modifier
				has_scheme_modifier = agent_events_4011_bonus_max_modifier
			}
			any_scheme_agent_character = {
				exists = this
				agent_events_4011_nicely_close_to_target_trigger = yes
			}
		}
	}

	immediate = {
		scope:scheme = {
			random_scheme_agent_character = {
				limit = {
					exists = this
					agent_events_4011_nicely_close_to_target_trigger = yes
				}
				save_scope_as = skilled_agent
			}
		}
	}

	# Scheme growth, please.
	option = {
		name = agent_events.4011.a

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_4011_bonus_growth_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		# No stress here.
		ai_chance = {
			# Just grab a bonus at ranodm.
			base = 100
		}
	}
	
	# Max success chance sounds good.
	option = {
		name = agent_events.4011.b

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_4011_bonus_max_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		# No stress here.
		ai_chance = {
			# Just grab a bonus at ranodm.
			base = 100
		}
	}
	
	# More secrecy!
	option = {
		name = agent_events.4011.c
		trigger = {
			scope:scheme = { is_type_secret = yes }
		}

		scope:scheme = {
			add_scheme_modifier = {
				type = agent_events_4011_bonus_secrecy_modifier
				days = @scheme_beneficial_modifier_default_duration
			}
		}

		# No stress here.
		ai_chance = {
			# Just grab a bonus at ranodm.
			base = 100
		}
	}
	
	# Take the opportunities.
	option = {
		name = agent_events.4011.d
		trigger = { scope:scheme.scheme_agent_charges < opportunity_cap_value }

		scope:scheme = { change_opportunities = 2 }

		# No stress here.
		ai_chance = {
			# Just grab a bonus at ranodm.
			base = 100
		}
	}
}












##################################################
# MAINTENANCE

##################################################
# On-Action Wrapper
# by Ewan Cowhig Croft
# 9801 - 9810
##################################################

#	Contains the on_action with all the agent events in it, so then we just plonk this event at high rarity in other on_actions.
agent_events.9801 = {
	hidden = yes

	immediate = {
		trigger_event = { on_action = agent_events_on_action }
	}
}
