implement Lava Burst (#14077)

Co-authored-by: Steven Knipe <knipesteven@gmail.com>
This commit is contained in:
xenohedron 2026-01-09 17:04:35 -05:00 committed by GitHub
parent 9df087ba98
commit 1c13dfc3be
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 125 additions and 0 deletions

View file

@ -30,6 +30,7 @@ public class HarmsWayRedirectDamageTest extends CardTestPlayerBase {
setChoice(playerB, "Lightning Bolt");
setStopAt(1, PhaseStep.END_TURN);
setStrictChooseMode(true);
execute();
assertGraveyardCount(playerA, "Lightning Bolt", 1);
@ -57,6 +58,7 @@ public class HarmsWayRedirectDamageTest extends CardTestPlayerBase {
setChoice(playerA, "Craw Wurm");
setStopAt(2, PhaseStep.END_TURN);
setStrictChooseMode(true);
execute();
// only 4 combat damage
@ -91,6 +93,7 @@ public class HarmsWayRedirectDamageTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", "Magma Phoenix");
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
setStrictChooseMode(true);
execute();
assertLife(playerA, 19); // 3 damage from dying Phoenix -> 2 redirected to playerB so playerA gets only 1 damage
@ -122,6 +125,7 @@ public class HarmsWayRedirectDamageTest extends CardTestPlayerBase {
setChoice(playerB, "Wild Slash");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
setStrictChooseMode(true);
execute();
assertGraveyardCount(playerA, "Wild Slash", 1);
@ -132,4 +136,33 @@ public class HarmsWayRedirectDamageTest extends CardTestPlayerBase {
assertLife(playerB, 20);
}
/**
* Tests redirection doesn't happen vs. Lava Burst on creature, does on player
*/
@Test
public void testNoRedirectLavaBurst() {
addCard(Zone.HAND, playerB, "Harm's Way", 2);
addCard(Zone.BATTLEFIELD, playerB, "Plains", 2);
addCard(Zone.HAND, playerA, "Lava Burst", 2);
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 9);
addCard(Zone.BATTLEFIELD, playerB, "Aegis Turtle");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lava Burst", "Aegis Turtle");
setChoice(playerA, "X=4");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Harm's Way", playerA);
setChoice(playerB, "Lava Burst");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lava Burst", playerB);
setChoice(playerA, "X=3");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Harm's Way", playerA);
setChoice(playerB, "Lava Burst");
setStopAt(1, PhaseStep.END_TURN);
setStrictChooseMode(true);
execute();
assertLife(playerA, 18);
assertLife(playerB, 19);
assertDamageReceived(playerB, "Aegis Turtle", 4);
}
}