From c401b35b636b0ee140633400989c777210a220c8 Mon Sep 17 00:00:00 2001 From: "Alex W. Jackson" Date: Wed, 14 Sep 2022 03:08:23 -0400 Subject: [PATCH] Fix #9524 --- Mage.Sets/src/mage/cards/b/BeamsplitterMage.java | 11 +++-------- Mage.Sets/src/mage/cards/i/IvyGleefulSpellthief.java | 2 +- .../java/mage/game/permanent/token/TokenImpl.java | 7 ++++--- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Mage.Sets/src/mage/cards/b/BeamsplitterMage.java b/Mage.Sets/src/mage/cards/b/BeamsplitterMage.java index 04b192dc2c6..b8e5c8f566d 100644 --- a/Mage.Sets/src/mage/cards/b/BeamsplitterMage.java +++ b/Mage.Sets/src/mage/cards/b/BeamsplitterMage.java @@ -194,12 +194,10 @@ class BeamsplitterMagePredicate implements Predicate { class BeamsplitterMageApplier implements StackObjectCopyApplier { - private final Iterator predicate; + private final MageObjectReferencePredicate morPredicate; BeamsplitterMageApplier(Permanent permanent, Game game) { - this.predicate = Arrays.asList(new MageObjectReferencePredicate( - new MageObjectReference(permanent, game) - )).iterator(); + this.morPredicate = new MageObjectReferencePredicate(permanent, game); } @Override @@ -208,9 +206,6 @@ class BeamsplitterMageApplier implements StackObjectCopyApplier { @Override public MageObjectReferencePredicate getNextNewTargetType(int copyNumber) { - if (predicate.hasNext()) { - return predicate.next(); - } - return null; + return morPredicate; } } diff --git a/Mage.Sets/src/mage/cards/i/IvyGleefulSpellthief.java b/Mage.Sets/src/mage/cards/i/IvyGleefulSpellthief.java index 25a8fd3fee2..b91e2852346 100644 --- a/Mage.Sets/src/mage/cards/i/IvyGleefulSpellthief.java +++ b/Mage.Sets/src/mage/cards/i/IvyGleefulSpellthief.java @@ -109,7 +109,7 @@ class IvyGleefulSpellthiefEffect extends OneShotEffect { @Override public MageObjectReferencePredicate getNextNewTargetType(int copyNumber) { - return copyNumber == 0 ? morPredicate : null; + return morPredicate; } } diff --git a/Mage/src/main/java/mage/game/permanent/token/TokenImpl.java b/Mage/src/main/java/mage/game/permanent/token/TokenImpl.java index 7370c0a0eb3..3589e3e7021 100644 --- a/Mage/src/main/java/mage/game/permanent/token/TokenImpl.java +++ b/Mage/src/main/java/mage/game/permanent/token/TokenImpl.java @@ -298,9 +298,10 @@ public abstract class TokenImpl extends MageObjectImpl implements Token { game.addSimultaneousEvent(new CreatedTokenEvent(source, (PermanentToken) permanent)); } - // handle auras coming into the battlefield - // code refactored from CopyPermanentEffect - if (permanent.getSubtype().contains(SubType.AURA)) { + // if token was created (not a spell copy) handle auras coming into the battlefield + // code blindly copied from CopyPermanentEffect + // TODO: clean this up -- half the comments make no sense in the context of creating a token + if (created && permanent.getSubtype().contains(SubType.AURA)) { Outcome auraOutcome = Outcome.BoostCreature; Target auraTarget = null;