diff --git a/Mage.Sets/src/mage/cards/v/VorinclexMonstrousRaider.java b/Mage.Sets/src/mage/cards/v/VorinclexMonstrousRaider.java index ea9f6e1bc98..0a136451271 100644 --- a/Mage.Sets/src/mage/cards/v/VorinclexMonstrousRaider.java +++ b/Mage.Sets/src/mage/cards/v/VorinclexMonstrousRaider.java @@ -12,6 +12,8 @@ import mage.cards.CardSetInfo; import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.players.Player; import java.util.UUID; @@ -85,10 +87,17 @@ class VorinclexMonstrousRaiderEffect extends ReplacementEffectImpl { @Override public boolean applies(GameEvent event, Ability source, Game game) { - if (game.getPlayer(event.getTargetId()) == null - && game.getState().getZone(event.getTargetId()) != Zone.BATTLEFIELD) { + Player targetPlayer = game.getPlayer(event.getTargetId()); + Permanent targetPermanet = game.getPermanentEntering(event.getTargetId()); + if (targetPermanet == null) { + targetPermanet = game.getPermanent(event.getTargetId()); + } + + // on a permanent or player + if (targetPlayer == null && targetPermanet == null) { return false; } + return source.isControlledBy(event.getPlayerId()) || game.getOpponents(event.getPlayerId()).contains(source.getControllerId()); } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/khm/VorinclexMonstrousRaiderTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/khm/VorinclexMonstrousRaiderTest.java index dc5f8736270..2337da1de57 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/khm/VorinclexMonstrousRaiderTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/khm/VorinclexMonstrousRaiderTest.java @@ -11,10 +11,15 @@ import org.mage.test.serverside.base.CardTestPlayerBase; */ public class VorinclexMonstrousRaiderTest extends CardTestPlayerBase { + // If you would put one or more counters on a permanent or player, put twice that many of each of + // those kinds of counters on that permanent or player instead. + // If an opponent would put one or more counters on a permanent or player, they put half that + // many of each of those kinds of counters on that permanent or player instead, rounded down. private static final String vorinclex = "Vorinclex, Monstrous Raider"; private static final String boon = "Dragonscale Boon"; private static final String bear = "Grizzly Bears"; private static final String rats = "Ichor Rats"; + private static final String planeswalker = "Chandra, Fire Artisan"; // 4 loyalty @Test public void testIDoubleCountersOnMyStuff() { @@ -67,6 +72,22 @@ public class VorinclexMonstrousRaiderTest extends CardTestPlayerBase { assertCounterCount(playerB, CounterType.POISON, 2); } + @Test + public void testIDoubleCountersOnPlaneswalker() { + addCard(Zone.BATTLEFIELD, playerA, vorinclex); + addCard(Zone.HAND, playerA, planeswalker); // {2}{R}{R} + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, planeswalker); + + setStrictChooseMode(true); + setStopAt(1, PhaseStep.END_TURN); + execute(); + assertAllCommandsUsed(); + + assertCounterCount(playerA, planeswalker, CounterType.LOYALTY, 4 * 2); + } + @Test public void testTheyHalveCountersOnTheirStuff() { addCard(Zone.BATTLEFIELD, playerB, "Forest", 4);