diff --git a/Mage.Sets/src/mage/sets/dragonsmaze/ProgenitorMimic.java b/Mage.Sets/src/mage/sets/dragonsmaze/ProgenitorMimic.java index 9df44c4d7df..e55c0b6ac7c 100644 --- a/Mage.Sets/src/mage/sets/dragonsmaze/ProgenitorMimic.java +++ b/Mage.Sets/src/mage/sets/dragonsmaze/ProgenitorMimic.java @@ -77,9 +77,9 @@ public class ProgenitorMimic extends CardImpl { new SourceMatchesFilterCondition(filter), "At the beginning of your upkeep, if this creature isn't a token, put a token onto the battlefield that's a copy of this creature.") ); - effect = new CopyPermanentEffect(); + effect = new CopyPermanentEffect(applier); effect.setText("as a copy of any creature on the battlefield except it gains \"At the beginning of your upkeep, if this creature isn't a token, put a token onto the battlefield that's a copy of this creature.\""); - this.addAbility(new EntersBattlefieldAbility(new CopyPermanentEffect(applier), true)); + this.addAbility(new EntersBattlefieldAbility(effect, true)); } public ProgenitorMimic(final ProgenitorMimic card) { diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/copy/ProgenitorMimicTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/copy/ProgenitorMimicTest.java index 47b0eff5afd..31e9e34ee25 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/copy/ProgenitorMimicTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/copy/ProgenitorMimicTest.java @@ -162,6 +162,7 @@ public class ProgenitorMimicTest extends CardTestPlayerBase { addCard(Zone.HAND, playerB, "Progenitor Mimic", 1); addCard(Zone.BATTLEFIELD, playerB, "Island", 3); addCard(Zone.BATTLEFIELD, playerB, "Forest", 3); + addCard(Zone.BATTLEFIELD, playerB, "Bloodrage Vampire", 1); // 3/1 castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Progenitor Mimic"); setChoice(playerB, "Captivating Vampire"); @@ -177,6 +178,9 @@ public class ProgenitorMimicTest extends CardTestPlayerBase { execute(); assertPermanentCount(playerA, "Captivating Vampire", 2); + + assertPowerToughness(playerB, "Bloodrage Vampire", 3, 1); // +0 because all Captivating Vampire are controlled by playerB + assertPowerToughness(playerA, "Captivating Vampire", 3, 3, Filter.ComparisonScope.All); // +1 from the other Captivating Vampire assertPowerToughness(playerA, "Child of Night", 4, 3, Filter.ComparisonScope.All); // +2 from the two Captivating Vampire diff --git a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java index 5d681562862..5cf70dda761 100644 --- a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java @@ -632,6 +632,9 @@ public abstract class PermanentImpl extends CardImpl implements Permanent { game.fireEvent(new GameEvent(EventType.GAINED_CONTROL, objectId, objectId, controllerId)); return true; + } else if (isCopy()) {// Because the previous copied abilities can be from another controller chnage controller in any case for abilities + this.getAbilities(game).setControllerId(controllerId); + game.getContinuousEffects().setController(objectId, controllerId); } return false; }