diff --git a/src/forge/GameAction.java b/src/forge/GameAction.java index f5cb8bbe32a..168752ac28e 100644 --- a/src/forge/GameAction.java +++ b/src/forge/GameAction.java @@ -3283,22 +3283,14 @@ public class GameAction { sa.setActivatingPlayer(AllZone.HumanPlayer); if (sa.getPayCosts() != null){ - Target_Selection ts = null; - if(skipTargeting) - { - ts = new Target_Selection(null, sa); - } - else - { - ts = new Target_Selection(sa.getTarget(),sa); - } + Target_Selection ts = new Target_Selection(sa.getTarget(),sa); Cost_Payment payment = new Cost_Payment(sa.getPayCosts(), sa); payment.changeCost(); SpellAbility_Requirements req = new SpellAbility_Requirements(sa, ts, payment); req.setSkipStack(true); - req.fillRequirements(); + req.fillRequirements(skipTargeting); } else{ ManaCost manaCost = new ManaCost(sa.getManaCost()); diff --git a/src/forge/SpellAbility_Requirements.java b/src/forge/SpellAbility_Requirements.java index 293c7a72774..b33457b8514 100644 --- a/src/forge/SpellAbility_Requirements.java +++ b/src/forge/SpellAbility_Requirements.java @@ -21,6 +21,10 @@ public class SpellAbility_Requirements { } public void fillRequirements(){ + fillRequirements(false); + } + + public void fillRequirements(boolean skipTargeting){ if (ability instanceof Spell && !bCasting){ // remove from hand bCasting = true; @@ -35,8 +39,8 @@ public class SpellAbility_Requirements { // freeze Stack. No abilities should go onto the stack while I'm filling requirements. AllZone.Stack.freezeStack(); - // Skip to paying if parent ability doesn't target and has no subAbilities. - if (select.doesTarget() || ability.getSubAbility() != null){ + // Skip to paying if parent ability doesn't target and has no subAbilities. (or trigger case where its already targeted) + if (!skipTargeting && (select.doesTarget() || ability.getSubAbility() != null)){ select.setRequirements(this); select.resetTargets(); select.chooseTargets(); diff --git a/src/forge/TriggerHandler.java b/src/forge/TriggerHandler.java index c330e2a8026..2f1cb77931e 100644 --- a/src/forge/TriggerHandler.java +++ b/src/forge/TriggerHandler.java @@ -523,7 +523,8 @@ public class TriggerHandler { @Override public void resetOnceResolved() { - sa[0].resetOnceResolved(); + // Fixing an issue with Targeting + Paying Mana + //sa[0].resetOnceResolved(); } @Override @@ -752,10 +753,11 @@ public class TriggerHandler { } } + //sa[0].resolve(); if(sa[0].getSourceCard().getController().isHuman()) { - AllZone.GameAction.playSpellAbility_NoStack(sa[0],true); + AllZone.GameAction.playSpellAbility_NoStack(sa[0], true); } else {