diff --git a/forge-game/src/main/java/forge/game/ability/effects/SetStateEffect.java b/forge-game/src/main/java/forge/game/ability/effects/SetStateEffect.java index 3a67a401114..da458252bbb 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/SetStateEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/SetStateEffect.java @@ -4,12 +4,15 @@ import forge.card.CardStateName; import forge.game.Game; import forge.game.GameEntityCounterTable; import forge.game.GameLogEntryType; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.*; import forge.game.event.GameEventCardStatsChanged; import forge.game.player.Player; import forge.game.player.PlayerActionConfirmMode; +import forge.game.trigger.TriggerHandler; +import forge.game.trigger.TriggerType; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; import forge.util.Lang; @@ -17,6 +20,8 @@ import forge.util.Localizer; import forge.util.TextUtil; import org.apache.commons.lang3.StringUtils; +import java.util.Map; + public class SetStateEffect extends SpellAbilityEffect { @Override @@ -207,6 +212,12 @@ public class SetStateEffect extends SpellAbilityEffect { transformedCards.add(gameCard); if ("Specialize".equals(mode)) { gameCard.setSpecialized(true); + //run Specializes trigger + final TriggerHandler th = game.getTriggerHandler(); + th.clearActiveTriggers(gameCard, null); + th.registerActiveTrigger(gameCard, false); + final Map runParams = AbilityKey.mapFromCard(gameCard); + th.runTrigger(TriggerType.Specializes, runParams, false); } else if ("Unspecialize".equals(mode)) { gameCard.setSpecialized(false); }