﻿############################################
# Mistborn: The Final Empire - Keeper Events
# Events for the Terris Keeper Network
############################################

namespace = mistborn_keeper

# ============================================================
# 0001 — Keeper Network Activated (holy order hired)
# The Keeper Network is now active in your realm
# ============================================================
mistborn_keeper.0001 = {
	type = character_event
	title = mistborn_keeper.0001.t
	desc = mistborn_keeper.0001.desc
	theme = learning
	override_background = { reference = study }

	immediate = {
		add_character_modifier = {
			modifier = keeper_network_bonus
			years = -1
		}
	}

	option = {
		name = mistborn_keeper.0001.a
		# Knowledge will endure
		add_piety = 30
		custom_tooltip = keeper_network_activated_tt
	}
}

# ============================================================
# 0010 — Seek the Keepers (decision result)
# A character attempts to join the Keeper Network
# ============================================================
mistborn_keeper.0010 = {
	type = character_event
	title = mistborn_keeper.0010.t
	desc = mistborn_keeper.0010.desc
	theme = learning
	override_background = { reference = terrain }

	immediate = {
		# Learning check to find the Keepers
	}

	# Pass the test — accepted as initiate
	option = {
		name = mistborn_keeper.0010.a
		trigger = { learning >= 14 }
		add_character_flag = keeper_initiate
		add_piety = 50
		custom_tooltip = keeper_initiate_accepted_tt
	}

	# Struggle but persist — accepted with conditions
	option = {
		name = mistborn_keeper.0010.b
		random_list = {
			60 = {
				modifier = {
					factor = 1.3
					learning >= 16
				}
				modifier = {
					factor = 1.5
					has_trait = trait_feruchemist
				}
				add_character_flag = keeper_initiate
				add_piety = 25
				custom_tooltip = keeper_initiate_conditional_tt
			}
			40 = {
				add_stress = 20
				custom_tooltip = keeper_initiate_rejected_tt
			}
		}
	}

	# Walk away — not ready yet
	option = {
		name = mistborn_keeper.0010.c
		add_stress = -10
		custom_tooltip = keeper_walk_away_tt
	}
}

# ============================================================
# 0020 — Advance to Full Keeper (decision result)
# An initiate completes the final tests to become a full Keeper
# ============================================================
mistborn_keeper.0020 = {
	type = character_event
	title = mistborn_keeper.0020.t
	desc = mistborn_keeper.0020.desc
	theme = learning
	override_background = { reference = study }

	immediate = {
		# Final examination of knowledge and Feruchemical ability
	}

	# Pass — become a full Keeper
	option = {
		name = mistborn_keeper.0020.a
		random_list = {
			70 = {
				modifier = {
					factor = 1.5
					has_trait = trait_feruchemist
				}
				modifier = {
					factor = 1.3
					learning >= 18
				}
				remove_character_flag = keeper_initiate
				add_character_flag = keeper_identity
				add_character_modifier = {
					modifier = keeper_of_terris
				}
				add_piety = 100
				custom_tooltip = keeper_advanced_tt
			}
			30 = {
				add_stress = 15
				custom_tooltip = keeper_advance_failed_tt
			}
		}
	}

	# Request more time — not ready
	option = {
		name = mistborn_keeper.0020.b
		add_stress = -5
		custom_tooltip = keeper_more_time_tt
	}
}

# ============================================================
# 0030 — Teach Forbidden History (decision result)
# A Keeper shares pre-Ascension knowledge with a courtier
# ============================================================
mistborn_keeper.0030 = {
	type = character_event
	title = mistborn_keeper.0030.t
	desc = mistborn_keeper.0030.desc
	theme = learning
	override_background = { reference = study }

	immediate = {
		random_courtier = {
			limit = {
				NOT = { has_character_flag = learned_forbidden_history }
				NOT = { has_character_flag = keeper_identity }
				NOT = { has_character_flag = is_court_inquisitor }
			}
			save_scope_as = student
		}
	}

	# Teach them — risk but reward
	option = {
		name = mistborn_keeper.0030.a
		trigger = {
			exists = scope:student
		}
		scope:student = {
			add_character_flag = learned_forbidden_history
			add_learning_skill = 1
		}
		# Risk of Ministry detection
		random_list = {
			85 = {
				# Safe — no one noticed
				custom_tooltip = teach_history_safe_tt
			}
			15 = {
				# Ministry gets wind of forbidden teaching
				increase_lord_ruler_attention_effect = yes
				custom_tooltip = teach_history_detected_tt
			}
		}
	}

	# Too dangerous right now
	option = {
		name = mistborn_keeper.0030.b
		add_stress = 10
		custom_tooltip = teach_history_cancelled_tt
	}
}

