From c3e752f98fb77148fee9b3b61b748829416c073d Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Fri, 21 Jun 2013 06:47:33 +0000 Subject: [PATCH] rearrange and update comments --- .../card/ability/effects/ChangeTargetsEffect.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/forge/card/ability/effects/ChangeTargetsEffect.java b/src/main/java/forge/card/ability/effects/ChangeTargetsEffect.java index 1e7b8e468fd..8e20e5d4e87 100644 --- a/src/main/java/forge/card/ability/effects/ChangeTargetsEffect.java +++ b/src/main/java/forge/card/ability/effects/ChangeTargetsEffect.java @@ -40,13 +40,12 @@ public class ChangeTargetsEffect extends SpellAbilityEffect { } boolean preserveNumber = sa.hasParam("PreserveNumber"); // Redirect is not supposed to change number of targets - boolean changeOneTarget = sa.hasParam("ChangeSingleTarget"); // The only card known to replace targets with self is Spellskite + boolean changesOneTarget = sa.hasParam("ChangeSingleTarget"); // The only card known to replace targets with self is Spellskite SpellAbilityStackInstance changingTgtSI = si; Player chooser = sa.getActivatingPlayer(); - if( changeOneTarget ) { - ITargetable newTarget = Iterables.getFirst(getDefinedCardsOrTargeted(sa), null); + if( changesOneTarget ) { // 1. choose a target of target spell List> allTargets = new ArrayList<>(); while(changingTgtSI != null) { @@ -63,14 +62,15 @@ public class ChangeTargetsEffect extends SpellAbilityEffect { } Pair chosenTarget = chooser.getController().chooseTarget(sa, allTargets); - // 2. replace with spellskite + // 2. prepare new target choices SpellAbilityStackInstance replaceIn = chosenTarget.getKey(); ITargetable oldTarget = chosenTarget.getValue(); TargetChoices oldTargetBlock = replaceIn.getTargetChoices(); TargetChoices newTargetBlock = oldTargetBlock.clone(); newTargetBlock.remove(oldTarget); replaceIn.updateTarget(newTargetBlock); - // 3. test if replacing is correct. + // 3. test if updated choices would be correct. + ITargetable newTarget = Iterables.getFirst(getDefinedCardsOrTargeted(sa), null); if(replaceIn.getSpellAbility().canTarget(newTarget)) { newTargetBlock.add(newTarget); replaceIn.updateTarget(newTargetBlock);