From 3dcf04cc8cc252de25c51b27cee4e697d6ac532f Mon Sep 17 00:00:00 2001 From: Agetian Date: Tue, 14 Mar 2017 16:22:52 +0000 Subject: [PATCH] - Targeted spell copies should not allow the player to cancel targeting (e.g. Storm spell copies). --- .../game/ability/effects/CopySpellAbilityEffect.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java index ec544d659ee..37eb00246bd 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CopySpellAbilityEffect.java @@ -70,7 +70,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { return; } - boolean mayChoseNewTargets = true; + boolean mayChooseNewTargets = true; List copies = new ArrayList(); if (sa.hasParam("CopyMultipleSpells")) { @@ -107,7 +107,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { for(Player p : targetedSA.getTargets().getTargetPlayers()) candidates.remove(p); - mayChoseNewTargets = false; + mayChooseNewTargets = false; for (GameEntity o : candidates) { SpellAbility copy = CardFactory.copySpellAbilityAndSrcCard(card, chosenSA.getHostCard(), chosenSA, true); resetFirstTargetOnCopy(copy, o, targetedSA); @@ -133,7 +133,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { valid = CardLists.getValidCards(valid, type.split(","), chosenSA.getActivatingPlayer(), chosenSA.getHostCard(), sa); Card originalTarget = Iterables.getFirst(getTargetCards(chosenSA), null); valid.remove(originalTarget); - mayChoseNewTargets = false; + mayChooseNewTargets = false; for (final Card c : valid) { SpellAbility copy = CardFactory.copySpellAbilityAndSrcCard(card, chosenSA.getHostCard(), chosenSA, true); resetFirstTargetOnCopy(copy, c, targetedSA); @@ -155,7 +155,10 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { } for(SpellAbility copySA : copies) { - controller.getController().playSpellAbilityForFree(copySA, mayChoseNewTargets); + if (mayChooseNewTargets && copySA.usesTargeting()) { + copySA.getTargetRestrictions().setMandatory(true); + } + controller.getController().playSpellAbilityForFree(copySA, mayChooseNewTargets); } } // end resolve