# ============================================================
# 0040 — Ministry Investigation (yearly risk for Keepers)
# The Steel Ministry investigates near a Keeper
# ============================================================
mistborn_keeper.0040 = {
	type = character_event
	title = mistborn_keeper.0040.t
	desc = mistborn_keeper.0040.desc
	theme = intrigue
	override_background = { reference = terrain }

	trigger = {
		is_ruler = yes
		any_courtier = {
			OR = {
				has_character_flag = keeper_initiate
				has_character_flag = keeper_identity
			}
		}
	}

	weight_multiplier = {
		base = 1
		modifier = {
			factor = 1.5
			has_character_modifier = lord_ruler_attention_1
		}
		modifier = {
			factor = 2
			has_character_modifier = lord_ruler_attention_2
		}
	}

	immediate = {
		random_courtier = {
			limit = {
				OR = {
					has_character_flag = keeper_initiate
					has_character_flag = keeper_identity
				}
			}
			save_scope_as = endangered_keeper
		}
	}

	# Hide the Keeper — intrigue check
	option = {
		name = mistborn_keeper.0040.a
		random_list = {
			70 = {
				modifier = {
					factor = 1.3
					intrigue >= 15
				}
				# Keeper stays hidden
				add_stress = 10
				custom_tooltip = keeper_hidden_success_tt
			}
			30 = {
				modifier = {
					factor = 0.7
					intrigue >= 15
				}
				# Keeper discovered!
				scope:endangered_keeper = {
					remove_character_flag = keeper_initiate
					remove_character_flag = keeper_identity
					add_character_flag = keeper_exposed
				}
				increase_lord_ruler_attention_effect = yes
				custom_tooltip = keeper_discovered_tt
			}
		}
	}

	# Hand over the Keeper — save yourself
	option = {
		name = mistborn_keeper.0040.b
		trigger = {
			faith = faith:steel_ministry
		}
		scope:endangered_keeper = {
			remove_character_flag = keeper_initiate
			remove_character_flag = keeper_identity
			add_character_flag = keeper_exposed
			imprison = {
				target = root
				type = dungeon
			}
		}
		add_piety = 30
		custom_tooltip = keeper_handed_over_tt
	}

	# Protect them at any cost
	option = {
		name = mistborn_keeper.0040.c
		increase_lord_ruler_attention_effect = yes
		add_piety = -50
		add_stress = 20
		custom_tooltip = keeper_protected_tt
	}
}

# ============================================================
# 0050 — Coppermind Sharing (Keeper network event)
# Exchange knowledge with other Keepers in the network
# ============================================================
mistborn_keeper.0050 = {
	type = character_event
	title = mistborn_keeper.0050.t
	desc = mistborn_keeper.0050.desc
	theme = learning
	override_background = { reference = study }

	trigger = {
		has_character_flag = keeper_identity
	}

	weight_multiplier = {
		base = 1
		modifier = {
			factor = 1.5
			has_trait = trait_feruchemist
		}
	}

	# Share memories — gain knowledge
	option = {
		name = mistborn_keeper.0050.a
		add_learning_skill = 1
		add_piety = 20
		custom_tooltip = coppermind_sharing_tt
	}

	# Store memories for future generations
	option = {
		name = mistborn_keeper.0050.b
		add_piety = 30
		add_prestige = 20
		custom_tooltip = coppermind_storing_tt
	}
}
