mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 04:52:07 -08:00
update Suspend Ability for optional casting (#11892)
* update Suspend Ability for optional casting per latest rules update * fix another test
This commit is contained in:
parent
71fd5b28a7
commit
cfc6808dde
3 changed files with 129 additions and 115 deletions
|
|
@ -29,6 +29,9 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Epochrasite");
|
||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lightning Bolt", "Epochrasite");
|
||||
|
||||
setChoice(playerA, true); // choose yes to cast
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(7, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
|
||||
|
|
@ -55,6 +58,9 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}, Exile a nonland card from your hand: Put four time counters on the exiled card. If it doesn't have suspend, it gains suspend");
|
||||
setChoice(playerA, "Silvercoat Lion");
|
||||
|
||||
setChoice(playerA, true); // choose yes to cast
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(11, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
|
||||
|
|
@ -87,6 +93,9 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion");
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Delay", "Silvercoat Lion");
|
||||
|
||||
setChoice(playerA, true); // choose yes to cast
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(7, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
|
|
@ -109,6 +118,7 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Suspend");
|
||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lightning Bolt", playerA);
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.END_TURN);
|
||||
execute();
|
||||
|
||||
|
|
@ -128,6 +138,7 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
checkPlayableAbility("Can't cast directly", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Ancestral", false);
|
||||
// castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ancestral Vision", playerA);
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
|
|
@ -150,6 +161,7 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
addCard(Zone.BATTLEFIELD, playerB, "Suppression Field", 1);
|
||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Suspend");
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
|
|
@ -183,8 +195,10 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
|
||||
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Knowledge Pool");
|
||||
|
||||
setChoice(playerA, true); // choose yes to cast
|
||||
addTarget(playerA, playerB);
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(3, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
|
|
@ -226,6 +240,7 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
checkExileCount("after counter", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", 1);
|
||||
|
||||
// 3 time counters removes on upkeep (3, 5, 7) and cast again
|
||||
setChoice(playerA, true); // choose yes to cast
|
||||
addTarget(playerA, playerB);
|
||||
checkLife("after suspend", 7, PhaseStep.PRECOMBAT_MAIN, playerB, 20 - 3);
|
||||
checkGraveyardCount("after suspend", 7, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", 1);
|
||||
|
|
@ -259,6 +274,7 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
checkExileCount("after counter", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Wear // Tear", 1);
|
||||
|
||||
// 3 time counters removes on upkeep (3, 5, 7) and cast again
|
||||
setChoice(playerA, true); // choose yes to cast
|
||||
addTarget(playerA, "Bident of Thassa");
|
||||
checkPermanentCount("after suspend", 7, PhaseStep.PRECOMBAT_MAIN, playerB, "Bident of Thassa", 0);
|
||||
checkPermanentCount("after suspend", 7, PhaseStep.PRECOMBAT_MAIN, playerB, "Bow of Nylea", 1);
|
||||
|
|
@ -300,6 +316,7 @@ public class SuspendTest extends CardTestPlayerBase {
|
|||
checkExileCount("after counter", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Wear // Tear", 1);
|
||||
|
||||
// 3 time counters removes on upkeep (3, 5, 7) and cast again (fused cards can't be played from exile zone, so select split spell only)
|
||||
setChoice(playerA, true); // choose yes to cast
|
||||
setChoice(playerA, "Cast Wear");
|
||||
addTarget(playerA, "Bident of Thassa");
|
||||
checkPermanentCount("after suspend", 7, PhaseStep.PRECOMBAT_MAIN, playerB, "Bident of Thassa", 0);
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
package org.mage.test.cards.single.ncc;
|
||||
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.keyword.SuspendAbility;
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.TimingRule;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import org.junit.Test;
|
||||
|
|
@ -29,6 +26,7 @@ public class SinisterConciergeTest extends CardTestPlayerBase {
|
|||
*/
|
||||
@Test
|
||||
public void testWorking() {
|
||||
// TODO: remove multiple calls to execute()
|
||||
addCard(Zone.HAND, playerA, lightningBolt);
|
||||
addCard(Zone.BATTLEFIELD, playerA, sinisterConcierge);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain");
|
||||
|
|
@ -59,12 +57,14 @@ public class SinisterConciergeTest extends CardTestPlayerBase {
|
|||
assertExileCount(playerB, bondedConstruct, 1);
|
||||
assertCounterOnExiledCardCount(bondedConstruct, CounterType.TIME, 1);
|
||||
|
||||
setChoice(playerB, true); // yes to cast
|
||||
setStopAt(6, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
assertExileCount(playerA, sinisterConcierge, 1);
|
||||
assertExileCount(playerB, bondedConstruct, 0);
|
||||
assertPermanentCount(playerB, bondedConstruct, 1);
|
||||
|
||||
setChoice(playerA, true); // yes to cast
|
||||
setStopAt(7, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
assertExileCount(playerA, sinisterConcierge, 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue