diff --git a/src/forge/GameAction.java b/src/forge/GameAction.java index 1917f5d42b5..3ee038eaa80 100644 --- a/src/forge/GameAction.java +++ b/src/forge/GameAction.java @@ -3230,9 +3230,17 @@ public class GameAction { public void playSpellAbility(SpellAbility sa) { sa.setActivatingPlayer(AllZone.HumanPlayer); - if (sa.getPayCosts() != null){ - Target_Selection ts = new Target_Selection(sa.getTarget(), sa); - Cost_Payment payment = new Cost_Payment(sa.getPayCosts(), sa); + if (sa.getPayCosts() != null || sa.getTarget() != null){ + Target_Selection ts = new Target_Selection(sa.getTarget(), sa); + Cost_Payment payment = null; + if(sa.getPayCosts() == null) + { + payment = new Cost_Payment(new Ability_Cost("0",sa.getSourceCard().getName(),sa.isAbility()), sa); + } + else + { + payment = new Cost_Payment(sa.getPayCosts(),sa); + } payment.changeCost(); @@ -3268,11 +3276,19 @@ public class GameAction { } } - public void playSpellAbility_NoStack(SpellAbility sa) { + public void playSpellAbility_NoStack(SpellAbility sa,boolean skipTargeting) { sa.setActivatingPlayer(AllZone.HumanPlayer); if (sa.getPayCosts() != null){ - Target_Selection ts = new Target_Selection(sa.getTarget(), sa); + Target_Selection ts = null; + if(skipTargeting) + { + ts = new Target_Selection(null, sa); + } + else + { + ts = new Target_Selection(sa.getTarget(),sa); + } Cost_Payment payment = new Cost_Payment(sa.getPayCosts(), sa); payment.changeCost(); diff --git a/src/forge/TriggerHandler.java b/src/forge/TriggerHandler.java index 9a643e46b76..ac408d4035b 100644 --- a/src/forge/TriggerHandler.java +++ b/src/forge/TriggerHandler.java @@ -726,7 +726,7 @@ public class TriggerHandler { //sa[0].resolve(); if(sa[0].getSourceCard().getController().equals(AllZone.HumanPlayer)) { - AllZone.GameAction.playSpellAbility_NoStack(sa[0]); + AllZone.GameAction.playSpellAbility_NoStack(sa[0],true); } else {