﻿#NOTE!
#When you add new secrets, make sure they're properly included in these scripted triggers:
# trait_is_shunned_in_faith_trigger
# trait_is_criminal_in_faith_trigger
# secret_is_shunned_in_faith_trigger
# secret_is_criminal_in_faith_trigger

#Also, all secrets should be added through their associated scripted effect/effects, not by the add_secret effect

secret_deviant = {
	category = deviancy

	is_valid = {
		secret_deviant_is_valid_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_shunned = {
		secret_deviant_is_shunned_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_criminal = {
		secret_deviant_is_criminal_trigger = {
			OWNER = scope:secret_owner
		}
	}

	on_expose = {
		save_scope_as = secret
		scope:secret_owner = {
			if = {
				limit = {
					NOT = {
						this = scope:secret_exposer
					}
				}
				trigger_event = secrets.0001
			}
		}
		secret_exposed_notification_effect = yes
	}
}

secret_homosexual = {
	category = deviancy

	is_valid = {
		secret_homosexual_is_valid_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_shunned = {
		secret_homosexual_is_shunned_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_criminal = {
		secret_homosexual_is_criminal_trigger = {
			OWNER = scope:secret_owner
		}
	}

	on_expose = {
		scope:secret_owner = { save_scope_as = owner }
		save_scope_as = secret
		scope:secret_owner = {
			if = {
				limit = {
					NOT = {
						this = scope:secret_exposer
					}
				}
				trigger_event = secrets.0003
			}
		}
		secret_exposed_notification_effect = yes
	}
}

secret_murder_attempt = {
	category = murder

	is_valid = {
		secret_murder_attempt_is_valid_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
	}

	is_shunned = {
		secret_murder_attempt_is_shunned_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
	}

	is_criminal = {
		secret_murder_attempt_is_criminal_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
	}

	on_discover = {
		scope:secret_target = { save_scope_as = victim }
		scope:secret_owner = { save_scope_as = murderer }
		scope:discoverer = {
			if = {
				limit = {
					NOT = { has_character_flag = block_secret_murder_attempt_discovery_event }
					NOT = { this = scope:murderer }
				}

				#EVENT FOR VICTIM DISCOVERING THE MURDER ATTEMPT#
				if = {
					limit = { this = scope:victim }
					trigger_event = secrets.0510
				}
				#EVENT FOR DISCOVERER WHO IS SPOUSE/PARENT OF VICTIM#
				else_if = {
					limit = {
						scope:victim = { is_alive = yes }
						OR = {
							is_consort_of = scope:victim
							is_parent_of = scope:victim
							AND = {
								exists = scope:discoverer.player_heir
								this = scope:discoverer.player_heir
							}
						}
					}
					trigger_event = secrets.0511
				}
			}
			else = { remove_character_flag = block_secret_murder_attempt_discovery_event }
		}
	}

	on_expose = {
		save_scope_as = secret
		scope:secret_target = {
			save_scope_as = victim
		}
		scope:secret_owner = {
			save_scope_as = murderer
		}

		###EXPOSURE EVENTS###
		scope:murderer = { trigger_event = secrets.0115 } #Applies consequence effects

		scope:victim = {
			if = {
				limit = { is_alive = yes }
				if = {
					limit = { any_known_secret = { this = scope:secret } }
					add_character_flag = {
						flag = victim_knows
						days = 10
					}
				}
				trigger_event = secrets.0116
			}
		}

		secret_exposed_notification_effect = yes
	}
}

secret_cannibal = {
	category = deviancy

	is_valid = {
		secret_cannibal_is_valid_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_shunned = {
		secret_cannibal_is_shunned_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_criminal = {
		secret_cannibal_is_criminal_trigger = {
			OWNER = scope:secret_owner
		}
	}

	on_expose = {
		save_scope_as = secret
		scope:secret_owner = {
			if = {
				limit = {
					NOT = {
						this = scope:secret_exposer
					}
				}
				trigger_event = secrets.0004
			}
		}
		secret_exposed_notification_effect = yes
	}
}

# secret_lover = {
	# category = adultery

	# is_valid = {
		# secret_lover_is_valid_trigger = {
			# OWNER = scope:secret_owner
			# TARGET = scope:secret_target
		# }
	# }

	# is_shunned = {
		# secret_lover_is_shunned_trigger = {
			# OWNER = scope:secret_owner
			# TARGET = scope:secret_target
		# }
	# }

	# is_criminal = {
		# secret_lover_is_criminal_trigger = {
			# OWNER = scope:secret_owner
			# TARGET = scope:secret_target
		# }
	# }


	# on_discover = {
		# save_scope_as = secret

		# #Opinions
		# scope:secret_owner = {
			# extramarital_sex_discovery_consequences_with_target_effect = {
				# TARGET = scope:secret_target
				# DISCOVERER = scope:discoverer
			# }
		# }

		# #If a mother's secret affair is discovered it's much more likely that the father will suspect a recently born child
		# mother_of_young_child_has_lover_variable_effect = {
			# SPOUSE = scope:discoverer
			# LOVER_1 = scope:secret_owner
			# LOVER_2 = scope:secret_target
		# }

		# # Spouses and lovers decide how to react through the Infidelity Confrontation story. This is their notification.
		# start_infidelity_confrontation_story_discovery_effect = {
			# LOVER_1 = scope:secret_owner
			# LOVER_2 = scope:secret_target
			# DISCOVERER = scope:discoverer
		# }
	# }

	# on_expose = {
		# save_scope_as = secret

		# #Lets your lover know & applies effects through secret_exposed_owner_effects_effect
		# scope:secret_owner = {
			# save_scope_as = target
		# }
		# scope:secret_target = {
			# save_scope_as = owner
			# if = {
				# limit = { NOT = { this = scope:secret_exposer } } #Women can expose their own lover secret when they announce father
				# trigger_event = secrets.0008
			# }
			# else = {
				# secret_exposed_owner_effects_effect = { SECRET = scope:secret POV = scope:owner }
				# secret_exposed_owner_opinion_effects_effect = yes
			# }
		# }

		# #Let you know & applies effects through secret_exposed_owner_effects_effect
		# scope:secret_target = {
			# save_scope_as = target
		# }
		# scope:secret_owner = {
			# save_scope_as = owner
			# if = {
				# limit = { NOT = { this = scope:secret_exposer } } #Women can expose their own lover secret when they announce father
				# trigger_event = secrets.0008
			# }
			# else = {
				# secret_exposed_owner_effects_effect = { SECRET = scope:secret POV = scope:owner }
				# secret_exposed_owner_opinion_effects_effect = yes
			# }
		# }

		# #If a mother's secret affair is discovered it's much more likely that the father will suspect a recently born child
		# scope:secret_owner = {
			# every_spouse = {
				# add_to_temporary_list = child_suspicion_list
			# }
		# }
		# scope:target = {
			# every_spouse = {
				# add_to_temporary_list = child_suspicion_list
			# }
		# }
		# every_in_list = {
			# list = child_suspicion_list
			# save_temporary_scope_as = spouse_discoverer
			# mother_of_young_child_has_lover_variable_effect = {
				# SPOUSE = scope:spouse_discoverer
				# LOVER_1 = scope:secret_owner
				# LOVER_2 = scope:secret_target
			# }
		# }

		
		# # Spouses and lovers decide how to react through the Infidelity Confrontation story. This is their notification.
		# start_infidelity_confrontation_story_exposure_effect = {
			# LOVER_1 = scope:secret_owner
			# LOVER_2 = scope:secret_target
			# EXPOSER = scope:secret_exposer
		# }
		
		# #Let everyone else know (special exception for spouses and lovers in this secret)
		# secret_exposed_notification_effect = yes
	# }
# }

secret_murder = {
	category = murder

	is_valid = {
		secret_murder_is_valid_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
	}

	is_shunned = { # always = no
		secret_murder_is_shunned_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
	}

	is_criminal = { # always = yes
		secret_murder_is_criminal_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
	}

	on_discover = {
		scope:secret_target = { save_scope_as = victim }
		scope:secret_owner = { save_scope_as = murderer }

		if = {
			limit = { scope:victim = { is_alive = no } }
			scope:victim = { add_knows_of_killer = scope:discoverer }
		}

		scope:discoverer = {
			if = {
				limit = {
					NOT = {
						has_character_flag = block_secret_murder_discovery_event
					}
				}

				#EVENT FOR DISCOVERER WHO IS CLOSE FAMILY/SPOUSE OF VICTIM (can get crime reason on expose)#
				if = {
					limit = {
						OR = {
							is_spouse_of_even_if_dead = scope:victim
							is_close_family_of = scope:victim
						}
						NOT = { this = scope:murderer }
					}
					trigger_event = secrets.0512
				}
			}
			else = { remove_character_flag = block_secret_murder_discovery_event }
		}
	}

	on_expose = {
		save_scope_as = secret
		if = {
			limit = { exists = var:murdered_party_baron }
			set_local_variable = {
				name = murdered_party_baron
				value = yes
			}
		}
		scope:secret_target = {
			save_scope_as = victim
		}
		scope:secret_owner = {
			save_scope_as = murderer
		}
		if = {
			limit = { exists = var:known_murder }
			save_scope_value_as = {
				name = known_murder
				value = yes
			}
		}

		###EXPOSURE EVENTS/EFFECTS###
		
		if = {
			limit = { NOT = { exists = scope:known_murder } }
			scope:murderer = { trigger_event = secrets.0117 } #Applies consequence effects
			scope:victim = { set_killer_public = yes }
			debug_log = "NAMELESS KILLER"
			debug_log_scopes = yes
		}
		else = {
			scope:murderer = {
				secret_exposed_owner_effects_effect = { SECRET = scope:secret POV = scope:murderer }
				secret_exposed_owner_opinion_effects_effect = yes
			}
		}

		secret_exposed_notification_effect = yes
		

		###Set murderer & death_reason###
		if = {
			limit = { scope:victim = { is_alive = no } } #Is alive for known/instantly exposed murders
			if = {
				limit = {
					exists = var:was_eaten_by_cannibal
				}
				scope:victim = {
					set_death_reason = {
						death_reason = death_eaten
						killer = scope:murderer
					}
				}
			}
			if = {
				limit = {
					exists = var:was_turned_into_bell_chime
				}
				scope:victim = {
					set_death_reason = {
						death_reason = death_bell
						killer = scope:murderer
					}
				}
			}
			else = {
				scope:victim = {
					set_death_reason = {
						death_reason = death_murder
						killer = scope:murderer
					}
				}
			}
		}
	}
}

secret_non_believer = {
	category = religious

	is_valid = {
		secret_non_believer_is_valid_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_shunned = { # if not clergy
		secret_non_believer_is_shunned_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_criminal = { # for clergy 
		secret_non_believer_is_criminal_trigger = {
			OWNER = scope:secret_owner
		}
	}

	on_expose = {
		save_scope_as = secret
		
		secret_exposed_notification_effect = yes

		scope:secret_owner = {
			if = {
				limit = {
					NOT = {
						this = scope:secret_exposer
					}
				}
				save_scope_as = owner
				trigger_event = secrets.0005
			}
		}
	}
}

secret_incest = {
	category = deviancy

	is_valid = {
		secret_incest_is_valid_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_shunned = {
		secret_incest_is_shunned_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_criminal = { # always = no
		secret_incest_is_criminal_trigger = {
			OWNER = scope:secret_owner
		}
	}

	on_expose = {
		save_scope_as = secret

		secret_exposed_notification_effect = yes
		
		scope:secret_owner = {
			if = {
				limit = {
					NOT = {
						this = scope:secret_exposer
					}
				}
				save_scope_as = owner
				trigger_event = secrets.0006
			}
		}
	}
}

#Note! Should only be added with "give_witch_secret_or_trait_effect"
secret_witch = {
	category = religious

	is_valid = {
		secret_witch_is_valid_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_shunned = {
		secret_witch_is_shunned_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_criminal = {
		secret_witch_is_criminal_trigger = {
			OWNER = scope:secret_owner
		}
	}

	
	on_expose = {
		save_scope_as = secret
		
		secret_exposed_notification_effect = yes

		scope:secret_owner = {
			if = {
				limit = {
					NOT = {
						this = scope:secret_exposer
					}
				}
				save_scope_as = owner
				trigger_event = secrets.0007
			}
		}
	}
}

secret_crypto_religionist = {
	category = religious

	is_valid = {
		secret_crypto_religionist_is_valid_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_shunned = { # if not clergy
		secret_crypto_religionist_is_shunned_trigger = {
			OWNER = scope:secret_owner
		}
	}

	is_criminal = { # for clergy 
		secret_crypto_religionist_is_criminal_trigger = {
			OWNER = scope:secret_owner
		}
	}

	on_expose = {
		save_scope_as = secret
		secret_exposed_notification_effect = yes

		scope:secret_owner = {
			trigger_event = false_conversion.8000
		}
	}
}

# The associated effect for adding this secret is give_or_update_embezzler_secret_effect.
secret_embezzler = {
	category = civil

	is_valid = {
		secret_embezzler_is_valid_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
	}

	is_shunned = {
		NOT = {
			secret_embezzler_is_criminal_trigger = { OWNER = scope:secret_owner }
		}
	}

	is_criminal = {
		secret_embezzler_is_criminal_trigger = { OWNER = scope:secret_owner }
	}

	on_expose = {
		save_scope_as = secret
		# Grab the variable value in case it gets erased.
		save_scope_value_as = {
			name = embezzlement_stake
			value = var:embezzlement_stake
		}
		save_scope_value_as = {
			name = embezzlement_stake_half
			value = var:embezzlement_stake_half
		}
		
		scope:secret_owner = {
			save_scope_as = embezzler
			trigger_event = secrets.0121
		}
	}
}

# The associated effect for adding this secret is give_coup_secret_effect.
secret_coup_plotter = {
	category = murder

	is_valid = {
		secret_coup_plotter_is_valid_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
	}

	is_shunned = {
		NOT = {
			secret_coup_plotter_is_criminal_trigger = yes
		}
	}

	is_criminal = {
		secret_coup_plotter_is_criminal_trigger = yes
	}

	on_discover = {
		save_scope_as = secret
		if = {
			limit = { scope:discoverer != root.secret_owner }
			# You get the opportunity to make them co-emperor and stop their coup
			scope:discoverer = {
				trigger_event = {
					id = grand_ambitions.0190
					days = 1
				}
			}
		}
	}

	on_expose = {
		save_scope_as = secret
		scope:secret_owner = {
			save_scope_as = coup_plotter
			trigger_event = secrets.0131
		}
	}
}

secret_raid_estate = {
	category = murder

	is_valid = {
		secret_raid_estate_is_valid_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
		exists = scope:secret_owner.house.house_head
		exists = scope:secret_target.house.house_head
	}

	is_shunned = {
		NOT = {
			secret_raid_estate_is_criminal_trigger = {
				OWNER = scope:secret_owner
				TARGET = scope:secret_target
			}
		}
	}

	is_criminal = {
		secret_raid_estate_is_criminal_trigger = {
			OWNER = scope:secret_owner
			TARGET = scope:secret_target
		}
	}

	on_discover = {}

	on_expose = {
		save_scope_as = secret
		every_in_list = {
			variable = victims
			add_to_list = target_victims
		}
		if = {
			limit = { exists = var:maim }
			save_scope_as = scheme_maim
		}
		scope:secret_target.house.house_head = { save_scope_as = secret_target_house_head }
		scope:secret_owner.house.house_head = {
			save_scope_as = secret_owner_house_head
			trigger_event = secrets.0141
		}
	}
}
