mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
Merge pull request #3343 from drmDev/ut/martyr-bond
UT duplicating bug in #3332 martyr bond
This commit is contained in:
commit
de6634b703
2 changed files with 105 additions and 30 deletions
|
@ -1,30 +0,0 @@
|
||||||
package org.mage.test.cards.abilities.oneshot.sacrifice;
|
|
||||||
|
|
||||||
import mage.constants.PhaseStep;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author noxx
|
|
||||||
*/
|
|
||||||
public class GethsVerdictTest extends CardTestPlayerBase {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks that pro black can still be sacrificed
|
|
||||||
*/
|
|
||||||
@Test
|
|
||||||
public void testVersusProtectionFromBlack() {
|
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Swamp");
|
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Swamp");
|
|
||||||
addCard(Zone.HAND, playerA, "Geth's Verdict");
|
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "White Knight");
|
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Geth's Verdict");
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
|
||||||
execute();
|
|
||||||
|
|
||||||
assertPermanentCount(playerB, "White Knight", 0);
|
|
||||||
assertLife(playerB, 19);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
package org.mage.test.cards.abilities.oneshot.sacrifice;
|
||||||
|
|
||||||
|
import mage.abilities.keyword.ShroudAbility;
|
||||||
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author noxx
|
||||||
|
*/
|
||||||
|
public class ProtectionSacrificeTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks that pro black can still be sacrificed (i.e. Geth's Verdict)
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void gethVerdictVersusProtectionFromBlack() {
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 2);
|
||||||
|
addCard(Zone.HAND, playerA, "Geth's Verdict"); // {B}{B} target player sacrifices a creature and loses a life
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "White Knight"); // {W}{W} pro-black
|
||||||
|
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Geth's Verdict", playerB);
|
||||||
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertPermanentCount(playerB, "White Knight", 0);
|
||||||
|
assertLife(playerB, 19);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NOTE: Test is failing due to bug in code.
|
||||||
|
* Reported bug: see issue #3332.
|
||||||
|
* Martyr's Bond fails to force sacrifice against Shroud/protection
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void martyrBondVersusProtectionFromWhite() {
|
||||||
|
|
||||||
|
/*
|
||||||
|
Martyr's Bond {4}{W}{W}
|
||||||
|
Enchantment
|
||||||
|
Whenever Martyr's Bond or another nonland permanent you control is put into a graveyard from the battlefield, each opponent sacrifices a permanent that shares a card type with it.
|
||||||
|
*/
|
||||||
|
String mBond = "Martyr's Bond";
|
||||||
|
String bGnomes = "Bottle Gnomes"; // {3} 1/3 sac: gain 3 life
|
||||||
|
String sbDragon = "Stormbreath Dragon"; // {3}{R}{R} 4/4 Flying haste pro-white
|
||||||
|
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, mBond);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, bGnomes);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, sbDragon);
|
||||||
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sacrifice"); // sac gnomes to trigger bond and force dragon to be sac'd
|
||||||
|
//setChoice(playerB, sbDragon);
|
||||||
|
//addTarget(playerB, sbDragon);
|
||||||
|
|
||||||
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertLife(playerA, 23);
|
||||||
|
assertLife(playerB, 20);
|
||||||
|
assertGraveyardCount(playerA, bGnomes, 1);
|
||||||
|
assertPermanentCount(playerA, mBond,1);
|
||||||
|
assertPermanentCount(playerB, sbDragon, 0);
|
||||||
|
assertGraveyardCount(playerB, sbDragon, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reported bug: see issue #3332
|
||||||
|
* Martyr's Bond fails to force sacrifice against Shroud/protection
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void martyrBondVersusShroud() {
|
||||||
|
|
||||||
|
/*
|
||||||
|
Martyr's Bond {4}{W}{W}
|
||||||
|
Enchantment
|
||||||
|
Whenever Martyr's Bond or another nonland permanent you control is put into a graveyard from the battlefield, each opponent sacrifices a permanent that shares a card type with it.
|
||||||
|
*/
|
||||||
|
String mBond = "Martyr's Bond";
|
||||||
|
String sTribeElder = "Sakura-Tribe Elder"; // {1}{G} 1/1 Sacrifice himself: get basic tapped into play
|
||||||
|
String sbDragon = "Stormbreath Dragon"; // {3}{R}{R} 4/4 Flying haste pro-white
|
||||||
|
String wCloak = "Whispersilk Cloak"; // {3} Equip {2} : Equipped creature can't be blocked and has shroud.
|
||||||
|
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, mBond);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, sTribeElder);
|
||||||
|
addCard(Zone.LIBRARY, playerA, "Forest", 10);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, sbDragon);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, wCloak);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Wastes", 2);
|
||||||
|
|
||||||
|
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Equip", sbDragon); // gives Dragon shroud
|
||||||
|
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Sacrifice"); // sac elder
|
||||||
|
//setChoice(playerB, sbDragon);
|
||||||
|
//addTarget(playerB, sbDragon);
|
||||||
|
|
||||||
|
setStopAt(3, PhaseStep.BEGIN_COMBAT);
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertGraveyardCount(playerA, sTribeElder, 1);
|
||||||
|
assertPermanentCount(playerA, mBond,1);
|
||||||
|
assertPermanentCount(playerB, wCloak, 1);
|
||||||
|
assertAbility(playerB, sbDragon, ShroudAbility.getInstance(), true);
|
||||||
|
assertPermanentCount(playerB, sbDragon, 0);
|
||||||
|
assertGraveyardCount(playerB, sbDragon, 1);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue