﻿namespace = laamp_extra_contract_schemes

##################################################
#	laamp_extra_contract_schemes.0001 - Scheme for contract to protect minority vassal. Intro event.
#	laamp_extra_contract_schemes.0002 - Success event.
#	laamp_extra_contract_schemes.0003 - Failure event.
#	laamp_extra_contract_schemes.0011 - Scheme for contract to prison break. Intro event.
#	laamp_extra_contract_schemes.0012 - Success event.
#	laamp_extra_contract_schemes.0013 - Failure event.
#	laamp_extra_contract_schemes.0020 - Scheme for contract to help find secrets. Minor secret event.
#	laamp_extra_contract_schemes.0021 - Major secret event.
#	laamp_extra_contract_schemes.0022 - Get a hook event.
#	laamp_extra_contract_schemes.0023 - Success event.
#	laamp_extra_contract_schemes.0024 - Failure event.
#	laamp_extra_contract_schemes.0030 - Success event.
##################################################


#Scheme for contract to protect minority vassal.
#Intro event.
laamp_extra_contract_schemes.0001 = {
	type = character_event
	title = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:task_contract = { has_task_contract_type = laamp_cultural_minority_contract } }
				desc = laamp_extra_contract_schemes.0001.t_culture
			}
			triggered_desc = {
				trigger = { scope:task_contract = { has_task_contract_type = laamp_religious_minority_contract } }
				desc = laamp_extra_contract_schemes.0001.t_faith
			}
		}
	}
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:task_contract = { has_task_contract_type = laamp_cultural_minority_contract } }
				desc = laamp_extra_contract_schemes.0001.desc_culture
			}
			triggered_desc = {
				trigger = { scope:task_contract = { has_task_contract_type = laamp_religious_minority_contract } }
				desc = laamp_extra_contract_schemes.0001.desc_faith
			}
		}
		first_valid = {
			triggered_desc = {
				trigger = { scope:scheme = { scheme_type = protect_minority_vassal_contract_diplomacy_scheme } }
				desc = laamp_extra_contract_schemes.0001.desc_diplomacy
			}
			triggered_desc = {
				trigger = { scope:scheme = { scheme_type = protect_minority_vassal_contract_martial_scheme } }
				desc = laamp_extra_contract_schemes.0001.desc_martial
			}
			triggered_desc = {
				trigger = { scope:scheme = { scheme_type = protect_minority_vassal_contract_intrigue_scheme } }
				desc = laamp_extra_contract_schemes.0001.desc_intrigue
			}
			triggered_desc = {
				trigger = { scope:scheme = { scheme_type = protect_minority_vassal_contract_learning_scheme } }
				desc = laamp_extra_contract_schemes.0001.desc_learning
			}
		}
	}
	theme = intrigue
	left_portrait = {
		character = root
		animation = debating
	}
	right_portrait = {
		character = scope:task_contract_target
		animation = interested
	}
	lower_left_portrait = {
		character = scope:task_contract_employer
	}
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	immediate = {
	}

	# Boost success chance.
	option = {
		name = laamp_extra_contract_schemes.0001.a
		reason = gives_scheme_success

		scope:scheme = {
			add_scheme_modifier = { type = scheme_starter_bonus_laamp_contracts_success_modifier }
		}

		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_energy = 1
				ai_boldness = 0.5
			}
		}
	}

	# Boost speed.
	option = {
		name = laamp_extra_contract_schemes.0001.b
		reason = gives_scheme_phase_duration #Unop: Was 'gives_scheme_speed' but this does not exists

		scope:scheme = {
			add_scheme_modifier = { type = scheme_starter_bonus_laamp_contracts_speed_modifier }
		}

		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 1
				ai_greed = 0.5
			}
		}
	}

	# No starting bonus.
	option = {
		name = laamp_extra_contract_schemes.0001.d

		# No effects, you just proceed into the scheme.
		custom_tooltip = laamp_base_contract_schemes.0001.d.tt

		# No stress for going the opt-out route.
		ai_chance = {
			# Higher base modifier because we want the AI to take this, mostly.
			base = 100
			ai_value_modifier = {
				ai_energy = -0.5
				ai_boldness = -0.5
				ai_greed = -0.5
			}
		}
	}
}

