fix River Song (#12727)

This commit is contained in:
xenohedron 2024-08-24 18:36:42 -04:00 committed by GitHub
parent 317f536dc9
commit 9fe5d6bd1b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 100 additions and 39 deletions

View file

@ -480,4 +480,53 @@ public class DrawEffectsTest extends CardTestPlayerBase {
assertLibraryCount(playerA, "Shock", 1);
}
@Test
public void testRiverSongExtended() {
skipInitShuffling();
removeAllCardsFromLibrary(playerA);
addCard(Zone.BATTLEFIELD, playerA, "Volcanic Island", 3);
addCard(Zone.LIBRARY, playerA, "Healing Salve"); // bottom
addCard(Zone.LIBRARY, playerA, "Giant Growth");
addCard(Zone.LIBRARY, playerA, "Dark Ritual");
addCard(Zone.LIBRARY, playerA, "Ornithopter");
addCard(Zone.LIBRARY, playerA, "Shock"); // top
addCard(Zone.BATTLEFIELD, playerA, "Blood Bairn"); // sac outlet
addCard(Zone.HAND, playerA, "River Song");
// You draw cards from the bottom of your library rather than the top.
checkHandCardCount("first draw", 3, PhaseStep.PRECOMBAT_MAIN, playerA, "Shock", 1);
castSpell(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "River Song");
checkHandCardCount("second draw", 5, PhaseStep.PRECOMBAT_MAIN, playerA, "Healing Salve", 1);
checkHandCardCount("third draw", 7, PhaseStep.PRECOMBAT_MAIN, playerA, "Giant Growth", 1);
activateAbility(7, PhaseStep.POSTCOMBAT_MAIN, playerA, "Sacrifice");
setChoice(playerA, "River Song");
checkHandCardCount("fourth draw", 9, PhaseStep.PRECOMBAT_MAIN, playerA, "Ornithopter", 1);
setStrictChooseMode(true);
setStopAt(9, PhaseStep.BEGIN_COMBAT);
execute();
assertHandCount(playerA, 4);
assertLibraryCount(playerA, "Dark Ritual", 1);
assertGraveyardCount(playerA, "River Song", 1);
}
@Test
public void testRiverSongLaboratoryManiac() {
removeAllCardsFromLibrary(playerA);
addCard(Zone.BATTLEFIELD, playerA, "River Song");
addCard(Zone.BATTLEFIELD, playerA, "Laboratory Maniac");
setStrictChooseMode(true);
setStopAt(3, PhaseStep.BEGIN_COMBAT);
execute();
assertWonTheGame(playerA);
}
}

View file

@ -3847,11 +3847,6 @@ public class TestPlayer implements Player {
return computerPlayer.canPlayCardsFromGraveyard();
}
@Override
public void setDrawsOnOpponentsTurn(boolean drawsOnOpponentsTurn) {
computerPlayer.setDrawsOnOpponentsTurn(drawsOnOpponentsTurn);
}
@Override
public boolean canPlotFromTopOfLibrary() {
return computerPlayer.canPlotFromTopOfLibrary();
@ -3862,6 +3857,21 @@ public class TestPlayer implements Player {
computerPlayer.setPlotFromTopOfLibrary(canPlotFromTopOfLibrary);
}
@Override
public void setDrawsFromBottom(boolean drawsFromBottom) {
computerPlayer.setDrawsFromBottom(drawsFromBottom);
}
@Override
public boolean isDrawsFromBottom() {
return computerPlayer.isDrawsFromBottom();
}
@Override
public void setDrawsOnOpponentsTurn(boolean drawsOnOpponentsTurn) {
computerPlayer.setDrawsOnOpponentsTurn(drawsOnOpponentsTurn);
}
@Override
public boolean isDrawsOnOpponentsTurn() {
return computerPlayer.isDrawsOnOpponentsTurn();