From a0185cdc7137f962a2bf3f3975677d6e3ff05df4 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sat, 7 Feb 2026 22:36:03 +0100 Subject: [PATCH] feat(triggers): add hemalurgy trigger and redirect snapping effect Add has_multiple_spikes_trigger for Inquisitor transformation check (requires 3+ spike traits). Redirect trigger_snapping_effect to use the snapping event chain (mistborn_snapping.0020) as single source of truth for Misting type assignment, replacing inline duplication. Fix minor formatting issue in trait_misting_coinshot definition. Co-Authored-By: Claude Opus 4.6 --- .../scripted_effects/mistborn_effects.txt | 28 ++++--------------- .../scripted_triggers/mistborn_triggers.txt | 11 ++++++++ .../common/traits/00_allomancy_traits.txt | 3 +- 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/lords_of_ash/common/scripted_effects/mistborn_effects.txt b/lords_of_ash/common/scripted_effects/mistborn_effects.txt index 66dda60..608c07a 100644 --- a/lords_of_ash/common/scripted_effects/mistborn_effects.txt +++ b/lords_of_ash/common/scripted_effects/mistborn_effects.txt @@ -101,32 +101,16 @@ decrease_lord_ruler_attention_effect = { # ===== SNAPPING EFFECT ===== trigger_snapping_effect = { - # A traumatic event causes a character with potential to "snap" and awaken their powers - # This is the core mechanic - near-death experiences activate Allomancy - + # Utility effect: triggers the snapping event chain for a character with potential. + # The actual Misting type assignment happens in mistborn_snapping.0020's immediate block, + # which is the single source of truth for weighted random Misting type selection. if = { limit = { can_snap_trigger = yes } - - # The snapping event - stress_impact = { - base = major_stress_impact_gain - } - - # Activate the power - activate_allomancy_effect = yes - - # Notify the character's liege - if = { - limit = { exists = liege } - liege = { - send_interface_message = { - type = event_generic_neutral - title = msg_vassal_snapped - left_icon = prev - } - } + trigger_event = { + id = mistborn_snapping.0020 + days = 1 } } } diff --git a/lords_of_ash/common/scripted_triggers/mistborn_triggers.txt b/lords_of_ash/common/scripted_triggers/mistborn_triggers.txt index a66933f..f72e3a0 100644 --- a/lords_of_ash/common/scripted_triggers/mistborn_triggers.txt +++ b/lords_of_ash/common/scripted_triggers/mistborn_triggers.txt @@ -107,6 +107,17 @@ has_hemalurgic_spike_trigger = { } } +has_multiple_spikes_trigger = { + # Character has 3+ hemalurgic spike traits — eligible for Inquisitor transformation + calc_true_if = { + amount >= 3 + has_trait = trait_hemalurgic_steel + has_trait = trait_hemalurgic_pewter + has_trait = trait_hemalurgic_bronze + has_trait = trait_hemalurgic_atium + } +} + # ===== CULTURAL TRIGGERS ===== is_noble_scadrian_trigger = { diff --git a/lords_of_ash/common/traits/00_allomancy_traits.txt b/lords_of_ash/common/traits/00_allomancy_traits.txt index d86313d..0752b50 100644 --- a/lords_of_ash/common/traits/00_allomancy_traits.txt +++ b/lords_of_ash/common/traits/00_allomancy_traits.txt @@ -8,7 +8,8 @@ # Steel Misting - Pushes on nearby metals trait_misting_coinshot = { -category = fame + + category = fame genetic = yes group = "allomancy_group"