#Success event.
laamp_extra_contract_schemes.0002 = {
	type = character_event
	window = scheme_successful_event
	title = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:scheme_type = flag:diplomacy }
				desc = laamp_extra_contract_schemes.0002.t_diplomacy
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:martial }
				desc = laamp_extra_contract_schemes.0002.t_martial
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:intrigue }
				desc = laamp_extra_contract_schemes.0002.t_intrigue
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:learning }
				desc = laamp_extra_contract_schemes.0002.t_learning
			}
		}
	}
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:scheme_type = flag:diplomacy }
				desc = laamp_extra_contract_schemes.0002.desc_diplomacy
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:martial }
				desc = laamp_extra_contract_schemes.0002.desc_martial
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:intrigue }
				desc = laamp_extra_contract_schemes.0002.desc_intrigue
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:learning }
				desc = laamp_extra_contract_schemes.0002.desc_learning
			}
		}
	}
	theme = intrigue
	override_background = {
		reference = throne_room
	}
	left_portrait = {
		character = root
		animation = war_over_win
	}
	right_portrait = {
		character = scope:task_contract_employer
		animation = admiration
	}
	lower_left_portrait = {
		character = scope:task_contract_target
	}

	immediate = {

		scope:scheme = {
			# save all scopes needed for descriptions
			task_contract.var:task_contract_employer = { save_scope_as = task_contract_employer }
			task_contract.var:task_contract_target = { save_scope_as = task_contract_target }
			switch = {
				trigger = scheme_type
				protect_minority_vassal_contract_diplomacy_scheme = {
					save_scope_value_as = {
						name = scheme_type
						value = flag:diplomacy
					}
				}
				protect_minority_vassal_contract_martial_scheme = {
					save_scope_value_as = {
						name = scheme_type
						value = flag:martial
					}
				}
				protect_minority_vassal_contract_intrigue_scheme = {
					save_scope_value_as = {
						name = scheme_type
						value = flag:intrigue
					}
				}
				protect_minority_vassal_contract_learning_scheme = {
					save_scope_value_as = {
						name = scheme_type
						value = flag:learning
					}
				}
			}
			if = {
				limit = {
					task_contract = {
						has_task_contract_type = laamp_cultural_minority_contract
					}
				}
				save_scope_value_as = {
					name = contract_type
					value = flag:culture
				}
				scope:task_contract_employer = {
					vassal_contract_set_obligation_level = {
						type = title_revocation_rights
						level = 1
					}
				}
			}
			else = {
				save_scope_value_as = {
					name = contract_type
					value = flag:faith
				}
				scope:task_contract_employer = {
					vassal_contract_set_obligation_level = {
						type = religious_rights
						level = 1
					}
				}
			}
			scope:scheme.task_contract = { complete_task_contract = success_standard }
			# Aaaand end things.
			end_scheme = yes
		}
		hidden_effect = {
			if = {
				limit = {
					scope:scheme_type ?= flag:martial
				}
				scope:task_contract_target = {
					progress_towards_rival_effect = {
						REASON = rival_raided_me
						CHARACTER = scope:task_contract_employer
						OPINION = default_rival_opinion
					}
				}
			}
		}
	}

	# Acknowledge.
	option = {
		name = laamp_extra_contract_schemes.0002.a
		flavor = laamp_base_contract_schemes.0000.f.contract_concluded
		stress_impact = { arrogant = minor_stress_impact_loss }
	}
}

#Failure event.
laamp_extra_contract_schemes.0003 = {
	type = character_event
	window = scheme_failed_event
	title = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:scheme_type = flag:diplomacy }
				desc = laamp_extra_contract_schemes.0003.t_diplomacy
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:martial }
				desc = laamp_extra_contract_schemes.0003.t_martial
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:intrigue }
				desc = laamp_extra_contract_schemes.0003.t_intrigue
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:learning }
				desc = laamp_extra_contract_schemes.0003.t_learning
			}
		}
	}
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { scope:scheme_type = flag:diplomacy }
				desc = laamp_extra_contract_schemes.0003.desc_diplomacy
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:martial }
				desc = laamp_extra_contract_schemes.0003.desc_martial
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:intrigue }
				desc = laamp_extra_contract_schemes.0003.desc_intrigue
			}
			triggered_desc = {
				trigger = { scope:scheme_type = flag:learning }
				desc = laamp_extra_contract_schemes.0003.desc_learning
			}
		}
	}
	theme = intrigue
	override_background = {
		reference = throne_room
	}
	left_portrait = {
		character = root
		animation = disbelief
	}
	right_portrait = {
		character = scope:task_contract_employer
		animation = disappointed
	}
	lower_left_portrait = {
		character = scope:task_contract_target
	}

	immediate = {
		scope:scheme = {
			# save all scopes needed for descriptions
			task_contract.var:task_contract_employer = { save_scope_as = task_contract_employer }
			task_contract.var:task_contract_target = { save_scope_as = task_contract_target }
			switch = {
				trigger = scheme_type
				protect_minority_vassal_contract_diplomacy_scheme = {
					save_scope_value_as = {
						name = scheme_type
						value = flag:diplomacy
					}
				}
				protect_minority_vassal_contract_martial_scheme = {
					save_scope_value_as = {
						name = scheme_type
						value = flag:martial
					}
				}
				protect_minority_vassal_contract_intrigue_scheme = {
					save_scope_value_as = {
						name = scheme_type
						value = flag:intrigue
					}
				}
				protect_minority_vassal_contract_learning_scheme = {
					save_scope_value_as = {
						name = scheme_type
						value = flag:learning
					}
				}
			}
			if = {
				limit = {
					task_contract = {
						has_task_contract_type = laamp_cultural_minority_contract
					}
				}
				save_scope_value_as = {
					name = contract_type
					value = flag:culture
				}
			}
			else = {
				save_scope_value_as = {
					name = contract_type
					value = flag:faith
				}
			}
			scope:scheme.task_contract = { complete_task_contract = failure_standard }
			# Aaaand end things.
			end_scheme = yes
		}
	}

	# Acknowledge.
	option = {
		name = laamp_extra_contract_schemes.0003.a
		flavor = laamp_base_contract_schemes.0000.f.contract_concluded
		scope:task_contract_target = {
			add_opinion = {
				modifier = treachery_opinion
				target = scope:task_contract_employer
			}
		}
		stress_impact = {
			base = medium_stress_impact_gain
			humble = minor_stress_impact_loss
			arrogant = minor_stress_impact_gain
		}
	}
}

##Scheme for contract to prison break.
#Intro event.
laamp_extra_contract_schemes.0011 = {
	type = character_event
	title = laamp_extra_contract_schemes.0011.t
	desc = laamp_extra_contract_schemes.0011.desc
	theme = intrigue
	left_portrait = {
		character = root
		animation = worry
	}
	lower_right_portrait = {
		character = scope:task_contract_target
		animation = schadenfreude
	}
	lower_left_portrait = {
		character = scope:task_contract_employer
	}
	lower_center_portrait = {
		character = scope:task_contract_object
	}
	widget = {
		gui = "event_window_widget_scheme"
		container = "custom_widgets_container"
	}

	immediate = {
	}

	# Boost success chance.
	option = {
		name = laamp_extra_contract_schemes.0001.a
		reason = gives_scheme_success

		scope:scheme = {
			add_scheme_modifier = { type = scheme_starter_bonus_laamp_contracts_success_modifier }
		}

		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_energy = 1
				ai_boldness = 0.5
			}
		}
	}

	# Boost speed.
	option = {
		name = laamp_extra_contract_schemes.0001.b
		reason = gives_scheme_phase_duration #Unop: Was 'gives_scheme_speed' but this does not exists

		scope:scheme = {
			add_scheme_modifier = { type = scheme_starter_bonus_laamp_contracts_speed_modifier }
		}

		ai_chance = {
			base = 1
			ai_value_modifier = {
				ai_boldness = 1
				ai_greed = 0.5
			}
		}
	}

	# No starting bonus.
	option = {
		name = laamp_extra_contract_schemes.0001.d

		# No effects, you just proceed into the scheme.
		custom_tooltip = laamp_base_contract_schemes.0001.d.tt

		# No stress for going the opt-out route.
		ai_chance = {
			# Higher base modifier because we want the AI to take this, mostly.
			base = 100
			ai_value_modifier = {
				ai_energy = -0.5
				ai_boldness = -0.5
				ai_greed = -0.5
			}
		}
	}
}

#Success event.
laamp_extra_contract_schemes.0012 = {
	type = character_event
	window = scheme_successful_event
	title = laamp_extra_contract_schemes.0012.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:agent_thief }
				desc = laamp_extra_contract_schemes.0012.desc_thief
			}
			desc = laamp_extra_contract_schemes.0012.desc_no_thief
		}
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:agent_lookout_speed } #Unop: Since agent_lookout is now agent_lookout_speed (see ep3_contract_event.0030)
				desc = laamp_extra_contract_schemes.0012.desc_lookout
			}
			desc = laamp_extra_contract_schemes.0012.desc_no_lookout
		}
		desc = laamp_extra_contract_schemes.0012.desc
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:agent_infiltrator }
				desc = laamp_extra_contract_schemes.0012.desc_infiltrator
			}
			desc = laamp_extra_contract_schemes.0012.desc_no_infiltrator
		}
		desc = laamp_extra_contract_schemes.0012.desc_free
	}
	theme = intrigue
	override_background = {
		reference = wilderness_scope
	}
	left_portrait = {
		character = root
		animation = jockey_gallop
		camera = camera_event_horse_left
	}
	right_portrait = {
		character = scope:task_contract_object
		animation = jockey_gallop
		camera = camera_event_horse_left
	}
	lower_left_portrait = {
		character = scope:task_contract_employer
	}
	lower_right_portrait = {
		character = scope:task_contract_target
	}

	immediate = {
		scope:scheme = {
			# save all scopes needed for descriptions
			task_contract.var:task_contract_employer = { save_scope_as = task_contract_employer }
			task_contract.var:task_contract_target = { save_scope_as = task_contract_target }
			task_contract.var:task_contract_object = { save_scope_as = task_contract_object }
			if = {
				limit = {
					any_scheme_agent_slot = { is_agent_slot_type = agent_lookout_speed } #Unop: Since agent_lookout is now agent_lookout_speed (see ep3_contract_event.0030)
				}
				random_scheme_agent_slot = {
					limit = {
						is_agent_slot_type = agent_lookout_speed #Unop: Since agent_lookout is now agent_lookout_speed (see ep3_contract_event.0030)
					}
					slot_character = {
						save_scope_as = agent_lookout_speed #Unop: Since agent_lookout is now agent_lookout_speed (see ep3_contract_event.0030)
					}
				}
			}
			if = {
				limit = {
					any_scheme_agent_slot = { is_agent_slot_type = agent_thief }
				}
				random_scheme_agent_slot = {
					limit = {
						is_agent_slot_type = agent_thief
					}
					slot_character = {
						save_scope_as = agent_thief
					}
				}
			}
			if = {
				limit = {
					any_scheme_agent_slot = { is_agent_slot_type = agent_infiltrator }
				}
				random_scheme_agent_slot = {
					limit = {
						is_agent_slot_type = agent_infiltrator
					}
					slot_character = {
						save_scope_as = agent_infiltrator
					}
				}
			}
			task_contract = { complete_task_contract = success_standard }
			# Aaaand end things.
			end_scheme = yes
		}
	}

	# Saved character might be cool enough to join your camp
	option = {
		name = laamp_extra_contract_schemes.0012.a
		trigger = {
			scope:task_contract_object = {
				is_ruler = no
				is_adult = yes
				NOR = {
					is_spouse_of = scope:task_contract_employer
					is_heir_of = scope:task_contract_employer
				}
			}
		}
		add_courtier = scope:task_contract_object
	}
	# Return them home and get a strong hook
	option = {
		name = laamp_extra_contract_schemes.0012.b
		#displaying this to confirm what will happen to the character you saved, the actual effect was already done in the escape_from_prison_effect
		show_as_tooltip = {
			scope:task_contract_object = {
				return_to_court = yes
			}
		}
		if = {
			limit = {
				can_add_hook = {
					type = saved_my_life_hook
					target = scope:task_contract_object
				}
			}
			add_hook = {
				type = saved_my_life_hook
				target = scope:task_contract_object
			}
		}

		stress_impact = { arrogant = minor_stress_impact_loss }
	}
}

#Failure event.
laamp_extra_contract_schemes.0013 = {
	type = character_event
	window = scheme_failed_event
	title = laamp_extra_contract_schemes.0013.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { NOT = { exists = scope:agent_thief } }
				desc = laamp_extra_contract_schemes.0013.desc_no_thief
			}
			triggered_desc = {
				trigger = { NOT = { exists = scope:agent_lookout } }
				desc = laamp_extra_contract_schemes.0013.desc_no_lookout
			}
			triggered_desc = {
				trigger = { NOT = { exists = scope:agent_infiltrator } }
				desc = laamp_extra_contract_schemes.0013.desc_no_infiltrator
			}
			desc = laamp_extra_contract_schemes.0013.desc
		}
	}
	theme = intrigue
  	override_background = {
  		trigger = {
  			scope:task_contract_object = {
  				is_in_prison_type = house_arrest
  			}
  		}
  		reference = sitting_room
  	}
  	override_background = {
  		trigger = {
  			scope:task_contract_object = {
  				NOT = { is_in_prison_type = house_arrest }
  			}
  		}
  		reference = dungeon
  	}
	left_portrait = {
		character = root
		animation = disbelief
	}
	right_portrait = {
		character = scope:task_contract_object
		animation = disappointed
	}
	lower_left_portrait = {
		character = scope:task_contract_employer
	}
	lower_right_portrait = {
		character = scope:task_contract_target
	}

	immediate = {
		scope:scheme = {
			# save all scopes needed for descriptions
			task_contract.var:task_contract_employer = { save_scope_as = task_contract_employer }
			task_contract.var:task_contract_target = { save_scope_as = task_contract_target }
			task_contract.var:task_contract_object = { save_scope_as = task_contract_object }
			if = {
				limit = {
					any_scheme_agent_slot = { is_agent_slot_type = agent_lookout }
				}
				random_scheme_agent_slot = {
					limit = {
						is_agent_slot_type = agent_lookout
					}
					slot_character = {
						save_scope_as = agent_lookout
					}
				}
			}
			if = {
				limit = {
					any_scheme_agent_slot = { is_agent_slot_type = agent_thief }
				}
				random_scheme_agent_slot = {
					limit = {
						is_agent_slot_type = agent_thief
					}
					slot_character = {
						save_scope_as = agent_thief
					}
				}
			}
			if = {
				limit = {
					any_scheme_agent_slot = { is_agent_slot_type = agent_infiltrator }
				}
				random_scheme_agent_slot = {
					limit = {
						is_agent_slot_type = agent_infiltrator
					}
					slot_character = {
						save_scope_as = agent_infiltrator
					}
				}
			}
			task_contract = { complete_task_contract = failure_standard }
			# Aaaand end things.
			end_scheme = yes
		}
		scope:task_contract_object = {
			if = {
				limit = {
					is_in_prison_type = house_arrest
				}
				change_prison_type = dungeon
			}
			reverse_add_opinion = {
				target = scope:task_contract_target
				modifier = tried_to_escape_from_prison_opinion
			}
		}
	}

	# Acknowledge.
	option = {
		name = laamp_extra_contract_schemes.0013.a
		flavor = laamp_base_contract_schemes.0000.f.contract_concluded
		scope:task_contract_target = {
			add_opinion = {
				modifier = treachery_opinion
				target = root
			}
		}
		stress_impact = {
			base = medium_stress_impact_gain
			humble = minor_stress_impact_loss
			arrogant = minor_stress_impact_gain
		}
	}
}

##Scheme for contract to help find secrets
#Pick a minor secret to reveal
laamp_extra_contract_schemes.0020 = {
	hidden = yes

	trigger = {
		scope:target_character = {
			spymaster_task_find_secrets_court_has_minor_secrets_trigger = yes
		}
	}

	immediate = {
		scope:councillor_liege.cp:councillor_spymaster = {
			save_scope_as = active_councillor
		}
		scope:target_character = {
			#Find any secrets from the court owner
			if = {
				limit = {
					any_secret = {
						save_temporary_scope_as = illegal_or_shunned_secret
						spymaster_task_find_secrets_suitable_minor_secret_trigger = yes
					}
				}
				every_secret = {
					limit = {
						spymaster_task_find_secrets_suitable_minor_secret_trigger = yes
					}
					add_to_temporary_list = suitable_secrets
				}
			}
			#Find any secrets from courtiers or guests
			every_courtier_or_guest = {
				limit = {
					any_secret = {
						spymaster_task_find_secrets_suitable_minor_secret_trigger = yes
					}
				}
				every_secret = {
					limit = {
						spymaster_task_find_secrets_suitable_minor_secret_trigger = yes
						NOT = { is_in_list = suitable_secrets }
					}
					add_to_temporary_list = suitable_secrets
				}
			}
			#Find any secrets from direct vassals
			every_vassal = {
				limit = {
					any_secret = {
						spymaster_task_find_secrets_suitable_minor_secret_trigger = yes
					}
				}
				every_secret = {
					limit = {
						spymaster_task_find_secrets_suitable_minor_secret_trigger = yes
						NOT = { is_in_list = suitable_secrets }
					}
					add_to_temporary_list = suitable_secrets
				}
			}
		}

		#Pick a Secret to discover
		random_in_list = {
			list = suitable_secrets
			weight = {
				base = 1
				modifier = {
					add = 2
					secret_owner = {
						save_temporary_scope_as = secret_holder
					}
					spymaster_find_secrets_secret_holder_is_interesting_to_me_trigger = yes
				}
				modifier = {
					add = 1
					spymaster_find_secrets_secret_target_is_interesting_to_me_trigger = yes
				}
				# Less likely to discovery crypto-religionist secret if owner has Taqiya tenet
				modifier = {
					add = -3
					secret_type = secret_crypto_religionist
					secret_owner = {
						secret_faith ?= { has_doctrine_parameter = sanctioned_false_conversion }
					}
				}
				# Less likely to pick crypto-religionist secrets (b/c narratively they are hard to discover)
				modifier = {
					factor = 0.25
					secret_type = secret_crypto_religionist
				}
			}
			save_scope_as = secret_to_reveal
			secret_owner = {
				save_scope_as = secret_holder
			}
		}

		#Fire events
		# If the secret is a crypto-religionist secret, then there is a chance that the spymaster does not discover anything after all
		if = {
			limit = {
				scope:secret_to_reveal = {
					secret_type = secret_crypto_religionist
				}
			}
			random = {
				chance = {
					value = 50
					# Even more likely to not discover this secret if the target practices Taqiya
					if = {
						limit = { secret_faith ?= { has_doctrine_parameter = sanctioned_false_conversion } }
						add = 25
					}
				}
				trigger_event = spymaster_task.0399
			}
		}
		scope:councillor_liege = {
			if = { #It's someone I care about
				limit = {
					OR = {
						spymaster_find_secrets_secret_holder_is_interesting_to_me_trigger = yes
						scope:secret_to_reveal = {
							spymaster_find_secrets_secret_target_is_interesting_to_me_trigger = yes
						}
					}
				}
				trigger_event = {
					on_action = task_find_secrets_reveal_selection
				}
			}
			else = { #For everyone else, send a feed message
				send_interface_message = {
					type = msg_spymaster_task_good
					title = spymaster_task.0311.notification
					desc = {
						triggered_desc = {
							trigger = {
								scope:active_councillor = { intrigue <= average_skill_level }
							}
							desc = task_intrigue_good_unskilled_notification_tooltip
						}
						triggered_desc = {
							trigger = {
								scope:active_councillor = { intrigue > average_skill_level }
							}
							desc = task_intrigue_good_skilled_notification_tooltip
						}
					}

					left_icon = scope:secret_holder
					right_icon = scope:councillor

					scope:secret_to_reveal = {
						reveal_to = scope:councillor_liege
					}
				}
			}
		}
		scope:councillor = {
			if = { #Check that the Spymaster doesn't already know the secret
				limit = {
					scope:secret_to_reveal = {
						NOT = { is_known_by = prev }
					}
				}
				if = { #It's the owner of the court or someone else I care about
					limit = { spymaster_find_secrets_secret_holder_is_interesting_to_me_trigger = yes }
					trigger_event = {
						on_action = task_find_secrets_reveal_selection
					}
				}
				else = { #For everyone else, send a feed message
					send_interface_message = {
						type = msg_spymaster_task_good
						title = spymaster_task.0311.notification

						left_icon = scope:secret_holder

						desc = blank_line

						scope:secret_to_reveal = {
							reveal_to = scope:councillor
						}
					}
				}
			}
		}
	}
}

