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 <noreply@anthropic.com>
This commit is contained in:
2026-02-07 22:36:03 +01:00
co-authored by Claude Opus 4.6
parent 264156ec77
commit a0185cdc71
3 changed files with 19 additions and 23 deletions
@@ -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
}
}
}
@@ -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 = {
@@ -8,7 +8,8 @@
# Steel Misting - Pushes on nearby metals
trait_misting_coinshot = {
category = fame
category = fame
genetic = yes
group = "allomancy_group"