SetStateEffect.resolve run TriggerSpecializes

This commit is contained in:
Northmoc
2022-08-19 11:31:38 -04:00
parent 6538cf795e
commit fcb567f3f5

View File

@@ -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<AbilityKey, Object> runParams = AbilityKey.mapFromCard(gameCard);
th.runTrigger(TriggerType.Specializes, runParams, false);
} else if ("Unspecialize".equals(mode)) {
gameCard.setSpecialized(false);
}