#get a major secret
laamp_extra_contract_schemes.0021 = {
	hidden = yes

	trigger = {
	}

	immediate = {
		scope:councillor_liege.cp:councillor_spymaster = {
			save_scope_as = active_councillor
		}
		scope:target_character = {
			#Find any secrets from the court owner
			if = {
				limit = {
					any_secret = {
						spymaster_task_find_secrets_suitable_major_secret_trigger = yes
					}
				}
				every_secret = {
					limit = {
						spymaster_task_find_secrets_suitable_major_secret_trigger = yes
					}
					add_to_temporary_list = suitable_secrets
				}
			}
			#Find any secrets from courtiers
			every_courtier_or_guest = {
				limit = {
					any_secret = {
						spymaster_task_find_secrets_suitable_major_secret_trigger = yes
					}
				}
				every_secret = {
					limit = {
						spymaster_task_find_secrets_suitable_major_secret_trigger = yes
						NOT = { is_in_list = suitable_secrets }
					}
					add_to_temporary_list = suitable_secrets
				}
			}
			#Find any secrets from direct vassals
			every_vassal = {
				limit = {
					any_secret = {
						spymaster_task_find_secrets_suitable_major_secret_trigger = yes
					}
				}
				every_secret = {
					limit = {
						spymaster_task_find_secrets_suitable_major_secret_trigger = yes
						NOT = { is_in_list = suitable_secrets }
					}
					add_to_temporary_list = suitable_secrets
				}
			}
		}

		#Pick a Secret to discover
		random_in_list = {
			list = suitable_secrets
			weight = {
				base = 1
				modifier = {
					add = 2
					secret_owner = {
						save_temporary_scope_as = secret_holder
					}
					spymaster_find_secrets_secret_holder_is_interesting_to_me_trigger = yes
				}
				modifier = {
					add = 1
					spymaster_find_secrets_secret_target_is_interesting_to_me_trigger = yes
				}
			}
			save_scope_as = secret_to_reveal
			secret_owner = {
				save_scope_as = secret_holder
			}
		}

		#Fire events
		scope:councillor_liege = {
			if = { #It's someone I care about
				limit = {
					OR = {
						spymaster_find_secrets_secret_holder_is_interesting_to_me_trigger = yes
						scope:secret_to_reveal = {
							spymaster_find_secrets_secret_target_is_interesting_to_me_trigger = yes
						}
					}
				}
				trigger_event = {
					on_action = task_find_secrets_reveal_selection
				}
			}
			else = { #For everyone else, send a feed message
				send_interface_message = {
					type = msg_spymaster_task_good
					title = spymaster_task.0311.notification
					desc = {
						triggered_desc = {
							trigger = {
								scope:active_councillor = { intrigue <= average_skill_level }
							}
							desc = task_intrigue_good_unskilled_notification_tooltip
						}
						triggered_desc = {
							trigger = {
								scope:active_councillor = { intrigue > average_skill_level }
							}
							desc = task_intrigue_good_skilled_notification_tooltip
						}
					}

					left_icon = scope:secret_holder
					right_icon = scope:councillor

					scope:secret_to_reveal = {
						reveal_to = scope:councillor_liege
					}
				}
			}
		}
		scope:councillor = {
			if = { #Check that the Spymaster doesn't already know the secret
				limit = {
					scope:secret_to_reveal = {
						NOT = { is_known_by = prev }
					}
				}
				if = { #It's the owner of the court or someone else I care about
					limit = {
						OR = {
							scope:secret_holder = {
								is_ruler = yes
							}
							spymaster_find_secrets_secret_holder_is_interesting_to_me_trigger = yes
							scope:secret_to_reveal = {
								spymaster_find_secrets_secret_target_is_interesting_to_me_trigger = yes
							}
						}
					}
					trigger_event = {
						on_action = task_find_secrets_reveal_selection
					}
				}
				else = { #For everyone else, send a feed message
					scope:councillor = {
						send_interface_message = {
							type = msg_spymaster_task_good
							title = spymaster_task.0311.notification

							left_icon = scope:secret_holder

							desc = blank_line

							scope:secret_to_reveal = {
								reveal_to = scope:councillor
							}
						}
					}
				}
			}
		}
		if = {
			limit = {
				exists = scope:scheme.task_contract	
			}
			scope:scheme.task_contract = {
				change_variable = {
					name = secrets_found
					add = 1
				}
			}
		}
		else = {
			scope:scheme = {
				change_variable = {
					name = secrets_found
					add = 1
				}
			}
		}
	}
}

