From b838d0707f992f420b51e84548524d977bea4aaf Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 16:39:15 +0000 Subject: [PATCH] *Fix for targeting triggered abilities. --- src/forge/GameAction.java | 26 +++++++++++++++++++++----- src/forge/TriggerHandler.java | 2 +- 2 files changed, 22 insertions(+), 6 deletions(-) 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 {