package org.mage.test.multiplayer; import mage.abilities.keyword.HexproofAbility; import mage.constants.MultiplayerAttackOption; import mage.constants.PhaseStep; import mage.constants.RangeOfInfluence; import mage.constants.Zone; import mage.counters.CounterType; import mage.game.FreeForAll; import mage.game.Game; import mage.game.GameException; import org.junit.Test; import org.mage.test.serverside.base.CardTestMultiPlayerBase; import java.io.FileNotFoundException; /** * Created by escplan9 */ public class PrivilegedPositionTest extends CardTestMultiPlayerBase { @Override protected Game createNewGameAndPlayers() throws GameException, FileNotFoundException { Game game = new FreeForAll(MultiplayerAttackOption.MULTIPLE, RangeOfInfluence.ALL, 0, 40); // Player order: A -> D -> C -> B playerA = createPlayer(game, playerA, "PlayerA"); playerB = createPlayer(game, playerB, "PlayerB"); playerC = createPlayer(game, playerC, "PlayerC"); playerD = createPlayer(game, playerD, "PlayerD"); return game; } /* * Reported bug: see issue #3328 * Players unable to attack Planeswalker with Privileged Position on battlefield. */ @Test public void testAttackPlaneswalkerWithHexproofPrivilegedPosition() { /* Privileged Position {2}{G/W}{G/W}{G/W} Enchantment Other permanents you control have hexproof. */ String pPosition = "Privileged Position"; String sorin = "Sorin, Solemn Visitor"; // planeswalker {2}{W}{B} 4 loyalty String memnite = "Memnite"; // {0} 1/1 addCard(Zone.BATTLEFIELD, playerD, pPosition); addCard(Zone.BATTLEFIELD, playerD, sorin); addCard(Zone.BATTLEFIELD, playerA, memnite); addCard(Zone.BATTLEFIELD, playerB, memnite); addCard(Zone.BATTLEFIELD, playerC, memnite); // Player order: A -> D -> C -> B attack(1, playerA, memnite, sorin); attack(3, playerC, memnite, sorin); attack(4, playerB, memnite, sorin); setStopAt(4, PhaseStep.END_COMBAT); execute(); assertPermanentCount(playerD, pPosition, 1); assertPermanentCount(playerD, sorin, 1); assertTappedCount(memnite, true, 3); assertLife(playerD, 40); assertCounterCount(sorin, CounterType.LOYALTY, 1); assertAbility(playerD, sorin, HexproofAbility.getInstance(), true); } }