#get a hook
laamp_extra_contract_schemes.0022 = {
	type = character_event
	title = laamp_extra_contract_schemes.0022.t
	theme = fabricate_hook_scheme
	desc = {
		desc = spymaster_task.0381.desc_other_court
		desc = spymaster_task.0381.desc
	}
	right_portrait = {
		character = root
		animation = scheme
	}
	left_portrait = {
		character = scope:character_to_hook
		animation = boredom
	}

	trigger = {
		scope:target_character = {
			OR = {
				any_courtier_or_guest = {
					spymaster_task_courtier_valid_for_hook_fabrication_trigger = yes
				}
				any_vassal = {
					spymaster_task_courtier_valid_for_hook_fabrication_trigger = yes
				}
			}
		}
	}

	immediate = {
		scope:target_character = {
			random_courtier_or_guest = {
				limit = {
					spymaster_task_courtier_valid_for_hook_fabrication_trigger = yes
				}
				weight = {
					base = 1
					modifier = { # Prioritise actual Courtiers
						add = 3
						is_courtier_of = scope:target_character
					}
				}
				save_scope_as = character_to_hook
			}
			random_vassal = {
				limit = {
					spymaster_task_courtier_valid_for_hook_fabrication_trigger = yes
				}
				weight = {
					base = 1
					modifier = { # Prioritise powerful Vassals
						add = 3
						is_powerful_vassal_of = scope:target_character
					}
				}
				save_scope_as = character_to_hook
			}
		}
	}

	#add the hook to yourself and to the employer
	option = {
		name = laamp_extra_contract_schemes.0022.a
		trigger = {
			prestige_level > 2
		}
		show_as_unavailable = {
			always = yes
		}
		scope:councillor_liege = {
			add_hook = {
				target = scope:character_to_hook
				type = fabrication_hook
			}
		}
		add_hook = {
			target = scope:character_to_hook
			type = fabrication_hook
		}
		remove_short_term_gold = medium_gold_value
		scope:scheme.task_contract = {
			change_variable = {
				name = secrets_found
				add = 1
			}
		}
		stress_impact = {
			honest = medium_stress_impact_gain
		}
		ai_chance = {
			base = 100
			modifier = {
				factor = 0
				short_term_gold <= major_gold_value
			}
		}
	}

	#add the hook to the employer
	option = {
		name = laamp_extra_contract_schemes.0022.b
		scope:councillor_liege = {
			add_hook = {
				target = scope:character_to_hook
				type = fabrication_hook
			}
		}
		scope:scheme.task_contract = {
			change_variable = {
				name = secrets_found
				add = 1
			}
		}
		stress_impact = {
			honest = medium_stress_impact_gain
		}
		ai_chance = {
			base = 1
		}
	}

	#don't take the hook
	option = {
		name = laamp_extra_contract_schemes.0022.c
		flavor = spymaster_task.0381.b.flavor
		if = {
			limit = {
				scope:scheme = {
					scheme_agent_charges < opportunity_cap_value
				}
			}
			scope:scheme = {
				change_opportunities = 1
			}
		}
		scope:character_to_hook = {
			add_opinion = {
				target = root
				modifier = grateful_opinion
				opinion = 30
			}
		}
		ai_chance = {
			base = 0
		}
	}
}

