fix(triggers): separate active/dormant allomancy and feruchemy triggers

Split over-inclusive triggers into distinct variants:
- is_feruchemist_trigger now matches only active trait_feruchemist
- has_allomantic_potential_trigger now excludes already-snapped chars
- Added has_any_feruchemy_trigger and has_any_allomantic_ability_trigger
  for broad matching when needed
- Added is_narrative_mode_trigger and is_sandbox_mode_trigger for the
  new game mode system

Fixes WARNING-06 and WARNING-07 from the mod review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-07 22:09:04 +01:00
co-authored by Claude Opus 4.6
parent a164f1b189
commit d125178f67
@@ -26,12 +26,20 @@ is_mistborn_trigger = {
}
has_allomantic_potential_trigger = {
# Character has the hidden genetic potential for Allomancy
# Character has dormant Allomantic potential (has NOT snapped yet)
OR = {
has_trait = trait_allomantic_potential
has_trait = trait_mistborn_potential
}
NOT = { is_allomancer_trigger = yes }
}
has_any_allomantic_ability_trigger = {
# Character has any Allomantic ability — dormant potential OR active powers
OR = {
has_trait = trait_allomantic_potential
has_trait = trait_mistborn_potential
is_allomancer_trigger = yes
is_mistborn_trigger = yes
}
}
@@ -69,6 +77,14 @@ is_higher_allomancer_trigger = {
# ===== FERUCHEMY TRIGGERS =====
is_feruchemist_trigger = {
has_trait = trait_feruchemist
}
has_feruchemy_potential_trigger = {
has_trait = trait_feruchemy_potential
}
has_any_feruchemy_trigger = {
OR = {
has_trait = trait_feruchemist
has_trait = trait_feruchemy_potential
@@ -132,3 +148,13 @@ can_snap_trigger = {
NOT = { is_mistborn_trigger = yes }
age >= 10 # Must be old enough
}
# ===== GAME MODE TRIGGERS =====
is_narrative_mode_trigger = {
has_game_rule = mistborn_game_mode_narrative_mode
}
is_sandbox_mode_trigger = {
has_game_rule = mistborn_game_mode_sandbox_mode
}