diff --git a/Mage.Sets/src/mage/cards/a/ArcaneDenial.java b/Mage.Sets/src/mage/cards/a/ArcaneDenial.java index 52b43f4cc6e..35c3378def3 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneDenial.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneDenial.java @@ -68,22 +68,8 @@ class ArcaneDenialEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Card originalSourceCard; // needed for copies of Arcane Denial See Bug #5437 Player controller = null; boolean countered = false; - // If the source originates from a copy (Isochron Scepter for example), - // then we set the source's sourceId to the original card, otherwise it - // uses the spell on the stack as its sourceObject which won't work - // correctly with any cards that make use of Delayed Triggers. - // see Bug #5437 - Card cardToCheck = game.getCard(source.getSourceId()); - if (cardToCheck != null - && cardToCheck.isCopy()) { // Isochron Scepter imprinted card for example - originalSourceCard = (Card) game.getState().getValue("RememberSourceObject" + source.getSourceId()); - if (originalSourceCard != null) { - source.setSourceId(originalSourceCard.getId()); - } - } UUID targetId = this.getTargetPointer().getFirst(game, source); if (targetId != null) { controller = game.getPlayer(game.getControllerId(targetId)); diff --git a/Mage.Sets/src/mage/cards/i/IsochronScepter.java b/Mage.Sets/src/mage/cards/i/IsochronScepter.java index fbacfe77f71..1cf3f26366e 100644 --- a/Mage.Sets/src/mage/cards/i/IsochronScepter.java +++ b/Mage.Sets/src/mage/cards/i/IsochronScepter.java @@ -143,9 +143,6 @@ class IsochronScepterCopyEffect extends OneShotEffect { if (controller.chooseUse(outcome, "Create a copy of " + imprintedInstant.getName() + '?', source, game)) { Card copiedCard = game.copyCard(imprintedInstant, source, source.getControllerId()); if (copiedCard != null) { - // Need to record the sourceObject info for the copy (example Arcane Denial) - // TODO implement this within the codebase. See Bug #5437 - game.getState().setValue("RememberSourceObject" + copiedCard.getId(), imprintedInstant); game.getExile().add(source.getSourceId(), "", copiedCard); game.getState().setZone(copiedCard.getId(), Zone.EXILED); if (controller.chooseUse(outcome, "Cast the copied card without paying mana cost?", source, game)) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/DrawCardSourceControllerEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DrawCardSourceControllerEffect.java index 0f22df3aaa4..8e260bd88c3 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DrawCardSourceControllerEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DrawCardSourceControllerEffect.java @@ -53,7 +53,7 @@ public class DrawCardSourceControllerEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null - && player.isInGame()) { + && player.canRespond()) { player.drawCards(amount.calculate(game, source, this), game); return true; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/DrawCardTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DrawCardTargetEffect.java index 64a996298a7..c56ae3840ba 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DrawCardTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DrawCardTargetEffect.java @@ -63,7 +63,7 @@ public class DrawCardTargetEffect extends OneShotEffect { for (UUID playerId : getTargetPointer().getTargets(game, source)) { Player player = game.getPlayer(playerId); if (player != null - && player.isInGame()) { + && player.canRespond()) { int cardsToDraw = amount.calculate(game, source, this); if (upTo) { cardsToDraw = player.getAmount(0, cardsToDraw, "Draw how many cards?", game);