Fixed that move cards event included cards that were not successful moved (fixes #1211).

This commit is contained in:
LevelX2 2015-08-19 10:19:12 +02:00
parent 1dbe6243f4
commit bd6eb91ee2
4 changed files with 82 additions and 23 deletions

View file

@ -112,4 +112,48 @@ public class SidisiBroodTyrantTest extends CardTestPlayerBase {
assertPermanentCount(playerA, "Zombie", 2);
}
/*
Sidisi's zombie trigger still resolves even with Anafenza on the battle field.
Steps:
Cast Anafenza
Pass
Cast Sidisi, mill creature.
Zombie is still created.
Due to replacement effect of exiling creatures, the second phase of sidisi is null with Anafenza out.
*/
@Test
public void testWithAnafenza() {
addCard(Zone.BATTLEFIELD, playerA, "Island");
addCard(Zone.BATTLEFIELD, playerA, "Swamp");
addCard(Zone.BATTLEFIELD, playerA, "Forest", 4);
// {1}{B}{G}{U}
// Whenever Sidisi, Brood Tyrant enters the battlefield or attacks, put the top three cards of your library into your graveyard
// Whenever one or more creature cards are put into your graveyard from your library, put a 2/2 black Zombie creature token onto the battlefield.
addCard(Zone.HAND, playerA, "Sidisi, Brood Tyrant"); // 2/2 {1}{B}{G}{U}
addCard(Zone.LIBRARY, playerA, "Silvercoat Lion", 1);
addCard(Zone.LIBRARY, playerA, "Swamp", 1);
addCard(Zone.LIBRARY, playerA, "Silvercoat Lion", 1);
skipInitShuffling();
// Whenever Anafenza, the Foremost attacks, put a +1/+1 counter on another target tapped creature you control.
// If a creature card would be put into an opponent's graveyard from anywhere, exile it instead.
addCard(Zone.BATTLEFIELD, playerB, "Anafenza, the Foremost");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sidisi, Brood Tyrant");
setStopAt(1, PhaseStep.END_TURN);
execute();
assertPermanentCount(playerA, "Sidisi, Brood Tyrant", 1);
assertGraveyardCount(playerA, "Swamp", 1);
assertGraveyardCount(playerA, "Silvercoat Lion", 0);
assertExileCount("Silvercoat Lion", 2);
assertPermanentCount(playerA, "Zombie", 0);
}
}

View file

@ -1717,7 +1717,7 @@ public class TestPlayer implements Player {
}
@Override
public boolean moveCardsToGraveyardWithInfo(Set<Card> allCards, Ability source, Game game, Zone fromZone) {
public Set<Card> moveCardsToGraveyardWithInfo(Set<Card> allCards, Ability source, Game game, Zone fromZone) {
return computerPlayer.moveCardsToGraveyardWithInfo(allCards, source, game, fromZone);
}