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 8c8b4584068..852a4110ec3 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 @@ -106,12 +106,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { mayChoseNewTargets = false; for (GameEntity o : candidates) { SpellAbility copy = CardFactory.copySpellAbilityAndSrcCard(card, chosenSA.getHostCard(), chosenSA, true); - copy.resetFirstTarget(o, targetedSA); - AbilitySub subAb = copy.getSubAbility(); - while (subAb != null) { - subAb.resetFirstTarget(o, targetedSA); - subAb = subAb.getSubAbility(); - } + resetFirstTargetOnCopy(copy, o, targetedSA); copies.add(copy); } } else {// Precursor Golem, Ink-Treader Nephilim @@ -128,12 +123,7 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { mayChoseNewTargets = false; for (Card c : valid) { SpellAbility copy = CardFactory.copySpellAbilityAndSrcCard(card, chosenSA.getHostCard(), chosenSA, true); - copy.resetFirstTarget(c, targetedSA); - AbilitySub subAb = copy.getSubAbility(); - while (subAb != null) { - subAb.resetFirstTarget(c, targetedSA); - subAb = subAb.getSubAbility(); - } + resetFirstTargetOnCopy(copy, c, targetedSA); copies.add(copy); } } @@ -151,4 +141,13 @@ public class CopySpellAbilityEffect extends SpellAbilityEffect { } } // end resolve + private void resetFirstTargetOnCopy(SpellAbility copy, GameEntity obj, SpellAbility targetedSA) { + copy.resetFirstTarget(obj, targetedSA); + AbilitySub subAb = copy.getSubAbility(); + while (subAb != null) { + subAb.resetFirstTarget(obj, targetedSA); + subAb = subAb.getSubAbility(); + } + } + }