diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index 9117781c670..ffcd0d17165 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -971,19 +971,19 @@ public class CardFactoryUtil { * a int. * @return a {@link forge.card.spellability.AbilityActivated} object. */ - public static AbilityActivated abilityMorphUp(final Card sourceCard, final Cost cost, final String orgManaCost, + public static AbilityStatic abilityMorphUp(final Card sourceCard, final Cost cost, final String orgManaCost, final int a, final int d) { - final AbilityActivated morphUp = new AbilityActivated(sourceCard, cost, null) { + final AbilityStatic morphUp = new AbilityStatic(sourceCard, cost, null) { private static final long serialVersionUID = -3663857013937085953L; @Override public void resolve() { - sourceCard.turnFaceUp(); - - // Run triggers - final Map runParams = new TreeMap(); - runParams.put("Card", sourceCard); - AllZone.getTriggerHandler().runTrigger(TriggerType.TurnFaceUp, runParams); + if (sourceCard.turnFaceUp()) { + // Run triggers + final Map runParams = new TreeMap(); + runParams.put("Card", sourceCard); + AllZone.getTriggerHandler().runTrigger(TriggerType.TurnFaceUp, runParams); + } } @Override diff --git a/src/main/java/forge/card/spellability/AbilityStatic.java b/src/main/java/forge/card/spellability/AbilityStatic.java index b9e759a8abf..7222c03fd35 100644 --- a/src/main/java/forge/card/spellability/AbilityStatic.java +++ b/src/main/java/forge/card/spellability/AbilityStatic.java @@ -18,6 +18,7 @@ package forge.card.spellability; import forge.Card; +import forge.card.cost.Cost; /** *

@@ -41,4 +42,13 @@ public abstract class AbilityStatic extends Ability { public AbilityStatic(final Card sourceCard, final String manaCost) { super(sourceCard, manaCost); } + + public AbilityStatic(final Card sourceCard, final Cost abCost, final Target tgt) { + super(sourceCard, abCost.getTotalMana()); + this.setManaCost(abCost.getTotalMana()); + this.setPayCosts(abCost); + if ((tgt != null) && tgt.doesTarget()) { + this.setTarget(tgt); + } + } } diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index bae6cbf50ba..a25bbc26e01 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -450,6 +450,8 @@ public class MagicStack extends MyObservable { if ((sp instanceof AbilityTriggered) || (sp instanceof AbilityStatic)) { // TODO: make working triggered ability sp.resolve(); + Singletons.getModel().getGameAction().checkStateEffects(); + GuiDisplayUtil.updateGUI(); } else { if (sp.isKickerAbility()) { sp.getSourceCard().setKicked(true);