From 348b840d06626948d2c0e36c8642baadd1224d1d Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sun, 8 Feb 2026 22:46:39 +0100 Subject: [PATCH] chore(meta): update changelog Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 1 + .../00_inquisitor_interactions.txt | 198 ++++++++++ .../decisions/02_inquisitor_decisions.txt | 66 ++++ .../common/decisions/02_keeper_decisions.txt | 173 ++++++++ .../holy_orders/00_mistborn_holy_orders.txt | 104 +++++ .../men_at_arms_types/00_mistborn_maa.txt | 40 ++ .../modifiers/00_mistborn_modifiers.txt | 10 + .../common/on_action/mistborn_on_actions.txt | 4 + lords_of_ash/events/inquisitor_events.txt | 373 ++++++++++++++++++ lords_of_ash/events/keeper_events.txt | 337 ++++++++++++++++ .../mistborn_holy_orders_l_english.yml | 154 ++++++++ 11 files changed, 1460 insertions(+) create mode 100644 lords_of_ash/common/character_interactions/00_inquisitor_interactions.txt create mode 100644 lords_of_ash/common/decisions/02_inquisitor_decisions.txt create mode 100644 lords_of_ash/common/decisions/02_keeper_decisions.txt create mode 100644 lords_of_ash/common/holy_orders/00_mistborn_holy_orders.txt create mode 100644 lords_of_ash/events/inquisitor_events.txt create mode 100644 lords_of_ash/events/keeper_events.txt create mode 100644 lords_of_ash/localization/english/mistborn_holy_orders_l_english.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index ed40843..6cee463 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## [Unreleased] ### Added +- Dynasty legacies: 5 universal tracks (Allomantic Bloodline, Political Dominance, Ministry Connections, Metallurgic Wealth, Underground Network) with 5 tiers each, plus 10 house-specific tracks (one per Great House) with 3 tiers each — 55 perks total replacing vanilla legacies - 12 custom tenets replacing vanilla placeholders: Steel Ministry (obligator_hierarchy, allomantic_oversight, imperial_mandate), Terris Worldbringers (keepers_vow, preservation_of_knowledge, worldbringer_mission), Survivorism (kelsiers_sacrifice, hope_in_ash, underground_network), Cult of Ruin (hemalurgic_rites, embrace_destruction, ruins_whispers) - 3 custom doctrine groups: Allomantic Stance (divine/controlled/forbidden), Caste Doctrine (divine order/irrelevant/tool), Gender Doctrine (male preference/equal/irrelevant) - 5 new holy sites with faith differentiation: Terris Homeland Peaks, Arguois Caverns, Ruin's Deposit, The Survivor's Square (conditional), Well of Ascension (conditional) diff --git a/lords_of_ash/common/character_interactions/00_inquisitor_interactions.txt b/lords_of_ash/common/character_interactions/00_inquisitor_interactions.txt new file mode 100644 index 0000000..c7d901b --- /dev/null +++ b/lords_of_ash/common/character_interactions/00_inquisitor_interactions.txt @@ -0,0 +1,198 @@ +############################################ +# Mistborn: The Final Empire - Inquisitor Character Interactions +# Available when an Inquisitor courtier is at your court +############################################ + +# Investigate Heresy — order an Inquisitor to investigate a courtier or vassal +investigate_heresy_interaction = { + category = interaction_category_hostile + + desc = investigate_heresy_interaction_desc + + is_shown = { + scope:actor = { + has_character_flag = inquisitor_at_court + faith = faith:steel_ministry + } + scope:recipient = { + is_courtier_of = scope:actor + NOT = { this = scope:actor } + } + } + + is_valid_showing_failures_only = { + scope:actor = { + is_available_adult = yes + NOT = { has_character_flag = recently_investigated_heresy } + } + } + + cooldown_against_recipient = { years = 2 } + + on_accept = { + scope:actor = { + add_character_flag = { + flag = recently_investigated_heresy + years = 1 + } + save_scope_as = investigator + } + scope:recipient = { + save_scope_as = investigation_target + } + scope:actor = { + trigger_event = mistborn_inquisitor.0020 + } + } + + ai_accept = { + base = 50 + } + + ai_targets = { + ai_recipients = courtiers + } + + ai_frequency = 36 + + ai_will_do = { + base = 20 + modifier = { + factor = 3 + scope:recipient = { + NOT = { faith = faith:steel_ministry } + } + } + modifier = { + factor = 2 + scope:recipient = { + is_allomancer_trigger = yes + } + } + } +} + +# Hunt Allomancers — order an Inquisitor to search a province for hidden Allomancers +hunt_allomancers_interaction = { + category = interaction_category_hostile + + desc = hunt_allomancers_interaction_desc + + is_shown = { + scope:actor = { + has_character_flag = inquisitor_at_court + faith = faith:steel_ministry + is_ruler = yes + } + scope:recipient = { + is_vassal_of = scope:actor + } + } + + is_valid_showing_failures_only = { + scope:actor = { + is_available_adult = yes + NOT = { has_character_flag = recently_hunted_allomancers } + } + } + + cooldown_against_recipient = { years = 3 } + + on_accept = { + scope:actor = { + add_character_flag = { + flag = recently_hunted_allomancers + years = 2 + } + } + scope:actor = { + trigger_event = mistborn_inquisitor.0030 + } + } + + ai_accept = { + base = 50 + } + + ai_targets = { + ai_recipients = vassals + } + + ai_frequency = 48 + + ai_will_do = { + base = 15 + modifier = { + factor = 2 + scope:recipient = { + any_courtier = { + is_allomancer_trigger = yes + } + } + } + } +} + +# Interrogate Prisoner — order an Inquisitor to brutally interrogate a prisoner +interrogate_prisoner_interaction = { + category = interaction_category_hostile + + desc = interrogate_prisoner_interaction_desc + + is_shown = { + scope:actor = { + has_character_flag = inquisitor_at_court + faith = faith:steel_ministry + } + scope:recipient = { + is_imprisoned_by = scope:actor + } + } + + is_valid_showing_failures_only = { + scope:actor = { + is_available_adult = yes + NOT = { has_character_flag = recently_interrogated_prisoner } + } + } + + cooldown_against_recipient = { years = 5 } + + on_accept = { + scope:actor = { + add_character_flag = { + flag = recently_interrogated_prisoner + years = 1 + } + } + scope:actor = { + trigger_event = mistborn_inquisitor.0040 + } + } + + ai_accept = { + base = 50 + } + + ai_targets = { + ai_recipients = prisoners + } + + ai_frequency = 24 + + ai_will_do = { + base = 40 + modifier = { + factor = 2 + scope:recipient = { + is_allomancer_trigger = yes + } + } + modifier = { + factor = 0.5 + scope:actor = { + has_trait = compassionate + } + } + } +} diff --git a/lords_of_ash/common/decisions/02_inquisitor_decisions.txt b/lords_of_ash/common/decisions/02_inquisitor_decisions.txt new file mode 100644 index 0000000..aba2da1 --- /dev/null +++ b/lords_of_ash/common/decisions/02_inquisitor_decisions.txt @@ -0,0 +1,66 @@ +############################################ +# Mistborn: The Final Empire - Inquisitor Decisions +# Request an Inquisitor to serve at your court +############################################ + +# Request an Inquisitor — summon one of the Lord Ruler's enforcers +request_inquisitor_decision = { + picture = { reference = "gfx/interface/illustrations/decisions/decision_execution.dds" } + + desc = request_inquisitor_decision_desc + selection_tooltip = request_inquisitor_decision_tooltip + + ai_check_interval = 240 + + is_shown = { + faith = faith:steel_ministry + is_ruler = yes + highest_held_title_tier >= tier_county + } + + is_valid = { + faith = faith:steel_ministry + is_ruler = yes + highest_held_title_tier >= tier_county + piety >= 200 + NOT = { has_character_flag = inquisitor_at_court } + NOT = { has_character_flag = recently_requested_inquisitor } + } + + is_valid_showing_failures_only = { + is_available_adult = yes + } + + cost = { + piety = 200 + } + + cooldown = { years = 3 } + + effect = { + add_character_flag = { + flag = recently_requested_inquisitor + years = 3 + } + trigger_event = mistborn_inquisitor.0010 + } + + ai_potential = { + faith = faith:steel_ministry + piety >= 300 + } + + ai_will_do = { + base = 20 + modifier = { + factor = 2 + any_vassal = { + NOT = { faith = faith:steel_ministry } + } + } + modifier = { + factor = 0.5 + has_trait = compassionate + } + } +} diff --git a/lords_of_ash/common/decisions/02_keeper_decisions.txt b/lords_of_ash/common/decisions/02_keeper_decisions.txt new file mode 100644 index 0000000..019cd76 --- /dev/null +++ b/lords_of_ash/common/decisions/02_keeper_decisions.txt @@ -0,0 +1,173 @@ +############################################ +# Mistborn: The Final Empire - Keeper Decisions +# Join and advance in the Terris Keeper Network +############################################ + +# Seek the Keepers — attempt to join the secret network +seek_the_keepers_decision = { + picture = { reference = "gfx/interface/illustrations/decisions/decision_personal_religious.dds" } + + desc = seek_the_keepers_decision_desc + selection_tooltip = seek_the_keepers_decision_tooltip + + ai_check_interval = 180 + + is_shown = { + faith = faith:terris_worldbringers + is_ruler = yes + NOT = { has_character_flag = keeper_initiate } + NOT = { has_character_flag = keeper_identity } + } + + is_valid = { + faith = faith:terris_worldbringers + learning >= 12 + NOT = { has_character_flag = keeper_initiate } + NOT = { has_character_flag = keeper_identity } + NOT = { has_character_flag = recently_sought_keepers } + } + + is_valid_showing_failures_only = { + is_available_adult = yes + } + + cost = { + piety = 100 + } + + cooldown = { years = 3 } + + effect = { + add_character_flag = { + flag = recently_sought_keepers + years = 3 + } + trigger_event = mistborn_keeper.0010 + } + + ai_potential = { + faith = faith:terris_worldbringers + learning >= 14 + } + + ai_will_do = { + base = 40 + modifier = { + factor = 2 + has_trait = trait_feruchemist + } + modifier = { + factor = 1.5 + learning >= 18 + } + } +} + +# Advance to Full Keeper — complete initiation to become a full Keeper +advance_to_keeper_decision = { + picture = { reference = "gfx/interface/illustrations/decisions/decision_personal_religious.dds" } + + desc = advance_to_keeper_decision_desc + selection_tooltip = advance_to_keeper_decision_tooltip + + ai_check_interval = 120 + + is_shown = { + has_character_flag = keeper_initiate + NOT = { has_character_flag = keeper_identity } + } + + is_valid = { + has_character_flag = keeper_initiate + NOT = { has_character_flag = keeper_identity } + learning >= 15 + NOT = { has_character_flag = recently_attempted_keeper_advance } + } + + is_valid_showing_failures_only = { + is_available_adult = yes + } + + cost = { + piety = 150 + } + + cooldown = { years = 2 } + + effect = { + add_character_flag = { + flag = recently_attempted_keeper_advance + years = 2 + } + trigger_event = mistborn_keeper.0020 + } + + ai_potential = { + has_character_flag = keeper_initiate + learning >= 16 + } + + ai_will_do = { + base = 60 + modifier = { + factor = 2 + has_trait = trait_feruchemist + } + } +} + +# Teach Forbidden History — share pre-Ascension knowledge with another character +teach_forbidden_history_decision = { + picture = { reference = "gfx/interface/illustrations/decisions/decision_personal_religious.dds" } + + desc = teach_forbidden_history_decision_desc + selection_tooltip = teach_forbidden_history_decision_tooltip + + ai_check_interval = 240 + + is_shown = { + has_character_flag = keeper_identity + } + + is_valid = { + has_character_flag = keeper_identity + NOT = { has_character_flag = recently_taught_history } + any_courtier = { + NOT = { has_character_flag = learned_forbidden_history } + } + } + + is_valid_showing_failures_only = { + is_available_adult = yes + } + + cost = { + piety = 50 + } + + cooldown = { years = 2 } + + effect = { + add_character_flag = { + flag = recently_taught_history + years = 2 + } + trigger_event = mistborn_keeper.0030 + } + + ai_potential = { + has_character_flag = keeper_identity + } + + ai_will_do = { + base = 30 + modifier = { + factor = 0.5 + has_character_modifier = lord_ruler_attention_1 + } + modifier = { + factor = 0 + has_character_modifier = lord_ruler_attention_2 + } + } +} diff --git a/lords_of_ash/common/holy_orders/00_mistborn_holy_orders.txt b/lords_of_ash/common/holy_orders/00_mistborn_holy_orders.txt new file mode 100644 index 0000000..0ac1aaf --- /dev/null +++ b/lords_of_ash/common/holy_orders/00_mistborn_holy_orders.txt @@ -0,0 +1,104 @@ +############################################ +# Mistborn: The Final Empire - Holy Orders +# Steel Inquisitors (militant) and Keeper Network (clandestine) +############################################ + +# ===== STEEL INQUISITORS ===== +# The Lord Ruler's terrifying enforcers — hemalurgic agents with +# spikes driven through their eyes. Available to Steel Ministry rulers. +holy_order_steel_inquisitors = { + religion = steel_ministry_religion + + is_active = { + always = yes + } + + leader = { + # Prefer existing Inquisitor characters + any_living_character = { + has_character_modifier = steel_inquisitor_power + } + } + + can_hire = { + faith = faith:steel_ministry + piety >= 500 + is_ruler = yes + highest_held_title_tier >= tier_county + NOT = { has_character_flag = recently_hired_inquisitor_order } + } + + hire_cost = { + piety = 500 + } + + # The order's MaA regiment + men_at_arms = { + type = inquisitor_squad + stacks = 1 + } + + # The Ministry demands resources to maintain its enforcers + monthly_cost = 2.0 + + # Dismissing the Lord Ruler's enforcers is an act of impiety + can_dismiss = { + always = yes + } + + on_hire = { + add_character_flag = { + flag = recently_hired_inquisitor_order + years = 5 + } + trigger_event = { + id = mistborn_inquisitor.0001 + days = 3 + } + } + + on_dismiss = { + add_piety = -100 + custom_tooltip = dismiss_inquisitor_order_piety_tt + } +} + +# ===== KEEPER NETWORK ===== +# The Terris Keepers — a secret society preserving forbidden knowledge. +# Not a military force but a clandestine scholarly network. +keeper_network = { + religion = terris_religion + + is_active = { + always = yes + } + + can_hire = { + faith = faith:terris_worldbringers + is_ruler = yes + learning >= 12 + NOT = { has_character_flag = keeper_network_active } + } + + hire_cost = { + piety = 200 + } + + monthly_cost = 0.5 + + can_dismiss = { + always = yes + } + + on_hire = { + add_character_flag = keeper_network_active + trigger_event = { + id = mistborn_keeper.0001 + days = 3 + } + } + + on_dismiss = { + remove_character_flag = keeper_network_active + } +} diff --git a/lords_of_ash/common/men_at_arms_types/00_mistborn_maa.txt b/lords_of_ash/common/men_at_arms_types/00_mistborn_maa.txt index dafb890..54b5d1c 100644 --- a/lords_of_ash/common/men_at_arms_types/00_mistborn_maa.txt +++ b/lords_of_ash/common/men_at_arms_types/00_mistborn_maa.txt @@ -157,6 +157,46 @@ skaa_levies = { icon = light_infantry } +# Steel Inquisitor Squad - holy order regiment led by Inquisitors +# Small but devastatingly powerful — a single Inquisitor is worth hundreds +# Only available through the Steel Inquisitor holy order +inquisitor_squad = { + type = heavy_infantry + + can_recruit = { + faith = faith:steel_ministry + has_character_flag = recently_hired_inquisitor_order + } + + damage = 150 + toughness = 80 + pursuit = 40 + screen = 0 + + terrain_bonus = { + plains = { damage = 20 toughness = 10 } + hills = { damage = 10 pursuit = 10 } + mountains = { damage = 5 toughness = 5 } + } + + counters = { + skirmishers = 2 # Counters Mistborn Agents + heavy_infantry = 1 # Counters Hazekillers + } + + buy_cost = { gold = 0 } # Provided by holy order + low_maintenance_cost = { gold = 0 } + high_maintenance_cost = { gold = 0 } + + max = 100 + + stack = 100 + + ai_quality = { value = 200 } + + icon = heavy_infantry +} + # Noble Guard - professional soldiers from noble houses # Well-equipped, well-trained, loyal to their house noble_guard = { diff --git a/lords_of_ash/common/modifiers/00_mistborn_modifiers.txt b/lords_of_ash/common/modifiers/00_mistborn_modifiers.txt index acdfbfb..8d00a6b 100644 --- a/lords_of_ash/common/modifiers/00_mistborn_modifiers.txt +++ b/lords_of_ash/common/modifiers/00_mistborn_modifiers.txt @@ -204,6 +204,16 @@ cult_of_ruin_faith_modifier = { stress_gain_mult = -0.1 } +# === KEEPER NETWORK MODIFIERS === + +# Keeper network active in realm — learning and cultural bonuses +keeper_network_bonus = { + icon = modifier_keeper_advisor + learning = 2 + monthly_piety = 0.3 + cultural_acceptance_gain_mult = 0.05 +} + # === PROVINCE MODIFIERS === # Ash blight devastating the land diff --git a/lords_of_ash/common/on_action/mistborn_on_actions.txt b/lords_of_ash/common/on_action/mistborn_on_actions.txt index 1423ba4..60c1aee 100644 --- a/lords_of_ash/common/on_action/mistborn_on_actions.txt +++ b/lords_of_ash/common/on_action/mistborn_on_actions.txt @@ -32,6 +32,10 @@ on_yearly_pulse = { mistborn_hemalurgy.0030 # Hemalurgy discovery risk mistborn_misc.0050 # Savant acquisition check mistborn_misc.0060 # Savant consequences + mistborn_inquisitor.0015 # Court Inquisitor reports to the Canton (15% yearly) + mistborn_inquisitor.0050 # Inquisitor senses a hidden Keeper + mistborn_keeper.0040 # Ministry investigation near Keepers (10% yearly) + mistborn_keeper.0050 # Coppermind sharing between Keepers } effect = { # Check Lord Ruler attention thresholds and apply tiered modifiers diff --git a/lords_of_ash/events/inquisitor_events.txt b/lords_of_ash/events/inquisitor_events.txt new file mode 100644 index 0000000..0d4ea14 --- /dev/null +++ b/lords_of_ash/events/inquisitor_events.txt @@ -0,0 +1,373 @@ +############################################ +# Mistborn: The Final Empire - Inquisitor Events +# Events for the Steel Inquisitor holy order and court Inquisitor +############################################ + +namespace = mistborn_inquisitor + +# ============================================================ +# 0001 — Inquisitor Holy Order Hired +# Fires when the Steel Inquisitor holy order is hired +# ============================================================ +mistborn_inquisitor.0001 = { + type = character_event + title = mistborn_inquisitor.0001.t + desc = mistborn_inquisitor.0001.desc + theme = faith + override_background = { reference = throne_room } + + immediate = { + # Terror spreads through the court + every_courtier = { + limit = { + NOT = { has_character_modifier = steel_inquisitor_power } + } + add_stress = 10 + } + } + + option = { + name = mistborn_inquisitor.0001.a + # The Lord Ruler's will be done + add_piety = 50 + custom_tooltip = inquisitor_order_hired_tt + } +} + +# ============================================================ +# 0010 — Inquisitor Arrives at Court (Request Decision) +# An Inquisitor comes to serve (and watch) your court +# ============================================================ +mistborn_inquisitor.0010 = { + type = character_event + title = mistborn_inquisitor.0010.t + desc = mistborn_inquisitor.0010.desc + theme = faith + override_background = { reference = throne_room } + + immediate = { + # Generate an Inquisitor courtier + create_character = { + name = "Inquisitor" + age = { 35 55 } + gender = male + culture = culture:noble_scadrian + faith = faith:steel_ministry + trait = trait_hemalurgist + trait = trait_hemalurgic_steel + trait = trait_hemalurgic_pewter + trait = trait_hemalurgic_bronze + trait = disfigured + trait = callous + trait = sadistic + dynasty = none + save_scope_as = new_inquisitor + } + scope:new_inquisitor = { + add_character_modifier = steel_inquisitor_power + add_character_flag = is_court_inquisitor + } + add_character_flag = inquisitor_at_court + } + + option = { + name = mistborn_inquisitor.0010.a + # Welcome the Inquisitor — gain piety but court is terrified + add_piety = 30 + every_courtier = { + limit = { + NOT = { has_character_flag = is_court_inquisitor } + NOT = { this = root } + } + add_stress = 15 + add_opinion = { + target = root + modifier = opinion_angry + opinion = -10 + } + } + custom_tooltip = inquisitor_arrives_tt + } + + option = { + name = mistborn_inquisitor.0010.b + # Accept reluctantly + add_stress = 20 + custom_tooltip = inquisitor_arrives_reluctant_tt + } +} + +# ============================================================ +# 0015 — Inquisitor Reports to the Canton (yearly) +# 15% chance: the Inquisitor reports your activities +# ============================================================ +mistborn_inquisitor.0015 = { + type = character_event + title = mistborn_inquisitor.0015.t + desc = mistborn_inquisitor.0015.desc + theme = intrigue + override_background = { reference = throne_room } + + trigger = { + has_character_flag = inquisitor_at_court + is_ruler = yes + } + + immediate = { + increase_lord_ruler_attention_effect = yes + } + + option = { + name = mistborn_inquisitor.0015.a + # Nothing to be done — they serve the Lord Ruler + add_stress = 10 + custom_tooltip = inquisitor_reports_tt + } + + option = { + name = mistborn_inquisitor.0015.b + # Try to bribe the Inquisitor (futile but reduces stress) + trigger = { gold >= 100 } + remove_short_term_gold = 100 + add_stress = -5 + custom_tooltip = inquisitor_bribe_tt + } +} + +# ============================================================ +# 0020 — Investigate Heresy (interaction result) +# The Inquisitor investigates a courtier for hidden faith or powers +# ============================================================ +mistborn_inquisitor.0020 = { + type = character_event + title = mistborn_inquisitor.0020.t + desc = mistborn_inquisitor.0020.desc + theme = intrigue + override_background = { reference = throne_room } + + immediate = { + # Intrigue check against target + } + + # Success — something found + option = { + name = mistborn_inquisitor.0020.a + trigger = { + scope:investigation_target = { + OR = { + NOT = { faith = root.faith } + is_allomancer_trigger = yes + has_character_flag = keeper_initiate + has_character_flag = keeper_identity + } + } + } + # Reveal the target's secrets + scope:investigation_target = { + expose_secret = yes + } + add_piety = 30 + custom_tooltip = investigate_heresy_success_tt + } + + # Failure — nothing found but target is terrorized + option = { + name = mistborn_inquisitor.0020.b + scope:investigation_target = { + add_stress = 20 + } + custom_tooltip = investigate_heresy_failure_tt + } +} + +# ============================================================ +# 0030 — Hunt Allomancers (interaction result) +# The Inquisitor searches a vassal's domain for hidden Allomancers +# ============================================================ +mistborn_inquisitor.0030 = { + type = character_event + title = mistborn_inquisitor.0030.t + desc = mistborn_inquisitor.0030.desc + theme = intrigue + override_background = { reference = terrain } + + immediate = { + # Check for hidden Allomancers among the vassal's courtiers + } + + # Success — Allomancer discovered and captured + option = { + name = mistborn_inquisitor.0030.a + random_list = { + 60 = { + # Found a hidden Allomancer + scope:recipient = { + random_courtier = { + limit = { + is_allomancer_trigger = yes + } + save_scope_as = captured_allomancer + imprison = { + target = root + type = dungeon + } + } + } + add_piety = 50 + custom_tooltip = hunt_allomancers_success_tt + } + 40 = { + # No Allomancers found + custom_tooltip = hunt_allomancers_none_found_tt + } + } + } + + # Call off the hunt — too much disruption + option = { + name = mistborn_inquisitor.0030.b + add_stress = -10 + scope:recipient = { + add_opinion = { + target = root + modifier = opinion_grateful + opinion = 10 + } + } + custom_tooltip = hunt_allomancers_cancelled_tt + } +} + +# ============================================================ +# 0040 — Interrogate Prisoner (interaction result) +# The Inquisitor brutally interrogates a prisoner +# ============================================================ +mistborn_inquisitor.0040 = { + type = character_event + title = mistborn_inquisitor.0040.t + desc = mistborn_inquisitor.0040.desc + theme = intrigue + override_background = { reference = dungeon } + + immediate = { + scope:recipient = { + save_scope_as = prisoner + } + } + + # Success — prisoner breaks and confesses + option = { + name = mistborn_inquisitor.0040.a + scope:prisoner = { + add_trait = tortured + expose_secret = yes + } + # Gain a strong hook on the prisoner + add_hook = { + target = scope:prisoner + type = strong_hook + } + # Compassionate courtiers disapprove + every_courtier = { + limit = { + has_trait = compassionate + } + add_opinion = { + target = root + modifier = opinion_angry + opinion = -30 + } + } + custom_tooltip = interrogate_success_tt + } + + # Show mercy — stop the interrogation + option = { + name = mistborn_inquisitor.0040.b + add_piety = -20 + add_stress = -20 + # The Inquisitor reports your mercy to the Canton + increase_lord_ruler_attention_effect = yes + custom_tooltip = interrogate_mercy_tt + } +} + +# ============================================================ +# 0050 — Inquisitor Senses a Keeper (tension event) +# When an Inquisitor and a Keeper are in the same court +# ============================================================ +mistborn_inquisitor.0050 = { + type = character_event + title = mistborn_inquisitor.0050.t + desc = mistborn_inquisitor.0050.desc + theme = intrigue + override_background = { reference = throne_room } + + trigger = { + has_character_flag = inquisitor_at_court + any_courtier = { + OR = { + has_character_flag = keeper_initiate + has_character_flag = keeper_identity + } + } + } + + weight_multiplier = { + base = 1 + modifier = { + factor = 2.5 + # Heightened detection chance (25% instead of 10%) + any_courtier = { + has_character_flag = keeper_identity + } + } + } + + immediate = { + random_courtier = { + limit = { + OR = { + has_character_flag = keeper_initiate + has_character_flag = keeper_identity + } + } + save_scope_as = hidden_keeper + } + } + + # The Inquisitor probes with bronze Allomancy + option = { + name = mistborn_inquisitor.0050.a + # Allow the investigation — risky for the Keeper + random_list = { + 25 = { + # Keeper discovered! + scope:hidden_keeper = { + remove_character_flag = keeper_initiate + remove_character_flag = keeper_identity + add_character_flag = keeper_exposed + imprison = { + target = root + type = dungeon + } + } + increase_lord_ruler_attention_effect = yes + custom_tooltip = inquisitor_finds_keeper_tt + } + 75 = { + # Keeper stays hidden + custom_tooltip = inquisitor_misses_keeper_tt + } + } + } + + # Distract the Inquisitor — use your influence + option = { + name = mistborn_inquisitor.0050.b + trigger = { intrigue >= 12 } + add_stress = 15 + # Inquisitor is redirected, Keeper is safe for now + custom_tooltip = distract_inquisitor_tt + } +} diff --git a/lords_of_ash/events/keeper_events.txt b/lords_of_ash/events/keeper_events.txt new file mode 100644 index 0000000..d355e63 --- /dev/null +++ b/lords_of_ash/events/keeper_events.txt @@ -0,0 +1,337 @@ +############################################ +# 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 + } +} diff --git a/lords_of_ash/localization/english/mistborn_holy_orders_l_english.yml b/lords_of_ash/localization/english/mistborn_holy_orders_l_english.yml new file mode 100644 index 0000000..e5153dc --- /dev/null +++ b/lords_of_ash/localization/english/mistborn_holy_orders_l_english.yml @@ -0,0 +1,154 @@ +l_english: + + # ========== HOLY ORDER NAMES ========== + + holy_order_steel_inquisitors:0 "Steel Inquisitors" + holy_order_steel_inquisitors_desc:0 "The Lord Ruler's terrifying enforcers. Hemalurgic abominations with spikes driven through their eyes, they hunt heretics, interrogate prisoners, and ensure absolute obedience to the Final Empire." + keeper_network:0 "Keeper Network" + keeper_network_desc:0 "The Terris Keepers — a clandestine network of Feruchemists who preserve forbidden knowledge in copperminds, defying the Lord Ruler's campaign to erase pre-Ascension history." + + # ========== MEN-AT-ARMS ========== + + inquisitor_squad:0 "Inquisitor Squad" + inquisitor_squad_desc:0 "A small regiment led by Steel Inquisitors — hemalurgically enhanced warriors whose superhuman speed, strength, and Allomantic senses make them devastatingly effective in combat." + + # ========== INQUISITOR DECISIONS ========== + + request_inquisitor_decision:0 "Request an Inquisitor" + request_inquisitor_decision_desc:0 "Petition the Steel Ministry to send an Inquisitor to your court. These terrifying agents of the Lord Ruler will investigate heresy and enforce order — but they answer to the Lord Ruler, not to you." + request_inquisitor_decision_tooltip:0 "An Inquisitor will arrive at your court." + + # ========== KEEPER DECISIONS ========== + + seek_the_keepers_decision:0 "Seek the Keepers" + seek_the_keepers_decision_desc:0 "Reach out to the secret network of Terris Keepers — scholars who preserve forbidden knowledge of the world before the Lord Ruler's Ascension. Finding them requires wisdom and discretion." + seek_the_keepers_decision_tooltip:0 "Attempt to join the Keeper Network." + + advance_to_keeper_decision:0 "Advance to Full Keeper" + advance_to_keeper_decision_desc:0 "You have proven yourself as an initiate. Now face the final tests to become a full Keeper of Terris — one who bears the sacred duty of preserving all knowledge." + advance_to_keeper_decision_tooltip:0 "Attempt to advance from initiate to full Keeper." + + teach_forbidden_history_decision:0 "Teach Forbidden History" + teach_forbidden_history_decision_desc:0 "Share the pre-Ascension knowledge stored in your copperminds with a courtier. The Lord Ruler has decreed this history erased — teaching it is an act of defiance." + teach_forbidden_history_decision_tooltip:0 "Teach a courtier about the world before the Lord Ruler." + + # ========== INQUISITOR INTERACTIONS ========== + + investigate_heresy_interaction:0 "Investigate Heresy" + investigate_heresy_interaction_desc:0 "Order the Inquisitor to investigate this person for hidden faith, secret Allomantic abilities, or seditious activities." + + hunt_allomancers_interaction:0 "Hunt Allomancers" + hunt_allomancers_interaction_desc:0 "Send the Inquisitor to search a vassal's domain for hidden Allomancers. More effective than ordinary patrols, but disruptive." + + interrogate_prisoner_interaction:0 "Interrogate Prisoner" + interrogate_prisoner_interaction_desc:0 "Order the Inquisitor to brutally interrogate a prisoner. The methods are unspeakable, but effective — the prisoner will confess everything." + + # ========== INQUISITOR EVENTS ========== + + mistborn_inquisitor.0001.t:0 "The Inquisitors March" + mistborn_inquisitor.0001.desc:0 "The ground seems to tremble as the Steel Inquisitors arrive — spike-eyed horrors in robes of grey, their very presence an instrument of terror. Your courtiers shrink away. The Lord Ruler's enforcers have answered your call." + mistborn_inquisitor.0001.a:0 "The Lord Ruler's will be done." + inquisitor_order_hired_tt:0 "The Steel Inquisitor holy order is now available." + + mistborn_inquisitor.0010.t:0 "An Inquisitor Arrives" + mistborn_inquisitor.0010.desc:0 "The doors of your keep slam open. A figure strides in — tall, gaunt, with twin steel spikes where eyes should be. The Inquisitor surveys your court with a bronze-Allomancy pulse that makes every Allomancer in the room flinch. It has come to serve. And to watch." + mistborn_inquisitor.0010.a:0 "Welcome, servant of the Lord Ruler." + mistborn_inquisitor.0010.b:0 "...I accept. Reluctantly." + inquisitor_arrives_tt:0 "An Inquisitor has joined your court as an enforcer." + inquisitor_arrives_reluctant_tt:0 "The Inquisitor takes up residence regardless of your feelings." + + mistborn_inquisitor.0015.t:0 "Eyes That Never Close" + mistborn_inquisitor.0015.desc:0 "Your spymaster reports that the Inquisitor has been sending coded messages to the Canton of Inquisition. Your activities — your dealings, your visitors, your private conversations — all catalogued and dispatched to Luthadel. The Lord Ruler knows." + mistborn_inquisitor.0015.a:0 "There is nothing I can do." + mistborn_inquisitor.0015.b:0 "Perhaps gold will buy discretion..." + inquisitor_reports_tt:0 "The Inquisitor has reported your activities to the Canton. Lord Ruler attention increased." + inquisitor_bribe_tt:0 "The Inquisitor takes the gold. Whether it changes anything is another matter." + + mistborn_inquisitor.0020.t:0 "The Investigation" + mistborn_inquisitor.0020.desc:0 "The Inquisitor corners the target in a private chamber. Spike-studded eyes bore into the unfortunate soul as bronze Allomancy probes for hidden powers and steel pushes test for concealed metals. The investigation is thorough. And terrifying." + mistborn_inquisitor.0020.a:0 "The truth is revealed." + mistborn_inquisitor.0020.b:0 "Nothing was found — but the message was sent." + investigate_heresy_success_tt:0 "The Inquisitor has uncovered the target's secrets." + investigate_heresy_failure_tt:0 "No heresy found, but the target has been thoroughly intimidated." + + mistborn_inquisitor.0030.t:0 "The Hunt" + mistborn_inquisitor.0030.desc:0 "The Inquisitor stalks through the province like a predator, bronze senses extended for any trace of Allomantic pulses. Villages fall silent as the spike-eyed horror passes through. If there are hidden Allomancers here, the Inquisitor will find them." + mistborn_inquisitor.0030.a:0 "Let the hunt proceed." + mistborn_inquisitor.0030.b:0 "Call off the hunt — this is too disruptive." + hunt_allomancers_success_tt:0 "A hidden Allomancer has been discovered and captured." + hunt_allomancers_none_found_tt:0 "No hidden Allomancers were found in the province." + hunt_allomancers_cancelled_tt:0 "The hunt has been called off." + + mistborn_inquisitor.0040.t:0 "The Interrogation" + mistborn_inquisitor.0040.desc:0 "The screams echo through the dungeon. The Inquisitor works with methodical brutality — no instrument of torture needed when you have hemalurgically enhanced strength and the ability to Riot emotions to their breaking point. It is only a matter of time." + mistborn_inquisitor.0040.a:0 "Extract everything." + mistborn_inquisitor.0040.b:0 "Enough. Stop this." + interrogate_success_tt:0 "The prisoner has confessed under interrogation. All secrets revealed." + interrogate_mercy_tt:0 "You showed mercy. The Inquisitor has noted your weakness." + + mistborn_inquisitor.0050.t:0 "Something Stirs" + mistborn_inquisitor.0050.desc:0 "The Inquisitor pauses mid-stride, spike-studded head tilting as if listening to something only it can hear. Bronze Allomancy probes pulse outward through your keep. Someone in your court is using — or hiding — metallic arts. The Inquisitor can sense it." + mistborn_inquisitor.0050.a:0 "Let the Inquisitor investigate." + mistborn_inquisitor.0050.b:0 "Distract the Inquisitor from this line of inquiry." + inquisitor_finds_keeper_tt:0 "The Inquisitor has discovered a hidden Keeper in your court!" + inquisitor_misses_keeper_tt:0 "The Inquisitor senses something but cannot pinpoint the source." + distract_inquisitor_tt:0 "You successfully redirect the Inquisitor's attention." + + # ========== KEEPER EVENTS ========== + + mistborn_keeper.0001.t:0 "The Network Lives" + mistborn_keeper.0001.desc:0 "Contact has been made. Through hidden signs and whispered passwords, you have connected to the Keeper Network — the underground web of Terris scholars who preserve the world's true history in their copperminds. The knowledge of ages flows through your realm." + mistborn_keeper.0001.a:0 "Knowledge will endure." + keeper_network_activated_tt:0 "The Keeper Network is now active in your realm, providing learning and cultural bonuses." + + mistborn_keeper.0010.t:0 "Seeking the Keepers" + mistborn_keeper.0010.desc:0 "You follow the ancient signs — a pattern of metalminds displayed in a market stall, a particular phrase spoken to a Terris steward. After weeks of careful contact, you are led to a hidden chamber beneath a granary. Three Keepers await, their arms covered in metalminds, their eyes measuring your worth." + mistborn_keeper.0010.a:0 "I am ready to be tested." + mistborn_keeper.0010.b:0 "I will prove myself, whatever it takes." + mistborn_keeper.0010.c:0 "I am not ready for this." + keeper_initiate_accepted_tt:0 "You have been accepted as a Keeper initiate." + keeper_initiate_conditional_tt:0 "You have been accepted, but the Keepers will watch you closely." + keeper_initiate_rejected_tt:0 "The Keepers do not believe you are ready. Perhaps in time." + keeper_walk_away_tt:0 "You decide this path is not for you — at least not yet." + + mistborn_keeper.0020.t:0 "The Final Test" + mistborn_keeper.0020.desc:0 "The elder Keepers gather. You must demonstrate your mastery — recite the pre-Ascension histories stored in your copperminds, demonstrate Feruchemical control, and swear the sacred oath: to preserve all knowledge, no matter the cost, no matter the danger." + mistborn_keeper.0020.a:0 "I am ready. Test me." + mistborn_keeper.0020.b:0 "I need more time to prepare." + keeper_advanced_tt:0 "You are now a full Keeper of Terris. The weight of all knowledge rests on your shoulders." + keeper_advance_failed_tt:0 "You did not pass the final test. Continue your studies." + keeper_more_time_tt:0 "You step back from the test. There is no shame in patience." + + mistborn_keeper.0030.t:0 "Forbidden Lessons" + mistborn_keeper.0030.desc:0 "In a locked chamber, by candlelight, you tap your coppermind and share the memories within — stories of a world before the ash, before the Lord Ruler's Ascension. Green plants, blue skies, flowers. Your student's eyes widen with wonder and disbelief." + mistborn_keeper.0030.a:0 "They must know the truth." + mistborn_keeper.0030.b:0 "It is too dangerous right now." + teach_history_safe_tt:0 "The lesson passes without incident." + teach_history_detected_tt:0 "Rumors of your forbidden teachings have reached the Ministry." + teach_history_cancelled_tt:0 "You decide the risk is too great for now." + + mistborn_keeper.0040.t:0 "Ministry Investigation" + mistborn_keeper.0040.desc:0 "Obligators have been asking questions in the district — pointed questions about Terris servants, about metalminds, about unusual scholarly activities. Someone has drawn the Steel Ministry's attention to your domain. A Keeper in your court is in danger." + mistborn_keeper.0040.a:0 "Hide the Keeper — quickly!" + mistborn_keeper.0040.b:0 "Hand over the Keeper to the Ministry." + mistborn_keeper.0040.c:0 "Protect the Keeper, whatever the cost." + keeper_hidden_success_tt:0 "The Keeper has been successfully hidden from the Ministry investigators." + keeper_discovered_tt:0 "The Keeper has been discovered by the Ministry!" + keeper_handed_over_tt:0 "You have surrendered the Keeper to the Steel Ministry." + keeper_protected_tt:0 "You have protected the Keeper, but the Ministry grows suspicious of you." + + mistborn_keeper.0050.t:0 "Coppermind Sharing" + mistborn_keeper.0050.desc:0 "A fellow Keeper arrives in secret, bearing copperminds full of recovered histories — tales of the Deepness, the Hero of Ages prophecy, the pre-Ascension world. You spend the night exchanging memories, each of you adding to the other's store of knowledge." + mistborn_keeper.0050.a:0 "Share memories — expand my knowledge." + mistborn_keeper.0050.b:0 "Store memories — preserve them for future generations." + coppermind_sharing_tt:0 "You have gained new knowledge from fellow Keepers." + coppermind_storing_tt:0 "You have preserved critical knowledge for future generations." + + # ========== MODIFIERS ========== + + keeper_network_bonus:0 "Keeper Network" + keeper_network_bonus_desc:0 "A clandestine network of Terris Keepers operates within your realm, quietly preserving forbidden knowledge and enhancing cultural understanding." + + # ========== TOOLTIPS ========== + + dismiss_inquisitor_order_piety_tt:0 "Dismissing the Lord Ruler's enforcers is an act of impiety."