From ef64865db0f6de1a67c16795f9a0d10f5d970172 Mon Sep 17 00:00:00 2001 From: jeffwadsworth Date: Mon, 13 Jan 2020 15:58:08 -0600 Subject: [PATCH] - Fixed #6177 --- Mage.Sets/src/mage/cards/i/IdentityThief.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Mage.Sets/src/mage/cards/i/IdentityThief.java b/Mage.Sets/src/mage/cards/i/IdentityThief.java index bcd8f21f65..79cb1bd4f8 100644 --- a/Mage.Sets/src/mage/cards/i/IdentityThief.java +++ b/Mage.Sets/src/mage/cards/i/IdentityThief.java @@ -22,6 +22,10 @@ import mage.target.common.TargetCreaturePermanent; import mage.target.targetpointer.FixedTarget; import java.util.UUID; +import mage.MageObject; +import mage.abilities.effects.ContinuousEffect; +import mage.abilities.effects.common.CopyEffect; +import mage.util.CardUtil; /** * @author spjspj @@ -104,16 +108,18 @@ class IdentityThiefEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { - Permanent permanent = game.getPermanentOrLKIBattlefield(source.getFirstTarget()); + Permanent targetPermanent = game.getPermanentOrLKIBattlefield(source.getFirstTarget()); Player controller = game.getPlayer(source.getControllerId()); Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); if (controller != null - && permanent != null + && targetPermanent != null && sourcePermanent != null) { - game.copyPermanent(permanent, sourcePermanent.getId(), source, null); - if (controller.moveCardToExileWithInfo(permanent, source.getSourceId(), sourcePermanent.getIdName(), - source.getSourceId(), game, Zone.BATTLEFIELD, true)) { - Effect effect = new ReturnToBattlefieldUnderOwnerControlTargetEffect(); + ContinuousEffect copyEffect = new CopyEffect(Duration.EndOfTurn, targetPermanent.getMainCard(), source.getSourceId()); + copyEffect.setTargetPointer(new FixedTarget(sourcePermanent.getId())); + game.addEffect(copyEffect, source); + UUID exileZoneId = CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter()); + if (controller.moveCardsToExile(targetPermanent, source, game, true, exileZoneId, sourcePermanent.getName())) { + Effect effect = new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, true); effect.setText("Return the exiled card to the battlefield under its owner's control at the beginning of the next end step"); effect.setTargetPointer(new FixedTarget(source.getFirstTarget(), game)); game.addDelayedTriggeredAbility(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(effect), source);