Make sure lands via hideaway respects 305.2

This commit is contained in:
Kranken 2016-05-28 14:07:29 +02:00 committed by Anders Åstrand
parent f06e6a7bbb
commit 5f7d710b5e
2 changed files with 34 additions and 1 deletions

View file

@ -194,4 +194,34 @@ public class HideawayTest extends CardTestPlayerBase {
assertTapped("Windbrisk Heights", true);
Assert.assertEquals(playerA.getLandsPlayed(), 1);
}
@Test
public void testCanPlayMoreLandsIfAble() {
addCard(Zone.HAND, playerA, "Windbrisk Heights");
addCard(Zone.LIBRARY, playerA, "Ghost Quarter");
addCard(Zone.HAND, playerA, "Plains");
skipInitShuffling();
addCard(Zone.BATTLEFIELD, playerA, "Plains", 1);
addCard(Zone.BATTLEFIELD, playerA, "Auriok Champion", 3);
addCard(Zone.BATTLEFIELD, playerA, "Fastbond", 1);
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Windbrisk Heights");
setChoice(playerA, "Ghost Quarter");
playLand(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Plains");
attack(3, playerA, "Auriok Champion");
attack(3, playerA, "Auriok Champion");
attack(3, playerA, "Auriok Champion");
activateAbility(3, PhaseStep.DECLARE_BLOCKERS, playerA, "{W},");
setStopAt(3, PhaseStep.END_COMBAT);
execute();
assertPermanentCount(playerA, "Ghost Quarter", 1);
assertTapped("Windbrisk Heights", true);
Assert.assertEquals(playerA.getLandsPlayed(), 2);
}
}

View file

@ -37,6 +37,8 @@ import mage.game.Game;
import mage.players.Player;
import mage.util.CardUtil;
import java.util.UUID;
/**
* @author LevelX2
*
@ -75,7 +77,8 @@ public class HideawayPlayEffect extends OneShotEffect {
* and you haven't already played a land that turn. This counts as your land play for the turn.
*/
if (card.getCardType().contains(CardType.LAND)) {
if (controller.getLandsPlayed() > 0 || !game.getActivePlayerId().equals(controller.getId())) {
UUID playerId = controller.getId();
if (!game.getActivePlayerId().equals(playerId) || !game.getPlayer(playerId).canPlayLand()) {
return false;
}
}