#Success event.
laamp_extra_contract_schemes.0023 = {
	type = character_event
	window = scheme_successful_event
	title = laamp_extra_contract_schemes.0023.t
	desc = laamp_extra_contract_schemes.0023.desc
	theme = intrigue
	left_portrait = {
		character = root
		animation = interested
	}
	right_portrait = {
		character = scope:task_contract_employer
		animation = scheme
	}
	lower_right_portrait = {
		character = scope:task_contract_target
	}

	immediate = {
		scope:scheme = {
			# save all scopes needed for descriptions
			task_contract.task_contract_employer = { save_scope_as = task_contract_employer }
			task_contract.task_contract_target = { save_scope_as = task_contract_target }
			task_contract.var:secrets_found = {
				save_scope_as = secrets_found_value
			}
		}

	}

	option = {
		name = laamp_extra_contract_schemes.0023.a
		scope:scheme.task_contract = { complete_task_contract = success_standard }
	}
}

#Failure event.
laamp_extra_contract_schemes.0024 = {
	type = character_event
	window = scheme_failed_event
	title = laamp_extra_contract_schemes.0024.t
	desc = laamp_extra_contract_schemes.0024.desc
	theme = intrigue
	left_portrait = {
		character = root
		animation = stunned
	}
	right_portrait = {
		character = scope:task_contract_employer
		animation = scheme
	}
	lower_right_portrait = {
		character = scope:task_contract_target
	}

	immediate = {
		scope:scheme = {
			# save all scopes needed for descriptions
			task_contract.task_contract_employer = { save_scope_as = task_contract_employer }
			task_contract.task_contract_target = { save_scope_as = task_contract_target }
		}

	}

	option = {
		name = laamp_extra_contract_schemes.0024.a
		scope:scheme.task_contract = { complete_task_contract = failure_standard }
	}
}

##Scheme for contract claim generation.
#Success event.
laamp_extra_contract_schemes.0030 = {
	type = character_event
	window = scheme_successful_event
	title = laamp_extra_contract_schemes.0030.t
	desc = laamp_extra_contract_schemes.0030.desc
	theme = intrigue
	left_portrait = {
		character = root
		animation = happy_teacher
	}
	right_portrait = {
		character = scope:task_contract_employer
		animation = interested
	}
	lower_right_portrait = {
		character = scope:task_contract_target
	}

	immediate = {
		scope:scheme = {
			# save all scopes needed for descriptions
			task_contract = {
				task_contract_employer = { save_scope_as = task_contract_employer }
				var:task_contract_councillor = { save_scope_as = task_contract_councillor }
				var:task_contract_councillor_liege = { save_scope_as = task_contract_councillor_liege }
			}
			var:attached_task_contract = {
				remove_variable = attached_scheme
			}
		}
	}

	#hand over the claim and keep it at the same time, effects handled in the laamp_help_fabricate_claim_contract's success_critical reward
	option = {
		name = laamp_extra_contract_schemes.0030.a
		trigger = {
			custom_description = {
				text = adventurer_not_famous_trigger_tt
				value = 3
				prestige_level >= 3
			}
		}
		show_as_unavailable = {
			always = yes
		}
		scope:scheme.task_contract = {
			complete_task_contract = success_critical
		}
	}

	#hand over the claim, effects handled in the laamp_help_fabricate_claim_contract's success_standard reward
	option = {
		name = laamp_extra_contract_schemes.0030.b
		scope:scheme.task_contract = {
			complete_task_contract = success_standard
		}
	}

	#keep the claim for yourself, effects handled in the laamp_help_fabricate_claim_contract's failure_standard reward
	option = {
		name = laamp_extra_contract_schemes.0030.c
		scope:scheme.task_contract = {
			complete_task_contract = failure_standard
		}
	}
}
