Merge pull request #8059 from magefree/testing/add-boolean-choice

Added boolean option for setChoice
This commit is contained in:
Evan Kranzler 2021-07-27 09:16:05 -04:00 committed by GitHub
commit 9233b5c7d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
223 changed files with 806 additions and 802 deletions

View file

@ -21,7 +21,7 @@ public class ChooseTargetTest extends CardTestPlayerBase {
setChoice(playerA, "Silvercoat Lion");
setChoice(playerB, "Silvercoat Lion");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStrictChooseMode(true);
setStopAt(2, PhaseStep.BEGIN_COMBAT);
@ -44,7 +44,7 @@ public class ChooseTargetTest extends CardTestPlayerBase {
// AI must choose itself (strict mode must be disabled)
//setChoice(playerA, "Silvercoat Lion");
//setChoice(playerB, "Silvercoat Lion");
//setChoice(playerA, "Yes");
//setChoice(playerA, true);
//setStrictChooseMode(true);
setStopAt(2, PhaseStep.BEGIN_COMBAT);

View file

@ -26,7 +26,7 @@ public class CopyAITest extends CardTestPlayerBaseWithAIHelps {
// clone
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Clone");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Spectral Bears");
setStopAt(1, PhaseStep.END_TURN);

View file

@ -21,7 +21,7 @@ public class TargetControllerChangeTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Evangelize"); // do not call direct target setup
addTarget(playerA, playerB); // choose target opponent
setChoice(playerA, "No"); // no buyback
setChoice(playerA, false); // no buyback
//
addTarget(playerB, "Balduvian Bears"); // give small bear to A
@ -45,7 +45,7 @@ public class TargetControllerChangeTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Evangelize"); // do not call direct target setup
//addTarget(playerA, playerB); // choose target opponent - AI must choose itself
//setChoice(playerA, "No"); // no buyback - AI must choose itself
//setChoice(playerA, false); // no buyback - AI must choose itself
//
//addTarget(playerB, "Balduvian Bears"); // give small bear to A - AI must choose itself

View file

@ -24,7 +24,7 @@ public class ChaosWandTest extends CardTestPlayerBase {
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{4}, {T}: ");
addTarget(playerA, playerB);
setChoice(playerA, "Yes"); // cast for free
setChoice(playerA, true); // cast for free
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -33,14 +33,14 @@ public class LightningStormTest extends CardTestPlayerBase {
// B discard and re-target
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Discard");
setChoice(playerB, "Yes"); // change target
setChoice(playerB, true); // change target
addTarget(playerB, playerA); // new target
setChoice(playerB, "Mountain"); // discard cost
// A discard and re-target
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Discard");
setChoice(playerA, "Mountain");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, playerB);
setStrictChooseMode(true);

View file

@ -31,12 +31,12 @@ public class CurseOfShallowGravesTest extends CardTestPlayerBase {
// turn 1 - attack without token
attack(1, playerA, "Balduvian Bears", playerB);
setChoice(playerA, "No"); // don't create token
setChoice(playerA, false); // don't create token
checkPermanentCount("zombie 0", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie", 0);
// turn 3 - attack with token
attack(3, playerA, "Balduvian Bears", playerB);
setChoice(playerA, "Yes"); // create token
setChoice(playerA, true); // create token
checkPermanentCount("zombie 1", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie", 1);
setStopAt(3, PhaseStep.END_TURN);
@ -60,12 +60,12 @@ public class CurseOfShallowGravesTest extends CardTestPlayerBase {
// turn 1 - attack player without token
attack(1, playerA, "Balduvian Bears", playerB);
setChoice(playerA, "No"); // don't create token
setChoice(playerA, false); // don't create token
checkPermanentCount("zombie 0", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie", 0);
// turn 3 - attack planeswalker (no choices at all)
attack(3, playerA, "Balduvian Bears", "Chandra Ablaze");
//setChoice(playerA, "Yes");
//setChoice(playerA, true);
checkPermanentCount("zombie 0", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zombie", 0);
setStopAt(3, PhaseStep.END_TURN);

View file

@ -116,7 +116,7 @@ public class CursesTest extends CardTestPlayerBase {
castSpell(4, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
castSpell(4, PhaseStep.PRECOMBAT_MAIN, playerB, "Copy Enchantment");
setChoice(playerB, "Yes");
setChoice(playerB, true);
setChoice(playerB, "Curse of Exhaustion");
setChoice(playerB, "targetPlayer=PlayerA");
castSpell(4, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
@ -384,7 +384,7 @@ public class CursesTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, memnite);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, cReality, playerB);
setChoice(playerB, "No");
setChoice(playerB, false);
setStopAt(2, PhaseStep.PRECOMBAT_MAIN);
execute();

View file

@ -24,7 +24,7 @@ public class AetherFigmentTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Aether Figment");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aether Figment");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -114,9 +114,9 @@ public class ValakutTheMoltenPinnacleTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Scapeshift");
addTarget(playerA, "Forest^Forest^Forest^Forest^Forest^Forest^Forest");
setChoice(playerA, "No"); // Stomping Ground can be tapped
setChoice(playerA, "No"); // Stomping Ground can be tapped
setChoice(playerA, "No"); // Stomping Ground can be tapped
setChoice(playerA, false); // Stomping Ground can be tapped
setChoice(playerA, false); // Stomping Ground can be tapped
setChoice(playerA, false); // Stomping Ground can be tapped
setStopAt(3, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -25,7 +25,7 @@ public class AmplifyTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 7);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Kilnmouth Dragon");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Kilnmouth Dragon");
setStrictChooseMode(true);
@ -49,7 +49,7 @@ public class AmplifyTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 7);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Kilnmouth Dragon");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Kilnmouth Dragon^Phantasmal Dragon");
setStrictChooseMode(true);
@ -76,13 +76,13 @@ public class AmplifyTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Island", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Kilnmouth Dragon");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Kilnmouth Dragon");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Clone");
setChoice(playerB, "Yes"); // use clone
setChoice(playerB, true); // use clone
setChoice(playerB, "Kilnmouth Dragon"); // what clone
setChoice(playerB, "Yes"); // use amplify
setChoice(playerB, true); // use amplify
addTarget(playerB, "Phantasmal Dragon"); // reveal
setStrictChooseMode(true);
@ -115,9 +115,9 @@ public class AmplifyTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 5);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Through the Breach");
setChoice(playerA, "Yes"); // Put a creature into play with Through the Breach?
setChoice(playerA, true); // Put a creature into play with Through the Breach?
setChoice(playerA, "Kilnmouth Dragon");
//setChoice(playerA, "Yes"); // no reveal request cause no cards to show
//setChoice(playerA, true); // no reveal request cause no cards to show
//addTarget(playerA, "Kilnmouth Dragon");
setStrictChooseMode(true);

View file

@ -70,7 +70,7 @@ public class AnnihilatorTest extends CardTestPlayerBase {
setChoice(playerA, "Academy Rector"); // Annihilator
setChoice(playerA, "Plains"); // Annihilator
castSpell(2, PhaseStep.DECLARE_ATTACKERS, playerA, "Cauldron Haze", "Academy Rector", "Annihilator");
setChoice(playerA, "No"); // Academy Rector No Exile
setChoice(playerA, false); // Academy Rector No Exile
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);
execute();

View file

@ -357,7 +357,7 @@ public class BestowTest extends CardTestPlayerBase {
// attacks by Alesha and return card on trigger
attack(2, playerB, "Alesha, Who Smiles at Death");
setChoice(playerB, "Yes"); // use trigger
setChoice(playerB, true); // use trigger
addTarget(playerB, "Pillarfield Ox"); // target card to return
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "Chandra's Outrage", "Alesha, Who Smiles at Death");

View file

@ -23,7 +23,7 @@ public class BuybackTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Elvish Fury", 1); // Instant {G}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Elvish Fury", "Silvercoat Lion");
setChoice(playerA, "Yes"); // use buyback
setChoice(playerA, true); // use buyback
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -44,7 +44,7 @@ public class BuybackTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Elvish Fury", 1); // Instant {G}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Elvish Fury", "Silvercoat Lion");
//setChoice(playerA, "Yes"); // use buyback - AI must choose
//setChoice(playerA, true); // use buyback - AI must choose
//setStrictChooseMode(true); - AI must choose
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -187,8 +187,8 @@ public class CascadeTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Enlisted Wurm"); // Creature {4}{G}{W} 5/5
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Enlisted Wurm");
setChoice(playerA, "Yes"); // Use cascade on Promise of Power
setChoice(playerA, "No"); // Pay no Entwine
setChoice(playerA, true); // Use cascade on Promise of Power
setChoice(playerA, false); // Pay no Entwine
setModeChoice(playerA, "1");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -224,7 +224,7 @@ public class CascadeTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Ardent Plea"); // Enchantment {1}{W}{U}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ardent Plea");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, playerB);
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -39,7 +39,7 @@ public class CipherTest extends CardTestPlayerBase {
// cast spell, create copy token, exile spell card and encode it to that token of Roil Elemental
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Stolen Identity", "Roil Elemental");
setChoice(playerA, "Yes"); // Cipher activate
setChoice(playerA, true); // Cipher activate
addTarget(playerA, "Roil Elemental"); // Cipher target for encode
checkPermanentCount("playerA must have Roil Elemental", 2, PhaseStep.PRECOMBAT_MAIN, playerA, "Roil Elemental", 1);
checkPermanentCount("playerB must have Roil Elemental", 2, PhaseStep.PRECOMBAT_MAIN, playerB, "Roil Elemental", 1);
@ -47,14 +47,14 @@ public class CipherTest extends CardTestPlayerBase {
// Roil Elemental must activated on new land
playLand(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Mountain");
setChoice(playerA, "Yes"); // activate landfall to control opponent creature
setChoice(playerA, true); // activate landfall to control opponent creature
addTarget(playerA, "Silvercoat Lion"); // Triggered ability of copied Roil Elemental to gain control
checkPermanentCount("must gain control of Lion", 3, PhaseStep.POSTCOMBAT_MAIN, playerA, "Silvercoat Lion", 1);
checkPermanentCount("must lose control of Lion", 3, PhaseStep.POSTCOMBAT_MAIN, playerB, "Silvercoat Lion", 0);
// on attack must activated ability to free cast
attack(5, playerA, "Roil Elemental");
setChoice(playerA, "Yes"); // activate free cast of encoded card
setChoice(playerA, true); // activate free cast of encoded card
checkPermanentCount("playerA must have 2 Roil Elemental", 5, PhaseStep.POSTCOMBAT_MAIN, playerA, "Roil Elemental", 2);
checkPermanentCount("playerB must have Roil Elemental", 5, PhaseStep.POSTCOMBAT_MAIN, playerB, "Roil Elemental", 1);

View file

@ -43,7 +43,7 @@ public class ConspireTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Burn Trail");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Burn Trail", playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -63,7 +63,7 @@ public class ConspireTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Burn Trail");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Burn Trail", playerB);
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -89,10 +89,10 @@ public class ConspireTest extends CardTestPlayerBase {
// cast with conspire
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
setChoice(playerA, "Yes"); // use conspire
setChoice(playerA, true); // use conspire
setChoice(playerA, "Goblin Warrior");
setChoice(playerA, "Goblin Warrior");
setChoice(playerA, "No"); // keep targets
setChoice(playerA, false); // keep targets
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -118,8 +118,8 @@ public class ConspireTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Wort, the Raidmother"); // {4}{R/G}{R/G}
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Burn Trail", playerB);
setChoice(playerA, "Yes"); // use Conspire from Burn Trail itself
setChoice(playerA, "Yes"); // use Conspire gained from Wort, the Raidmother
setChoice(playerA, true); // use Conspire from Burn Trail itself
setChoice(playerA, true); // use Conspire gained from Wort, the Raidmother
setStopAt(1, PhaseStep.END_TURN);
execute();
@ -141,9 +141,9 @@ public class ConspireTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Burn Trail");
addTarget(playerA, playerB);
setChoice(playerA, "Yes"); // use conspire
setChoice(playerA, true); // use conspire
setChoice(playerA, "Goblin Assailant^Goblin Assailant");
setChoice(playerA, "No"); // don't change target 1
setChoice(playerA, false); // don't change target 1
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -166,9 +166,9 @@ public class ConspireTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Burn Trail");
addTarget(playerA, playerB);
//setChoice(playerA, "Yes"); // use conspire - AI must choose
//setChoice(playerA, true); // use conspire - AI must choose
//setChoice(playerA, "Goblin Assailant^Goblin Assailant"); - AI must choose
//setChoice(playerA, "No"); // don't change target 1 - AI must choose
//setChoice(playerA, false); // don't change target 1 - AI must choose
//setStrictChooseMode(true); - AI must choose
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -191,9 +191,9 @@ public class ConspireTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Burn Trail");
addTarget(playerA, playerB);
//setChoice(playerA, "Yes"); // use conspire - AI must choose
//setChoice(playerA, true); // use conspire - AI must choose
//setChoice(playerA, "Goblin Assailant^Goblin Assailant"); - AI must choose
//setChoice(playerA, "No"); // don't change target 1 - AI must choose
//setChoice(playerA, false); // don't change target 1 - AI must choose
//setStrictChooseMode(true); - AI must choose
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -26,15 +26,15 @@ public class CumulativeUpkeepTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Phobian Phantasm");
// Phobian Phantasm - CumulativeUpkeepAbility: Cumulative upkeep {B}
setChoice(playerA, "Yes"); // Pay {B}?
setChoice(playerA, true); // Pay {B}?
attack(3, playerA, "Phobian Phantasm");
checkPermanentCounters("Age counters", 3, PhaseStep.PRECOMBAT_MAIN, playerA, "Phobian Phantasm", CounterType.AGE, 1);
setChoice(playerA, "Yes"); // Pay {B}{B}?
setChoice(playerA, true); // Pay {B}{B}?
attack(5, playerA, "Phobian Phantasm");
checkPermanentCounters("Age counters", 5, PhaseStep.PRECOMBAT_MAIN, playerA, "Phobian Phantasm", CounterType.AGE, 2);
setChoice(playerA, "No"); // Pay {B}{B}{B}?
setChoice(playerA, false); // Pay {B}{B}{B}?
setStopAt(7, PhaseStep.BEGIN_COMBAT);
execute();
@ -79,7 +79,7 @@ public class CumulativeUpkeepTest extends CardTestPlayerBase {
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Kor Celebrant");
// Illusions of Grandeur - CumulativeUpkeepAbility: Cumulative upkeep {2}
setChoice(playerA, "Yes"); // Pay {2}?
setChoice(playerA, true); // Pay {2}?
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Puca's Mischief");
@ -87,8 +87,8 @@ public class CumulativeUpkeepTest extends CardTestPlayerBase {
addTarget(playerA, "Illusions of Grandeur"); // Own target permanent of Puca's Mischief
addTarget(playerA, "Kor Celebrant"); // Opponent's target permanent of Puca's Mischief
setChoice(playerA, "Yes"); // At the beginning of your upkeep, you may exchange control of target nonland permanent you control and target nonland permanent an opponent controls with an equal or lesser converted mana cost.
setChoice(playerA, "No"); // Pay {2}{2}?
setChoice(playerA, true); // At the beginning of your upkeep, you may exchange control of target nonland permanent you control and target nonland permanent an opponent controls with an equal or lesser converted mana cost.
setChoice(playerA, false); // Pay {2}{2}?
checkPermanentCounters("Age counters", 5, PhaseStep.PRECOMBAT_MAIN, playerB, "Illusions of Grandeur", CounterType.AGE, 2);

View file

@ -130,7 +130,7 @@ public class CyclingTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "New Perspectives");
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Cycling");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.END_TURN);
execute();

View file

@ -39,7 +39,7 @@ public class DashTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Screamreach Brawler");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Screamreach Brawler");
setChoice(playerA, "Yes");
setChoice(playerA, true);
attack(1, playerA, "Screamreach Brawler");
setStopAt(2, PhaseStep.UNTAP);
@ -57,7 +57,7 @@ public class DashTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Screamreach Brawler");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Screamreach Brawler");
setChoice(playerA, "No");
setChoice(playerA, false);
attack(1, playerA, "Screamreach Brawler");
setStopAt(2, PhaseStep.UNTAP);
@ -81,7 +81,7 @@ public class DashTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Geist of the Moors", 1); // 3/1
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Screamreach Brawler");
setChoice(playerA, "Yes");
setChoice(playerA, true);
attack(1, playerA, "Screamreach Brawler");
block(1, playerB, "Geist of the Moors", "Screamreach Brawler");
@ -105,7 +105,7 @@ public class DashTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Screamreach Brawler"); // 2/3
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Screamreach Brawler");
setChoice(playerA, "Yes");
setChoice(playerA, true);
attack(1, playerA, "Screamreach Brawler");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Screamreach Brawler");

View file

@ -67,7 +67,7 @@ public class DredgeTest extends CardTestPlayerBase {
addCard(Zone.LIBRARY, playerB, "Silvercoat Lion", 5);
skipInitShuffling();
setChoice(playerB, "Yes"); // Use Dredge
setChoice(playerB, true); // Use Dredge
setStopAt(2, PhaseStep.PRECOMBAT_MAIN);
execute();

View file

@ -47,7 +47,7 @@ public class EchoTest extends CardTestPlayerBase {
activateManaAbility(3, PhaseStep.UPKEEP, playerA, "{T}: Add {W}");
castSpell(3, PhaseStep.UPKEEP, playerA, "Restoration Angel");
addTarget(playerA, "Avalanche Riders");
setChoice(playerA, "Yes"); // raider do restore
setChoice(playerA, true); // raider do restore
// Avalanche Riders triggered again
addTarget(playerA, "Forest");

View file

@ -23,7 +23,7 @@ public class EntwineTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Barbed Lightning");
setChoice(playerA, "No"); // not use Entwine
setChoice(playerA, false); // not use Entwine
setModeChoice(playerA, "1"); // target creature
addTarget(playerA, "Balduvian Bears");
@ -49,7 +49,7 @@ public class EntwineTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Barbed Lightning");
setChoice(playerA, "Yes"); // use Entwine
setChoice(playerA, true); // use Entwine
addTarget(playerA, "Balduvian Bears");
addTarget(playerA, playerA);
@ -77,7 +77,7 @@ public class EntwineTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Barbed Lightning");
setChoice(playerA, "Yes"); // use Entwine
setChoice(playerA, true); // use Entwine
addTarget(playerA, "Balduvian Bears");
addTarget(playerA, playerA);
@ -105,7 +105,7 @@ public class EntwineTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Barbed Lightning");
setChoice(playerA, "Yes"); // use Entwine
setChoice(playerA, true); // use Entwine
addTarget(playerA, "Balduvian Bears");
addTarget(playerA, playerA);
@ -134,8 +134,8 @@ public class EntwineTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Barbed Lightning");
setChoice(playerA, "Yes"); // cast for free
setChoice(playerA, "Yes"); // use Entwine
setChoice(playerA, true); // cast for free
setChoice(playerA, true); // use Entwine
addTarget(playerA, "Balduvian Bears");
addTarget(playerA, playerA);
@ -164,7 +164,7 @@ public class EntwineTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Tooth and Nail"); // Sorcery {5}{G}{G}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tooth and Nail");
setChoice(playerA, "Yes"); // Message: Pay Entwine {2} ?
setChoice(playerA, true); // Message: Pay Entwine {2} ?
addTarget(playerA, "Silvercoat Lion^Pillarfield Ox");
setChoice(playerA, "Silvercoat Lion^Pillarfield Ox");

View file

@ -40,7 +40,7 @@ public class EvokeTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Shriekmaw");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Silvercoat Lion");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Exhume");
setStopAt(1, PhaseStep.END_TURN);

View file

@ -23,7 +23,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, gWalker);
attack(1, playerA, gWalker);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -40,7 +40,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, brawler);
attack(1, playerA, brawler);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -56,7 +56,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, warrior);
attack(1, playerA, warrior);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -72,7 +72,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, spearmaster);
attack(1, playerA, spearmaster);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -87,7 +87,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Grizzly Bears");
addCard(Zone.BATTLEFIELD, playerB, "Grizzly Bears");
attack(1, playerA, elite);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
assertPowerToughness(playerA, "Grizzly Bears", 3, 3);
@ -101,7 +101,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, minotaur);
attack(1, playerA, minotaur);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -115,7 +115,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, entangler);
attack(1, playerA, entangler);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -129,7 +129,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Hyena Pack");
addCard(Zone.BATTLEFIELD, playerB, "Dune Beetle");
attack(1, playerA, twins);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -148,7 +148,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, gWalker);
addCard(Zone.BATTLEFIELD, playerA, twins);
attack(1, playerA, gWalker);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -170,7 +170,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, gbInitiate);
attack(1, playerA, gbInitiate);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
execute();
@ -192,7 +192,7 @@ public class ExertTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, gbInitiate);
attack(1, playerA, gbInitiate);
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
execute();
@ -225,7 +225,7 @@ public class ExertTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, gbInitiate);
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, aTreason, gbInitiate);
attack(2, playerB, gbInitiate);
setChoice(playerB, "Yes");
setChoice(playerB, true);
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
execute();
@ -251,10 +251,10 @@ public class ExertTest extends CardTestPlayerBase {
attack(1, playerA, cCelebrant);
attack(1, playerA, memnite);
setChoice(playerA, "Yes"); // exert for extra turn
setChoice(playerA, true); // exert for extra turn
attack(1, playerA, cCelebrant);
attack(1, playerA, memnite);
setChoice(playerA, "Yes"); // try to exert again
setChoice(playerA, true); // try to exert again
attack(1, playerA, cCelebrant); // should not be able to enter this 3rd combat phase
attack(1, playerA, memnite);
@ -292,10 +292,10 @@ public class ExertTest extends CardTestPlayerBase {
attack(1, playerA, cCelebrant);
attack(1, playerA, memnite);
setChoice(playerA, "Yes"); // exert for extra turn
setChoice(playerA, true); // exert for extra turn
attack(1, playerA, cCelebrant);
attack(1, playerA, memnite);
setChoice(playerA, "Yes"); // try to exert again
setChoice(playerA, true); // try to exert again
attack(1, playerA, cCelebrant); // should not be able to enter this 3rd combat phase
attack(1, playerA, memnite);
@ -333,9 +333,9 @@ public class ExertTest extends CardTestPlayerBase {
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+1:"); // grant +2/+2 vig and haste to celebrant
addTarget(playerA, cCelebrant);
attack(1, playerA, cCelebrant);
setChoice(playerA, "Yes"); // exert for extra turn
setChoice(playerA, true); // exert for extra turn
attack(1, playerA, cCelebrant);
setChoice(playerA, "Yes"); // try to exert again
setChoice(playerA, true); // try to exert again
attack(1, playerA, cCelebrant); // should not be able to enter this 3rd combat phase
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);

View file

@ -37,7 +37,7 @@ public class ExploitTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Thundering Giant"); // 4/3
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silumgar Butcher");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Silvercoat Lion"); // sacrifice to Exploit
addTarget(playerA, "Thundering Giant"); // Target for the -3/-3
@ -69,7 +69,7 @@ public class ExploitTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silumgar Butcher");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", "Silumgar Butcher");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Silvercoat Lion"); // sacrifice to Exploit
addTarget(playerA, "Thundering Giant"); // Target for the -3/-3
@ -97,7 +97,7 @@ public class ExploitTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Qarsi Sadist");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Qarsi Sadist");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Qarsi Sadist"); // sacrifice to Exploit
addTarget(playerA, playerB); // Target for lose life

View file

@ -375,7 +375,7 @@ public class FlashbackTest extends CardTestPlayerBase {
setChoice(playerA, "Whispers of the Muse");
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Flashback"); // Flashback Whispers of the Muse
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.END_TURN);
execute();

View file

@ -70,7 +70,7 @@ public class GraftTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cytoplast Root-Kin");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Sporeback Troll");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.END_TURN);
execute();
@ -91,7 +91,7 @@ public class GraftTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cytoplast Root-Kin");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Sporeback Troll");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.END_TURN);
execute();

View file

@ -79,7 +79,7 @@ public class HideawayTest extends CardTestPlayerBase {
setChoice(playerA, "Ulamog, the Ceaseless Hunger");
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{G},");
setChoice(playerA, "Yes"); // play Ghost Quarter
setChoice(playerA, true); // play Ghost Quarter
addTarget(playerA, "Dross Crocodile^Dross Crocodile");
@ -126,7 +126,7 @@ public class HideawayTest extends CardTestPlayerBase {
attack(3, playerA, "Auriok Champion");
activateAbility(3, PhaseStep.DECLARE_BLOCKERS, playerA, "{W},");
setChoice(playerA, "Yes"); // play Ghost Quarter
setChoice(playerA, true); // play Ghost Quarter
setStopAt(3, PhaseStep.END_COMBAT);
@ -180,7 +180,7 @@ public class HideawayTest extends CardTestPlayerBase {
attack(3, playerA, "Auriok Champion");
activateAbility(3, PhaseStep.DECLARE_BLOCKERS, playerA, "{W},");
setChoice(playerA, "Yes"); // play Ghost Quarter
setChoice(playerA, true); // play Ghost Quarter
setStopAt(3, PhaseStep.END_COMBAT);
@ -214,7 +214,7 @@ public class HideawayTest extends CardTestPlayerBase {
attack(3, playerA, "Auriok Champion");
activateAbility(3, PhaseStep.DECLARE_BLOCKERS, playerA, "{W},");
setChoice(playerA, "Yes"); // play Ghost Quarter
setChoice(playerA, true); // play Ghost Quarter
setStopAt(3, PhaseStep.END_COMBAT);
@ -254,7 +254,7 @@ public class HideawayTest extends CardTestPlayerBase {
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, sIsle);
setChoice(playerA, ulamog);
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{U}");
setChoice(playerA, "Yes"); // play Ulamog's Crusher
setChoice(playerA, true); // play Ulamog's Crusher
setStopAt(3, PhaseStep.BEGIN_COMBAT);
@ -299,7 +299,7 @@ public class HideawayTest extends CardTestPlayerBase {
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, sIsle);
setChoice(playerA, ulamog);
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{U}");
setChoice(playerA, "Yes"); // play Ulamog's Crusher
setChoice(playerA, true); // play Ulamog's Crusher
setStopAt(3, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -55,7 +55,7 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Aether Figment");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aether Figment");
setChoice(playerA, "Yes"); // with Kicker
setChoice(playerA, true); // with Kicker
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -75,7 +75,7 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Aether Figment");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aether Figment");
//setChoice(playerA, "Yes"); // with Kicker - AI must choose
//setChoice(playerA, true); // with Kicker - AI must choose
//setStrictChooseMode(true); - AI must choose
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -93,7 +93,7 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Aether Figment");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aether Figment");
setChoice(playerA, "No");
setChoice(playerA, false);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -113,7 +113,7 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Aether Figment");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aether Figment");
//setChoice(playerA, "No"); - AI must choose
//setChoice(playerA, false); - AI must choose
//setStrictChooseMode(true); - AI must choose
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -137,8 +137,8 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Apex Hawks");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Apex Hawks");
setChoice(playerA, "Yes");
setChoice(playerA, "No");
setChoice(playerA, true);
setChoice(playerA, false);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -157,9 +157,9 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Apex Hawks");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Apex Hawks");
setChoice(playerA, "Yes");
setChoice(playerA, "Yes");
setChoice(playerA, "No");
setChoice(playerA, true);
setChoice(playerA, true);
setChoice(playerA, false);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -177,7 +177,7 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Apex Hawks");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Apex Hawks");
setChoice(playerA, "No");
setChoice(playerA, false);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -200,8 +200,8 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Sunscape Battlemage", 1); // 2/2 {2}{W}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sunscape Battlemage");
setChoice(playerA, "No"); // not use kicker {1}{G}
setChoice(playerA, "Yes"); // use kicker {2}{U}
setChoice(playerA, false); // not use kicker {1}{G}
setChoice(playerA, true); // use kicker {2}{U}
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -226,8 +226,8 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Birds of Paradise", 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sunscape Battlemage");
setChoice(playerA, "Yes"); // use kicker {1}{G}
setChoice(playerA, "Yes"); // use kicker {2}{U}
setChoice(playerA, true); // use kicker {1}{G}
setChoice(playerA, true); // use kicker {2}{U}
setChoice(playerA, "When "); // two triggers from two kicker options
addTarget(playerA, "Birds of Paradise");
@ -259,8 +259,8 @@ public class KickerTest extends CardTestPlayerBase {
// cast with kicker
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sunscape Battlemage");
setChoice(playerA, "Yes"); // use kicker {1}{G} - destroy target creature with flying
setChoice(playerA, "Yes"); // use kicker {2}{U} - draw two cards
setChoice(playerA, true); // use kicker {1}{G} - destroy target creature with flying
setChoice(playerA, true); // use kicker {2}{U} - draw two cards
// spell must be countered, so no chooses
//setChoice(playerA, "When "); // two triggers rised: When {this} enters the battlefield, if it was kicked...
//addTarget(playerA, "Birds of Paradise"); // target for {1}{G} trigger
@ -297,10 +297,10 @@ public class KickerTest extends CardTestPlayerBase {
// cast kicked spell
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Thornscape Battlemage");
setChoice(playerA, "Yes"); // use kicker {R} - 2 damage to any target
setChoice(playerA, "No"); // not use kicker {W} - destroy target
setChoice(playerA, true); // use kicker {R} - 2 damage to any target
setChoice(playerA, false); // not use kicker {W} - destroy target
addTarget(playerA, playerB); // target for 2 damage
setChoice(playerA, "Yes"); // put counter on hallar
setChoice(playerA, true); // put counter on hallar
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -332,7 +332,7 @@ public class KickerTest extends CardTestPlayerBase {
// first cast with kicker
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Gatekeeper of Malakir");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
addTarget(playerA, playerB); // trigger's target
addTarget(playerB, "Birds of Paradise"); // sacrifice
@ -341,7 +341,7 @@ public class KickerTest extends CardTestPlayerBase {
// second cast without kicker
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Gatekeeper of Malakir");
setChoice(playerA, "No"); // no kicker
setChoice(playerA, false); // no kicker
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -377,14 +377,14 @@ public class KickerTest extends CardTestPlayerBase {
// cast spell with kicker and copy it (kicker status must be saved)
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {B}", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Agonizing Demise", "@bear1");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
checkStackSize("after cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 2); // spell + trigger
checkStackObject("after cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Ago", 1);
checkStackObject("after cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Whenever you cast", 1);
//
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, true);
setChoice(playerA, "Yes"); // copy spell
setChoice(playerA, "Yes"); // new target
setChoice(playerA, true); // copy spell
setChoice(playerA, true); // new target
addTarget(playerA, "@bear2");
checkStackSize("after copy trigger", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 2); // spell + copy
checkStackObject("after copy trigger", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Ago", 2);
@ -422,14 +422,14 @@ public class KickerTest extends CardTestPlayerBase {
// cast spell with kicker and copy it (kicker status must be saved)
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {B}", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Agonizing Demise", "@bear1");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
checkStackSize("after cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 2); // spell + trigger
checkStackObject("after cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Ago", 1);
checkStackObject("after cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Whenever you cast", 1);
//
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, true);
setChoice(playerA, "Yes"); // copy spell
setChoice(playerA, "Yes"); // new target
setChoice(playerA, true); // copy spell
setChoice(playerA, true); // new target
addTarget(playerA, "@bear2");
checkStackSize("after copy trigger", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 2); // spell + copy
checkStackObject("after copy trigger", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Ago", 2);
@ -443,7 +443,7 @@ public class KickerTest extends CardTestPlayerBase {
checkStackObject("before counter", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Absorb", 1);
//
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, true); // trigger
setChoice(playerA, "No"); // do not copy counter spell
setChoice(playerA, false); // do not copy counter spell
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, true); // counter
checkStackSize("after counter", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 1); // copy
checkStackObject("after counter", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Ago", 1);
@ -481,7 +481,7 @@ public class KickerTest extends CardTestPlayerBase {
// cast spell with kicker
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {U}", 3);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Academy Drake");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
// copy spell
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {U}", 4);
@ -536,10 +536,10 @@ public class KickerTest extends CardTestPlayerBase {
// cast 2x kicked spell for 4x damage
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Deathforge Shaman");
setChoice(playerA, "Yes"); // 1x kick
setChoice(playerA, "Yes"); // 2x kick
setChoice(playerA, "No"); // stop multikicker
setChoice(playerA, "Yes"); // remove counters and activate verazol's copy
setChoice(playerA, true); // 1x kick
setChoice(playerA, true); // 2x kick
setChoice(playerA, false); // stop multikicker
setChoice(playerA, true); // remove counters and activate verazol's copy
addTarget(playerA, playerA); // on resolve: target for copied spell
addTarget(playerA, playerB); // on resolve: target for original spell
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
@ -571,7 +571,7 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerB, "Lightning Bolt");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Orim's Chant", playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
attack(1, playerA, "Raging Goblin");
@ -607,7 +607,7 @@ public class KickerTest extends CardTestPlayerBase {
// When Bloodhusk Ritualist enters the battlefield, target opponent discards a card for each time it was kicked.
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Bloodhusk Ritualist");
setChoice(playerA, "Yes", 2); // 2 x Multikicker
setChoice(playerA, "No"); // stop the kicking
setChoice(playerA, false); // stop the kicking
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", "Bloodhusk Ritualist");
addTarget(playerA, playerB); // target for kicker's trigger (discard cards)
@ -640,7 +640,7 @@ public class KickerTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Centaur Courser", 1); // 3/3
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Marsh Casualties", playerB);
setChoice(playerA, "Yes"); // Pay Kicker
setChoice(playerA, true); // Pay Kicker
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -22,7 +22,7 @@ public class KickerWithAnyNumberModesAbilityTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Inscription of Abundance");
setChoice(playerA, "No"); // no kicker
setChoice(playerA, false); // no kicker
setModeChoice(playerA, "1");
addTarget(playerA, "Balduvian Bears");
@ -48,7 +48,7 @@ public class KickerWithAnyNumberModesAbilityTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Inscription of Abundance");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
setModeChoice(playerA, "2");
setModeChoice(playerA, "1");
addTarget(playerA, playerA); // gain x life
@ -78,7 +78,7 @@ public class KickerWithAnyNumberModesAbilityTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Inscription of Abundance");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
setModeChoice(playerA, "2");
setModeChoice(playerA, "1");
addTarget(playerA, playerA); // gain x life
@ -108,7 +108,7 @@ public class KickerWithAnyNumberModesAbilityTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Inscription of Abundance");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
setModeChoice(playerA, "2");
setModeChoice(playerA, "1");
addTarget(playerA, playerA); // gain x life
@ -139,8 +139,8 @@ public class KickerWithAnyNumberModesAbilityTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Balduvian Bears", 1); // 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Inscription of Abundance");
setChoice(playerA, "Yes"); // use free cast
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use free cast
setChoice(playerA, true); // use kicker
setModeChoice(playerA, "2");
setModeChoice(playerA, "1");
addTarget(playerA, playerA); // gain x life

View file

@ -24,7 +24,7 @@ public class KickerWithFlashbackTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Burst Lightning");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Burst Lightning", playerB);
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
checkLife("after", 1, PhaseStep.END_TURN, playerB, 20 - 4);
@ -77,7 +77,7 @@ public class KickerWithFlashbackTest extends CardTestPlayerBase {
// cast burst by flashback
// showAvailableAbilities("after", 1, PhaseStep.BEGIN_COMBAT, playerA);
activateAbility(1, PhaseStep.BEGIN_COMBAT, playerA, "Flashback");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
addTarget(playerA, playerB);
checkLife("after", 1, PhaseStep.END_TURN, playerB, 20 - 4);

View file

@ -44,7 +44,7 @@ public class MadnessTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Raven's Crime", playerA);
setChoice(playerA, "Yes"); // use madness triggered ability
setChoice(playerA, true); // use madness triggered ability
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -65,7 +65,7 @@ public class MadnessTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Raven's Crime");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Raven's Crime", playerA);
setChoice(playerA, "No");
setChoice(playerA, false);
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -94,8 +94,8 @@ public class MadnessTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerB, "Haunting Hymn");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Haunting Hymn", playerA);
setChoice(playerA, "Yes"); // use madness triggered ability
setChoice(playerA, "Yes"); // use madness cast
setChoice(playerA, true); // use madness triggered ability
setChoice(playerA, true); // use madness cast
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -123,7 +123,7 @@ public class MadnessTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerB, "Haunting Hymn");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Haunting Hymn", playerA);
setChoice(playerA, "Yes"); // use madness triggered ability
setChoice(playerA, true); // use madness triggered ability
setChoice(playerA, "X=4");
addTargetAmount(playerA, "Pillarfield Ox", 4);
@ -176,11 +176,11 @@ public class MadnessTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Falkenrath Gorger");
setChoice(playerA, "Yes"); // Discard a card and put a +1/+1 counter on that creature, it gains haste until end of turn, and it becomes a Vampire in addition to its other types?
setChoice(playerA, true); // Discard a card and put a +1/+1 counter on that creature, it gains haste until end of turn, and it becomes a Vampire in addition to its other types?
setChoice(playerA, "Asylum Visitor"); // Card to discard from Falkenrath entering by Olivia effect
setChoice(playerA, "Asylum Visito"); // Madness {1}{B}
setChoice(playerA, "Yes"); // use madness triggered ability
setChoice(playerA, "Yes"); // Discard a card and put a +1/+1 counter on that creature, it gains haste until end of turn, and it becomes a Vampire in addition to its other types?
setChoice(playerA, true); // use madness triggered ability
setChoice(playerA, true); // Discard a card and put a +1/+1 counter on that creature, it gains haste until end of turn, and it becomes a Vampire in addition to its other types?
setChoice(playerA, "Forest");
setStrictChooseMode(true);

View file

@ -22,7 +22,7 @@ public class MegamorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Forest", 6);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aerie Bowmasters");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{5}{G}: Turn");

View file

@ -65,7 +65,7 @@ public class ModularTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Arcbound Hybrid");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", "Arcbound Bruiser");
setStopAt(3, PhaseStep.BEGIN_COMBAT);
setChoice(playerA, "Yes");
setChoice(playerA, true);
execute();
assertPermanentCount(playerA, "Arcbound Bruiser", 0);
@ -115,7 +115,7 @@ public class ModularTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Puncture Blast");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Puncture Blast", "Arcbound Bruiser");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.END_TURN);
execute();

View file

@ -31,7 +31,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Forest", 5);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
setChoice(playerA, "No"); // cast it normal as 5/5
setChoice(playerA, false); // cast it normal as 5/5
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -50,7 +50,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -69,7 +69,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Forest", 5);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
@ -100,14 +100,14 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Island", 3);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Icefeather Aven", TestPlayer.NO_TARGET, "Pine Walker", StackClause.WHILE_NOT_ON_STACK);
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
activateAbility(3, PhaseStep.DECLARE_BLOCKERS, playerA, "{1}{G}{U}: Turn this face-down permanent face up.");
setChoice(playerA, "No"); // Don't use return permanent to hand effect
setChoice(playerA, false); // Don't use return permanent to hand effect
setStopAt(3, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -142,7 +142,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Soldier of the Pantheon", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ponyback Brigade");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -170,10 +170,10 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Island", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Clever Impersonator");
setChoice(playerB, "Yes"); // use to copy a nonland permanent
setChoice(playerB, true); // use to copy a nonland permanent
addTarget(playerB, EmptyNames.FACE_DOWN_CREATURE.toString()); // Morphed creature
setStopAt(2, PhaseStep.BEGIN_COMBAT);
@ -206,7 +206,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 5);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Doomwake Giant");
@ -248,7 +248,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 5);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ponyback Brigade");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Doomwake Giant");
@ -285,7 +285,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{3}{G}{U}: Turn this face-down permanent face up.");
castSpell(5, PhaseStep.PRECOMBAT_MAIN, playerA, "Clone");
setChoice(playerA, "Sagu Mauler");
@ -322,7 +322,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Disdainful Stroke", "Sagu Mauler");
@ -359,9 +359,9 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler", TestPlayer.NO_TARGET, "Sagu Mauler", StackClause.WHILE_NOT_ON_STACK);
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
// showBattlefield("A battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerA);
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Echoing Decay", EmptyNames.FACE_DOWN_CREATURE.toString());
@ -397,7 +397,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Counterspell", "Akroma, Angel of Fury");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -423,7 +423,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Plains", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Birchlore Rangers");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Swords to Plowshares", "");
@ -462,7 +462,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
@ -502,7 +502,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Mirri, Cat Warrior");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
attack(2, playerB, "Mirri, Cat Warrior");
block(2, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), "Mirri, Cat Warrior");
@ -540,7 +540,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Island", 6);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
// showBattlefield("A battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerA);
// showBattlefield("B battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerB);
@ -580,7 +580,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Dragonlord Kolaghan", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -610,7 +610,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Linvala, Keeper of Silence", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
@ -657,7 +657,7 @@ public class MorphTest extends CardTestPlayerBase {
// try cast as normal -- must not work
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Rattleclaw Mystic");
setChoice(playerB, "No"); // try cast as normal
setChoice(playerB, false); // try cast as normal
//setStrictChooseMode(true); // no strict mode - cause can't cast as normal
setStopAt(2, PhaseStep.BEGIN_COMBAT);
@ -692,7 +692,7 @@ public class MorphTest extends CardTestPlayerBase {
// try cast as morph - must work
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Rattleclaw Mystic");
setChoice(playerB, "Yes"); // try cast as morph
setChoice(playerB, true); // try cast as morph
setStrictChooseMode(true);
setStopAt(2, PhaseStep.BEGIN_COMBAT);
@ -734,12 +734,12 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Rattleclaw Mystic");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Reflector Mage");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Rattleclaw Mystic");
setChoice(playerA, "No"); // cast it face down as 2/2 creature
setChoice(playerA, false); // cast it face down as 2/2 creature
setStopAt(3, PhaseStep.BEGIN_COMBAT);
@ -779,7 +779,7 @@ public class MorphTest extends CardTestPlayerBase {
// 1. Cast Vesuvan as face-down
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Vesuvan Shapeshifter");
setChoice(playerB, "Yes"); // cast as face-down
setChoice(playerB, true); // cast as face-down
// 2. Moth Vesuvan and copy brine
activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "{1}{U}: Turn this face-down permanent");
@ -822,7 +822,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Fatal Push");
@ -860,7 +860,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "The Ur-Dragon", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Quicksilver Dragon");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -898,7 +898,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Quicksilver Dragon");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
@ -939,7 +939,7 @@ public class MorphTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 6);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{3}{R}{R}{R}: Turn this face-down permanent face up.");
@ -959,7 +959,7 @@ public class MorphTest extends CardTestPlayerBase {
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern");
setChoice(playerA, "No"); // no morph (canPay for generic/colored mana returns true all the time, so xmage ask about face down cast)
setChoice(playerA, false); // no morph (canPay for generic/colored mana returns true all the time, so xmage ask about face down cast)
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -979,7 +979,7 @@ public class MorphTest extends CardTestPlayerBase {
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
checkPlayableAbility("morph must be replaced by play ability", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Morph", false);
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern");
setChoice(playerA, "Yes"); // morph
setChoice(playerA, true); // morph
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -1007,7 +1007,7 @@ public class MorphTest extends CardTestPlayerBase {
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
checkPlayableAbility("morph must be replaced by play ability", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Morph", false);
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern");
setChoice(playerA, "Yes"); // morph
setChoice(playerA, true); // morph
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -1033,7 +1033,7 @@ public class MorphTest extends CardTestPlayerBase {
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
checkPlayableAbility("morph must be replaced by play ability", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Morph", false);
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern");
setChoice(playerA, "Yes"); // morph
setChoice(playerA, true); // morph
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -1078,7 +1078,7 @@ public class MorphTest extends CardTestPlayerBase {
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", true);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender");
setChoice(playerA, "Yes"); // morph
setChoice(playerA, true); // morph
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -1101,7 +1101,7 @@ public class MorphTest extends CardTestPlayerBase {
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", true);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender");
setChoice(playerA, "Yes"); // morph
setChoice(playerA, true); // morph
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -1125,7 +1125,7 @@ public class MorphTest extends CardTestPlayerBase {
// creature one - get cost reduce
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", true);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender");
setChoice(playerA, "Yes"); // morph
setChoice(playerA, true); // morph
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
// creature two - do not get cost reduce

View file

@ -20,7 +20,7 @@ public class OfferingTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, kurosTaken);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, nezumiPatron);
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, kurosTaken);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -40,7 +40,7 @@ public class OfferingTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, kurosTaken);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, nezumiPatron);
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -63,7 +63,7 @@ public class OfferingTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Akki Drillmaster"); // Creature Goblin {2}{R} (2/2)
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, patron);
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Akki Drillmaster");
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
@ -93,7 +93,7 @@ public class OfferingTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Boros Recruit"); // Creature Goblin {R/W} (1/1)
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, patron);
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Boros Recruit");
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
@ -126,7 +126,7 @@ public class OfferingTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, patron);
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Boggart Ram-Gang");
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);

View file

@ -29,7 +29,7 @@ public class ProwlTest extends CardTestPlayerBase {
checkPlayableAbility("must play", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Cast Auntie's Snitch", true);
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Auntie's Snitch");
setChoice(playerA, "Yes"); // choosing to pay prowl cost
setChoice(playerA, true); // choosing to pay prowl cost
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -65,7 +65,7 @@ public class ProwlTest extends CardTestPlayerBase {
checkPlayableAbility("must play", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Cast Auntie's Snitch", true);
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Auntie's Snitch"); // should only cost {B} with Warchief discount
setChoice(playerA, "Yes"); // choosing to pay prowl cost
setChoice(playerA, true); // choosing to pay prowl cost
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);

View file

@ -33,7 +33,7 @@ public class RecoverTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sun's Bounty");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lightning Bolt", "Silvercoat Lion");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.END_TURN);
execute();
@ -62,7 +62,7 @@ public class RecoverTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sun's Bounty");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lightning Bolt", "Silvercoat Lion");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.END_TURN);
execute();

View file

@ -38,8 +38,8 @@ public class ReplicateTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Train of Thought");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Train of Thought");
setChoice(playerA, "Yes");
setChoice(playerA, "No");
setChoice(playerA, true);
setChoice(playerA, false);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -54,9 +54,9 @@ public class ReplicateTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Train of Thought");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Train of Thought");
setChoice(playerA, "Yes");
setChoice(playerA, "Yes");
setChoice(playerA, "No");
setChoice(playerA, true);
setChoice(playerA, true);
setChoice(playerA, false);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -71,7 +71,7 @@ public class ReplicateTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Train of Thought");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Train of Thought");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -89,12 +89,12 @@ public class ReplicateTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pyromatics");
addTarget(playerA, playerB);
setChoice(playerA, "Yes"); // replicate 1
setChoice(playerA, "Yes"); // replicate 2
setChoice(playerA, "No"); // stop
setChoice(playerA, true); // replicate 1
setChoice(playerA, true); // replicate 2
setChoice(playerA, false); // stop
//
setChoice(playerA, "No"); // don't change target 1
setChoice(playerA, "No"); // don't change target 2
setChoice(playerA, false); // don't change target 1
setChoice(playerA, false); // don't change target 2
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -114,12 +114,12 @@ public class ReplicateTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pyromatics");
addTarget(playerA, playerB);
//setChoice(playerA, "Yes"); // replicate 1 - AI must choice max possible
//setChoice(playerA, "Yes"); // replicate 2 - AI must choice max possible
//setChoice(playerA, "No"); // stop - AI must choice max possible
//setChoice(playerA, true); // replicate 1 - AI must choice max possible
//setChoice(playerA, true); // replicate 2 - AI must choice max possible
//setChoice(playerA, false); // stop - AI must choice max possible
//
//setChoice(playerA, "No"); // don't change target 1
//setChoice(playerA, "No"); // don't change target 2
//setChoice(playerA, false); // don't change target 1
//setChoice(playerA, false); // don't change target 2
//setStrictChooseMode(true); - AI must choice
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -30,7 +30,7 @@ public class RiotTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Rampaging Rendhorn", 1); // Creature {4}{G}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Rampaging Rendhorn");
setChoice(playerA, "Yes"); // yes - counter
setChoice(playerA, true); // yes - counter
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -51,7 +51,7 @@ public class RiotTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Rampaging Rendhorn", 1); // Creature {4}{G}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Rampaging Rendhorn");
setChoice(playerA, "No"); // no - haste
setChoice(playerA, false); // no - haste
setStopAt(2, PhaseStep.BEGIN_COMBAT);
@ -75,7 +75,7 @@ public class RiotTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Silvercoat Lion", 1); // Creature {1}{W} 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion");
setChoice(playerA, "Yes"); // yes - counter
setChoice(playerA, true); // yes - counter
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -102,8 +102,8 @@ public class RiotTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion");
setChoice(playerA, "Rhythm of the Wild"); // choose replacement effect
setChoice(playerA, "Yes"); // yes - counter
setChoice(playerA, "Yes"); // yes - counter
setChoice(playerA, true); // yes - counter
setChoice(playerA, true); // yes - counter
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -129,7 +129,7 @@ public class RiotTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Silvercoat Lion", 1); // Creature {1}{W} 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion");
setChoice(playerA, "No"); // no - haste
setChoice(playerA, false); // no - haste
setStopAt(2, PhaseStep.BEGIN_COMBAT);
@ -156,7 +156,7 @@ public class RiotTest extends CardTestPlayerBase {
addCard(Zone.GRAVEYARD, playerA, "Silvercoat Lion", 1); // Creature {1}{W} 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Exhume");
setChoice(playerA, "Yes"); // yes - counter
setChoice(playerA, true); // yes - counter
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -182,7 +182,7 @@ public class RiotTest extends CardTestPlayerBase {
addCard(Zone.GRAVEYARD, playerA, "Silvercoat Lion", 1); // Creature {1}{W} 2/2
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Exhume");
setChoice(playerA, "No"); // no - haste
setChoice(playerA, false); // no - haste
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -33,7 +33,7 @@ public class RippleTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Surging Dementia", playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(2, PhaseStep.END_TURN);
@ -62,7 +62,7 @@ public class RippleTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Surging Dementia", playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, playerB);
setStopAt(2, PhaseStep.END_TURN);
@ -97,7 +97,7 @@ public class RippleTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Surging Dementia", playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, playerB);
setStopAt(2, PhaseStep.END_TURN);

View file

@ -379,9 +379,9 @@ public class SoulbondKeywordTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Elite Vanguard");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Cloudshift", "Trusted Forcemage");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.END_TURN);
execute();
@ -415,7 +415,7 @@ public class SoulbondKeywordTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 2);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Deadeye Navigator");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Palinchron");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Doom Blade", "Deadeye Navigator");

View file

@ -31,7 +31,7 @@ public class SpliceOnArcaneTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lava Spike", playerB);
// activate splice: yes -> card with splice ability -> new target for spliced ability
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Through the Breach");
addTarget(playerA, "Silvercoat Lion"); // target for spliced ability: put from hand to battlefield
@ -64,7 +64,7 @@ public class SpliceOnArcaneTest extends CardTestPlayerBase {
// cast arcane Lava Spike
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lava Spike", playerB);
// activate splice: yes -> card with splice ability -> new target for spliced ability
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Torrent of Stone");
addTarget(playerA, "Silvercoat Lion"); // target for spliced ability: 4 damage
@ -103,7 +103,7 @@ public class SpliceOnArcaneTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Nourishing Shoal");
// activate splice: yes -> card with splice ability -> new target for spliced ability
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Through the Breach");
addTarget(playerA, "Silvercoat Lion"); // target for spliced ability: put from hand to battlefield
@ -168,7 +168,7 @@ public class SpliceOnArcaneTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Nourishing Shoal");
setChoice(playerA, "X=3");
setChoice(playerA, "Yes"); // splice
setChoice(playerA, true); // splice
addTarget(playerA, "Griselbrand");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goryo's Vengeance", "Griselbrand", "Nourishing Shoal");

View file

@ -32,7 +32,7 @@ public class TributeTest extends CardTestPlayerBase {
addCard(Zone.GRAVEYARD, playerB, "Pharagax Giant"); // Creature 3/3
attack(1, playerA, "Ink-Eyes, Servant of Oni");
setChoice(playerB, "Yes"); // pay tribute
setChoice(playerB, true); // pay tribute
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();

View file

@ -55,7 +55,7 @@ public class ConditionalOneShotEffectTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Unlicensed Disintegration", "Silvercoat Lion");
setChoice(playerA, "Yes"); // Get life from Dragon's Claw
setChoice(playerA, true); // Get life from Dragon's Claw
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -69,7 +69,7 @@ public class CounterbalanceTest extends CardTestPlayerBase {
skipInitShuffling(); // so the set to top card stays at top
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Nessian Courser");
setChoice(playerB, "Yes");
setChoice(playerB, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -80,7 +80,7 @@ public class CounterspellTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Memory Lapse", "Lightning Bolt");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Twincast", "Memory Lapse");
setChoice(playerA, "Yes"); // change the target
setChoice(playerA, true); // change the target
addTarget(playerA, "Memory Lapse");
setStrictChooseMode(true);
@ -116,7 +116,7 @@ public class CounterspellTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Counterspell", "Lightning Bolt");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Twincast", "Counterspell");
setChoice(playerA, "Yes"); // change the target
setChoice(playerA, true); // change the target
addTarget(playerA, "Counterspell");
setStrictChooseMode(true);
@ -152,7 +152,7 @@ public class CounterspellTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Dissipate", "Lightning Bolt");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Twincast", "Dissipate");
setChoice(playerA, "Yes"); // change the target
setChoice(playerA, true); // change the target
addTarget(playerA, "Dissipate");
setStrictChooseMode(true);

View file

@ -89,7 +89,7 @@ public class DisruptingShoalTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pillarfield Ox");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Disrupting Shoal", "Pillarfield Ox", "Pillarfield Ox");
setChoice(playerB, "Yes"); // use alternate costs
setChoice(playerB, true); // use alternate costs
setChoice(playerB, "Mistfire Adept"); // pay to cast Mistfire Adept (CMC = 4)
// rules: 202.3e When calculating the converted mana cost of an object with an {X} in its mana cost,
@ -139,7 +139,7 @@ public class DisruptingShoalTest extends CardTestPlayerBase {
// try to pay by split card, but can't counter -- X <> bear's cmc
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Disrupting Shoal", "Grizzly Bears", "Grizzly Bears");
setChoice(playerB, "Yes"); // use alternative cost
setChoice(playerB, true); // use alternative cost
setChoice(playerB, "Far // Away"); // pay by card (cmc = 5, so X = 5 too)
setStrictChooseMode(true);
@ -171,7 +171,7 @@ public class DisruptingShoalTest extends CardTestPlayerBase {
// try to pay by split card, but can't counter -- X <> centaur's cmc
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Disrupting Shoal", "Centaur Courser", "Centaur Courser");
setChoice(playerB, "Yes"); // use alternative cost
setChoice(playerB, true); // use alternative cost
setChoice(playerB, "Far // Away"); // pay by card (cmc = 5, so X = 5 too)
setStrictChooseMode(true);
@ -203,7 +203,7 @@ public class DisruptingShoalTest extends CardTestPlayerBase {
// try to pay by split card and it works
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Disrupting Shoal", "Air Elemental", "Air Elemental");
setChoice(playerB, "Yes"); // use alternative cost
setChoice(playerB, true); // use alternative cost
setChoice(playerB, "Far // Away"); // pay by card (cmc = 5, so X = 5 too)
setStrictChooseMode(true);

View file

@ -32,7 +32,7 @@ public class RoonOfTheHiddenRealmTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Plains", 2);
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Silvercoat Lion");
setChoice(playerA, "Yes");
setChoice(playerA, true);
activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "{2}", "Perplexing Chimera");

View file

@ -13,7 +13,7 @@ public class IdentityThiefTests extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion");
attack(1, playerA, "Identity Thief");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.DECLARE_BLOCKERS);
execute();
@ -28,7 +28,7 @@ public class IdentityThiefTests extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion");
attack(1, playerA, "Identity Thief");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.DECLARE_BLOCKERS);
execute();

View file

@ -33,7 +33,7 @@ public class ChorusOfTheConclaveTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Goblin Roughrider");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin Roughrider");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "X=1");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -70,16 +70,16 @@ public class ChorusOfTheConclaveTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Hamza, Guardian of Arashin"); // {4}{G}{W}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin Roughrider");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "X=1");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Hamza, Guardian of Arashin");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "X=1");
playLand(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Mountain");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Akki Drillmaster");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "X=1");
setStopAt(1, PhaseStep.END_TURN);

View file

@ -23,7 +23,7 @@ public class ThrummingStoneTest extends CardTestPlayerBase {
addCard(Zone.LIBRARY, playerA, "Swamp", 3);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Shadowborn Apostle");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -48,7 +48,7 @@ public class ThrummingStoneTest extends CardTestPlayerBase {
skipInitShuffling();
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Shadowborn Apostle");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);
execute();

View file

@ -18,7 +18,7 @@ public class LeylineOfAnticipationTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Leyline of Anticipation");
addCard(Zone.HAND, playerA, "Silvercoat Lion");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(2, PhaseStep.DRAW, playerA, "Silvercoat Lion");
setStopAt(2, PhaseStep.END_COMBAT);
@ -41,7 +41,7 @@ public class LeylineOfAnticipationTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Yawgmoth's Agenda",1);
addCard(Zone.HAND, playerA, "Leyline of Anticipation");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addCard(Zone.GRAVEYARD, playerA, "Silvercoat Lion");

View file

@ -83,7 +83,7 @@ public class TwoFacedCardEffectsTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Mayor of Avabruck");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Clone");
setChoice(playerB, "Yes"); // use copy
setChoice(playerB, true); // use copy
setChoice(playerB, "Mayor of Avabruck"); // clone target
setStrictChooseMode(true);

View file

@ -201,7 +201,7 @@ public class AngelOfJubilationTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerB, "Lightning Bolt");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", "Silvercoat Lion");
setChoice(playerB, "Yes"); // Pay 3 life to prevent that returns to PlayerA's hand?
setChoice(playerB, true); // Pay 3 life to prevent that returns to PlayerA's hand?
addTarget(playerA, playerB);

View file

@ -53,7 +53,7 @@ public class CommanderAsIndomitableCreativityCastTest extends CardTestCommander4
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Indomitable Creativity");
setChoice(playerA, "X=1");
addTarget(playerA, "Balduvian Bears");
setChoice(playerA, "Yes"); // return spell as commander
setChoice(playerA, true); // return spell as commander
checkPermanentCount("after", 1, PhaseStep.BEGIN_COMBAT, playerA, "Balduvian Bears", 0);

View file

@ -52,7 +52,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// destroy commander
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", "Balduvian Bears");
setChoice(playerA, "Yes"); // put to command zone again
setChoice(playerA, true); // put to command zone again
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkPermanentCount("after destroy", 1, PhaseStep.PRECOMBAT_MAIN, playerB, playerA, "Balduvian Bears", 0);
@ -105,7 +105,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// destroy commander land
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pillage", "Academy Ruins");
setChoice(playerA, "Yes"); // put to command zone again
setChoice(playerA, true); // put to command zone again
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkPermanentCount("after destroy", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Academy Ruins", 0);
@ -177,7 +177,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
setModeChoice(playerA, "1");
setModeChoice(playerA, "1");
setModeChoice(playerA, "4");
setChoice(playerA, "Yes"); // return commander
setChoice(playerA, true); // return commander
checkPermanentCount("after", 1, PhaseStep.BEGIN_COMBAT, playerA, "Citizen", 3);
checkLife("after", 1, PhaseStep.BEGIN_COMBAT, playerA, 20 + 4);
@ -203,7 +203,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// cast 1 and counter (increase commander tax)
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Balduvian Bears");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Remand", "Balduvian Bears", "Balduvian Bears");
setChoice(playerA, "No"); // move to hand
setChoice(playerA, false); // move to hand
checkCommandCardCount("cast 1", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Balduvian Bears", 0);
checkHandCardCount("cast 1", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Balduvian Bears", 1);
checkPermanentCount("cast 1", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Balduvian Bears", 0);
@ -212,7 +212,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// cast 2 from hand without tax
castSpell(5, PhaseStep.PRECOMBAT_MAIN, playerA, "Balduvian Bears");
castSpell(5, PhaseStep.PRECOMBAT_MAIN, playerB, "Remand", "Balduvian Bears", "Balduvian Bears");
setChoice(playerA, "Yes"); // move to command zone
setChoice(playerA, true); // move to command zone
checkCommandCardCount("cast 2", 5, PhaseStep.POSTCOMBAT_MAIN, playerA, "Balduvian Bears", 1);
checkHandCardCount("cast 2", 5, PhaseStep.POSTCOMBAT_MAIN, playerA, "Balduvian Bears", 0);
checkPermanentCount("cast 2", 5, PhaseStep.POSTCOMBAT_MAIN, playerA, "Balduvian Bears", 0);
@ -265,7 +265,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// cast overload
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Weapon Surge with overload");
setChoice(playerA, "Yes"); // move to command zone
setChoice(playerA, true); // move to command zone
checkAbility("after", 1, PhaseStep.BEGIN_COMBAT, playerA, "Balduvian Bears", FirstStrikeAbility.class, true);
setStopAt(1, PhaseStep.END_TURN);
@ -306,7 +306,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {R}");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", "Balduvian Bears");
setChoice(playerA, "Red"); // pay
setChoice(playerA, "No"); // leave in graveyard
setChoice(playerA, false); // leave in graveyard
// use commander as delve pay
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {U}", 5);
@ -314,7 +314,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
setChoice(playerA, "Blue", 5); // pay normal
setChoice(playerA, "Exile a card"); // pay delve
setChoice(playerA, "Balduvian Bears");
setChoice(playerA, "Yes"); // move to command zone
setChoice(playerA, true); // move to command zone
setStopAt(1, PhaseStep.END_TURN);
setStrictChooseMode(true);
@ -350,7 +350,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// turn 1 - cast left
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Fire");
addTargetAmount(playerA, playerB, 2);
setChoice(playerA, "Yes"); // return commander
setChoice(playerA, true); // return commander
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
// can't cast due commander cost added
checkCommandCardCount("after first cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Fire // Ice", 1);
@ -363,7 +363,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// cast right and use all mana (4 = card + commander cost)
castSpell(5, PhaseStep.PRECOMBAT_MAIN, playerA, "Ice");
addTarget(playerA, "Mountain"); // tap target
setChoice(playerA, "Yes"); // move to commander
setChoice(playerA, true); // move to commander
waitStackResolved(5, PhaseStep.PRECOMBAT_MAIN);
checkCommandCardCount("after second cast", 5, PhaseStep.PRECOMBAT_MAIN, playerA, "Fire // Ice", 1);
checkPlayableAbility("after second cast", 5, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Fire", false);
@ -406,7 +406,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// cast adventure spell
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Treats to Share");
setChoice(playerA, "Yes"); // return commander
setChoice(playerA, true); // return commander
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkCommandCardCount("after first cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Curious Pair", 1);
checkPermanentCount("after first cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Food", 1);
@ -423,7 +423,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// play adventure spell, but keep it
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Treats to Share");
setChoice(playerA, "No"); // do not return commander
setChoice(playerA, false); // do not return commander
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkPermanentCount("after second cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Food", 2);
checkPlayableAbility("after second cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Curious Pair", false);
@ -439,7 +439,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// return commander to command zone
activateAbility(5, PhaseStep.PRECOMBAT_MAIN, playerA, "target damage 10", "Curious Pair");
setChoice(playerA, "Yes"); // return to command zone
setChoice(playerA, true); // return to command zone
// can't cast - only {2} mana, but need {G} + {2} + {2}
checkPlayableAbility("after return 2", 5, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Curious Pair", false);
checkPlayableAbility("after return 2", 5, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Treats to Share", false);
@ -518,7 +518,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
// exile and return
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Angelic Edict", "Tergrid, God of Fright");
setChoice(playerA, "Yes"); // return to command
setChoice(playerA, true); // return to command
// turn 5 - check commander cost
checkPlayableAbility("before second cast 1", 5, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Tergrid, God of Fright", true);
@ -572,7 +572,7 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
checkStackSize("must have 2 bolts on stack", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 2);
checkPlayableAbility("must see commander on battle for free cast", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Fierce Guardianship", true);
//
setChoice(playerA, "Yes"); // return to command zone after kill
setChoice(playerA, true); // return to command zone after kill
setStrictChooseMode(true);
setStopAt(1, PhaseStep.END_TURN);
@ -599,8 +599,8 @@ public class CommandersCastTest extends CardTestCommander4PlayersWithAIHelps {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Uro, Titan of Nature's Wrath");
setChoice(playerA, "Whenever {this} enters the battlefield or attacks"); // gain life trigger first, sacrifice next
setChoice(playerA, "No"); // keep in graveyard
setChoice(playerA, "Yes"); // put land to battlefield
setChoice(playerA, false); // keep in graveyard
setChoice(playerA, true); // put land to battlefield
setChoice(playerA, "Swamp"); // put a Swamp
setStrictChooseMode(true);

View file

@ -207,7 +207,7 @@ public class ConditionalPreventionTest extends CardTestPlayerBase {
// add shield for 3 damage
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pollen Remedy");
setChoice(playerA, "No"); // no kicker
setChoice(playerA, false); // no kicker
addTargetAmount(playerA, "Balduvian Bears", 3);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkGraveyardCount("shield", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pollen Remedy", 1);
@ -242,7 +242,7 @@ public class ConditionalPreventionTest extends CardTestPlayerBase {
// add shield for 6 damage
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pollen Remedy");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
setChoice(playerA, "Swamp"); // kicker cost
addTargetAmount(playerA, "Balduvian Bears", 6);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);

View file

@ -78,7 +78,7 @@ public class DependentEffectsTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerB, "Raise the Alarm"); // Instant {1}{W}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Rite of Replication", "Cobblebrute");
setChoice(playerA, "No"); // no kicker
setChoice(playerA, false); // no kicker
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Raise the Alarm");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Enchanted Evening");
setStopAt(1, PhaseStep.END_TURN);

View file

@ -21,7 +21,7 @@ public class GoblinBushwhackerTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Elite Vanguard");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin Bushwhacker");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -38,7 +38,7 @@ public class SerraAscendantTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Serra Ascendant");
playLand(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Stomping Ground");
setChoice(playerB, "Yes");
setChoice(playerB, true);
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Wild Nacatl");
playLand(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Plains");

View file

@ -97,7 +97,7 @@ public class TappedForManaFromMultipleEffects extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Balduvian Bears", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Chrome Mox");
setChoice(playerA, "Yes"); // use imprint
setChoice(playerA, true); // use imprint
setChoice(playerA, "Balduvian Bears"); // discard
activateManaAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{T}: Add one");
@ -138,7 +138,7 @@ public class TappedForManaFromMultipleEffects extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Mana Reflection", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Chrome Mox");
setChoice(playerA, "Yes"); // use imprint
setChoice(playerA, true); // use imprint
setChoice(playerA, "Balduvian Bears"); // discard
activateManaAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{T}: Add one");

View file

@ -71,7 +71,7 @@ public class UnboundFlourishingTest extends CardTestPlayerBase {
checkLife("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 20);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Banefire", playerA);
setChoice(playerA, "X=3");
setChoice(playerA, "Yes"); // change target
setChoice(playerA, true); // change target
addTarget(playerA, playerB); // change to B
checkLife("after", 1, PhaseStep.BEGIN_COMBAT, playerA, 20 - 3); // original damage
checkLife("after", 1, PhaseStep.BEGIN_COMBAT, playerB, 20 - 3); // copy damage
@ -158,7 +158,7 @@ public class UnboundFlourishingTest extends CardTestPlayerBase {
checkLife("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 20);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{X}{R}", playerA);
setChoice(playerA, "X=3");
setChoice(playerA, "Yes"); // change target
setChoice(playerA, true); // change target
addTarget(playerA, playerB); // change to B
checkLife("after", 1, PhaseStep.BEGIN_COMBAT, playerA, 20 - 3); // original damage
checkLife("after", 1, PhaseStep.BEGIN_COMBAT, playerB, 20 - 3); // copy damage

View file

@ -90,7 +90,7 @@ public class ExileAndReturnUnderYourControl extends CardTestPlayerBase {
skipInitShuffling(); // to keep this card on top of library
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Master of Pearls");
setChoice(playerA, "Yes"); // cast it face down as 2/2 creature
setChoice(playerA, true); // cast it face down as 2/2 creature
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Villainous Wealth", playerB);
setChoice(playerA, "X=3");

View file

@ -96,7 +96,7 @@ public class GainControlTargetEffectTest extends CardTestPlayerBase {
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerB, "{1}:");
activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "{2}, {T}: Gain control", "Mutavault");
setChoice(playerA, "No"); // Don't untap the Shackles
setChoice(playerA, false); // Don't untap the Shackles
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
execute();
@ -171,9 +171,9 @@ public class GainControlTargetEffectTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, leovold);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, oGorger);
setChoice(playerA, "Yes"); // opt to use Kirin's ability
setChoice(playerA, true); // opt to use Kirin's ability
addTarget(playerA, leovold); // attempt to target Leovold with Kirin's take control ability
setChoice(playerB, "Yes"); // opt to use Leovold's ability to draw a card when targetted (should not occur)
setChoice(playerB, true); // opt to use Leovold's ability to draw a card when targetted (should not occur)
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -218,7 +218,7 @@ public class GainControlTargetEffectTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, aLight);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, oGorger);
setChoice(playerA, "Yes"); // opt to use Kirin's ability
setChoice(playerA, true); // opt to use Kirin's ability
addTarget(playerA, aLight); // target Angel of Light with Kirin's take control ability
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -72,7 +72,7 @@ public class TakeControlWhileSearchingLibraryTest extends CardTestPlayerBase {
// search under control of B
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {B}", 3);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Buried Alive");
setChoice(playerB, "Yes"); // continue
setChoice(playerB, true); // continue
addTarget(playerB, "Balduvian Bears"); // player B must take control for searching
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
@ -115,7 +115,7 @@ public class TakeControlWhileSearchingLibraryTest extends CardTestPlayerBase {
// search as normal and cast
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {B}", 3);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Buried Alive");
setChoice(playerA, "Yes"); // yes, try to cast a creature card from lib
setChoice(playerA, true); // yes, try to cast a creature card from lib
setChoice(playerA, "Panglacial Wurm"); // try to cast
addTarget(playerA, "Balduvian Bears"); // choice for searching
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
@ -169,8 +169,8 @@ public class TakeControlWhileSearchingLibraryTest extends CardTestPlayerBase {
// search under control of B and cast under B too
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {B}", 3);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Buried Alive");
setChoice(playerB, "Yes"); // continue
setChoice(playerB, "Yes"); // yes, try to cast a creature card from lib
setChoice(playerB, true); // continue
setChoice(playerB, true); // yes, try to cast a creature card from lib
setChoice(playerB, "Panglacial Wurm"); // try to cast
addTarget(playerB, "Balduvian Bears"); // choice for searching
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
@ -233,7 +233,7 @@ public class TakeControlWhileSearchingLibraryTest extends CardTestPlayerBase {
// start searching under B (bears must go to exile instead graveyard)
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Buried Alive");
setChoice(playerB, "Yes"); // continue after new control
setChoice(playerB, true); // continue after new control
addTarget(playerB, "Balduvian Bears");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkGraveyardCount("after grave a", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Balduvian Bears", 0);

View file

@ -22,7 +22,7 @@ public class AlteredEgoTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Altered Ego");
setChoice(playerA, "X=3");
setChoice(playerA, "Yes"); // use copy
setChoice(playerA, true); // use copy
setChoice(playerA, "Silvercoat Lion"); // copy target
setStrictChooseMode(true);
@ -44,7 +44,7 @@ public class AlteredEgoTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Altered Ego");
setChoice(playerA, "X=3");
setChoice(playerA, "Yes"); // use copy (but no targets for copy)
setChoice(playerA, true); // use copy (but no targets for copy)
setStrictChooseMode(true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -65,7 +65,7 @@ public class CleverImpersonatorTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerB, "Balduvian Bears", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Clever Impersonator");
setChoice(playerA, "Yes"); // make copy
setChoice(playerA, true); // make copy
setChoice(playerA, "Liliana, Defiant Necromancer"); // copy target
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+2: Each player discards a card");
addTarget(playerA, "Balduvian Bears"); // discard

View file

@ -214,7 +214,7 @@ public class CloneTest extends CardTestPlayerBase {
setChoice(playerA, "Elf");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Clone");
setChoice(playerB, "Yes");
setChoice(playerB, true);
setChoice(playerB, "Adaptive Automaton");
setChoice(playerB, "Goblin");
@ -271,7 +271,7 @@ public class CloneTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ixidron");
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Clone");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
setStrictChooseMode(true);

View file

@ -50,7 +50,7 @@ public class CopyEnchantmentTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Inferno Fist", "Geist of the Moors");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Copy Enchantment");
setChoice(playerB, "Yes"); // copy
setChoice(playerB, true); // copy
setChoice(playerB, "Inferno Fist"); // copied
setChoice(playerB, "Silvercoat Lion"); // target for copy

View file

@ -48,7 +48,7 @@ public class CopyPermanentSpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Grizzly Bears");
addCard(Zone.HAND, playerA, "Holy Strength");
setChoice(playerA, "No");
setChoice(playerA, false);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Holy Strength", "Grizzly Bears");
setStopAt(1, PhaseStep.END_TURN);
@ -67,7 +67,7 @@ public class CopyPermanentSpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Hill Giant");
addCard(Zone.HAND, playerA, "Dead Weight");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Dead Weight", "Centaur Courser");
setStopAt(1, PhaseStep.END_TURN);
@ -89,7 +89,7 @@ public class CopyPermanentSpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Grizzly Bears");
addCard(Zone.HAND, playerA, "Goblin Bushwhacker");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Goblin Bushwhacker");
setStopAt(1, PhaseStep.END_TURN);
@ -107,7 +107,7 @@ public class CopyPermanentSpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Island", 5);
addCard(Zone.HAND, playerA, "Aether Figment");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aether Figment");
setStopAt(1, PhaseStep.END_TURN);
@ -144,7 +144,7 @@ public class CopyPermanentSpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Grizzly Bears");
addCard(Zone.HAND, playerA, "Nimbus Naiad");
setChoice(playerA, "No");
setChoice(playerA, false);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Nimbus Naiad using bestow", "Grizzly Bears");
setStopAt(1, PhaseStep.END_TURN);
@ -164,7 +164,7 @@ public class CopyPermanentSpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion");
addCard(Zone.HAND, playerA, "Nimbus Naiad");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Nimbus Naiad using bestow", "Grizzly Bears");
setStopAt(1, PhaseStep.END_TURN);
@ -191,10 +191,10 @@ public class CopyPermanentSpellTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Murder", 1);
addCard(Zone.HAND, playerA, "Nimbus Naiad");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Nimbus Naiad using bestow", "Grizzly Bears");
setChoice(playerA, "No");
setChoice(playerA, false);
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Murder", "Grizzly Bears");
setStopAt(1, PhaseStep.END_TURN);
@ -217,10 +217,10 @@ public class CopyPermanentSpellTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Murder", 1);
addCard(Zone.HAND, playerA, "Nimbus Naiad");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Nimbus Naiad using bestow", "Grizzly Bears");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Murder", "Silvercoat Lion");
setStopAt(1, PhaseStep.END_TURN);
@ -244,11 +244,11 @@ public class CopyPermanentSpellTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Murder", 1);
addCard(Zone.HAND, playerA, "Nimbus Naiad");
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Nimbus Naiad using bestow", "Grizzly Bears");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, true);
setChoice(playerA, "No");
setChoice(playerA, false);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Murder", "Grizzly Bears");
setStopAt(1, PhaseStep.END_TURN);

View file

@ -39,13 +39,13 @@ public class CopySpellTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Chain of Vapor", "Pillarfield Ox");
// chain 1 - B can return
addTarget(playerB, "Island"); // select a land to sacrifice
setChoice(playerB, "Yes"); // want to copy spell
setChoice(playerB, "Yes"); // want to change target
setChoice(playerB, true); // want to copy spell
setChoice(playerB, true); // want to change target
addTarget(playerB, "Silvercoat Lion"); // new target after copy
// chain 2 - A can return
addTarget(playerA, "Island"); // select a land to sacrifice
setChoice(playerA, "Yes"); // want to copy spell
setChoice(playerA, "Yes"); // want to change target
setChoice(playerA, true); // want to copy spell
setChoice(playerA, true); // want to change target
addTarget(playerA, "Pillarfield Ox"); // new target after copy
// stop the chain by B
addTarget(playerB, TestPlayer.TARGET_SKIP);
@ -109,12 +109,12 @@ public class CopySpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Savannah Lions");
castSpell(1, PhaseStep.UPKEEP, playerA, "Barkshell Blessing");
setChoice(playerA, "Yes"); // use Conspire
setChoice(playerA, true); // use Conspire
addTarget(playerA, "Bonecrusher Giant"); // target bone
setChoice(playerA, "Grizzly Bears"); // pay for conspire
setChoice(playerA, "Savannah Lions"); // pay for conspire
setChoice(playerA, "When you pay"); // Put Conspire on the stack first.
setChoice(playerA, "No"); // both spells target bone
setChoice(playerA, false); // both spells target bone
setStrictChooseMode(true);
setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
@ -140,12 +140,12 @@ public class CopySpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Savannah Lions");
castSpell(1, PhaseStep.UPKEEP, playerA, "Barkshell Blessing");
setChoice(playerA, "Yes"); // use Conspire
setChoice(playerA, true); // use Conspire
addTarget(playerA, "Bonecrusher Giant"); // target bone
setChoice(playerA, "Grizzly Bears"); // pay for conspire
setChoice(playerA, "Savannah Lions"); // pay for conspire
setChoice(playerA, "When you pay"); // Put Conspire on the stack first.
setChoice(playerA, "Yes"); // new target for copy: bear
setChoice(playerA, true); // new target for copy: bear
addTarget(playerA, "Grizzly Bears");
setStrictChooseMode(true);
@ -172,11 +172,11 @@ public class CopySpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Savannah Lions");
castSpell(1, PhaseStep.UPKEEP, playerA, "Barkshell Blessing");
setChoice(playerA, "Yes"); // use Conspire
setChoice(playerA, true); // use Conspire
addTarget(playerA, "Grizzly Bears"); // target bear
setChoice(playerA, "Grizzly Bears"); // pay for conspire
setChoice(playerA, "Savannah Lions"); // pay for conspire
setChoice(playerA, "Yes"); // new target for copy: bone
setChoice(playerA, true); // new target for copy: bone
addTarget(playerA, "Bonecrusher Giant");
// setChoice(playerA, "When {this} becomes the target of a spell"); // must be one trigger from bone, not two
@ -300,7 +300,7 @@ public class CopySpellTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Pillarfield Ox", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Into the Fray", "Zada, Hedron Grinder");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -331,7 +331,7 @@ public class CopySpellTest extends CardTestPlayerBase {
addTarget(playerA, playerB);
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt");
addTarget(playerB, playerA); // original target
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, playerB);
setStopAt(2, PhaseStep.BEGIN_COMBAT);
@ -379,7 +379,7 @@ public class CopySpellTest extends CardTestPlayerBase {
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Flame Slash", "Atraxa, Praetors' Voice");
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Dualcaster Mage");
addTarget(playerB, "Flame Slash"); // original target
setChoice(playerB, "Yes");
setChoice(playerB, true);
addTarget(playerB, "Walking Ballista");
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerA, "Remove a", "Silvercoat Lion", "Flame Slash", StackClause.WHILE_COPY_ON_STACK);
@ -411,8 +411,8 @@ public class CopySpellTest extends CardTestPlayerBase {
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Flashback");
addTarget(playerA, "Mountain");
setChoice(playerA, "Yes"); // Copy
setChoice(playerA, "Yes"); // Choose new target
setChoice(playerA, true); // Copy
setChoice(playerA, true); // Choose new target
addTarget(playerA, "Island");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -459,7 +459,7 @@ public class CopySpellTest extends CardTestPlayerBase {
// cast spark and make imoti's copy
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes"); // use copy
setChoice(playerA, true); // use copy
setChoice(playerA, "Imoti, Celebrant of Bounty"); // copy of imoti
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkPermanentCount("after copy", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Imoti, Celebrant of Bounty", 2);
@ -469,9 +469,9 @@ public class CopySpellTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Alpha Tyrranax");
checkStackSize("afer big spell", 1, PhaseStep.PRECOMBAT_MAIN, playerA, 3);
setChoice(playerA, "cascade"); // choice between 2x gained cascades
setChoice(playerA, "Yes"); // cast first bolt by first cascade
setChoice(playerA, true); // cast first bolt by first cascade
addTarget(playerA, playerB); // target for first bolt
setChoice(playerA, "Yes"); // cast second bold by second cascade
setChoice(playerA, true); // cast second bold by second cascade
addTarget(playerA, playerB); // target for second bolt
setStopAt(1, PhaseStep.END_TURN);
@ -556,8 +556,8 @@ public class CopySpellTest extends CardTestPlayerBase {
activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {R}", 3);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Banefire", playerB);
setChoice(playerA, "X=2");
setChoice(playerA, "Yes"); // make copy
setChoice(playerA, "No"); // keep target same
setChoice(playerA, true); // make copy
setChoice(playerA, false); // keep target same
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkLife("after spell copy", 1, PhaseStep.PRECOMBAT_MAIN, playerB, 20 - 2 * 2);
@ -566,7 +566,7 @@ public class CopySpellTest extends CardTestPlayerBase {
// token must have x=0 (dies)
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Capricopian");
setChoice(playerA, "X=1");
setChoice(playerA, "Yes"); // make copy
setChoice(playerA, true); // make copy
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkPermanentCount("after creature copy", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Capricopian", 1);

View file

@ -54,14 +54,14 @@ public class CryptoplasmTest extends CardTestPlayerBase {
// turn 2 - prepare (crypto to paladin, footsteps to crypto)
// crypto: copy as paladin on upkeep
setChoice(playerB, "Yes");
setChoice(playerB, true);
addTarget(playerB, "Sigiled Paladin");
// footsteps: enchant copy of paladin (crypto)
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Followed Footsteps");
addTarget(playerB, "Sigiled Paladin[only copy]");
// turn 4 - ignore crypto ask for new copy
setChoice(playerB, "No");
setChoice(playerB, false);
setStopAt(4, PhaseStep.END_TURN);
execute();

View file

@ -59,7 +59,7 @@ public class EldraziMimicTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Eldrazi Mimic", 1); // 2/1
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Composite Golem");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -33,7 +33,7 @@ public class FlameshadowConjuringTest extends CardTestPlayerBase {
// When Priest of the Blood Rite enters the battlefield, put a 5/5 black Demon creature token with flying onto the battlefield.
// At the beginning of your upkeep, you lose 2 life.
addCard(Zone.HAND, playerA, "Priest of the Blood Rite", 1); // {3}{B}{B}
setChoice(playerB, "Yes");
setChoice(playerB, true);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Priest of the Blood Rite");
setStopAt(3, PhaseStep.UPKEEP);
@ -65,7 +65,7 @@ public class FlameshadowConjuringTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerB, "Kill Shot", 1); // {2}{U}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Wurmcoil Engine");
setChoice(playerA, "Yes");
setChoice(playerA, true);
attack(1, playerA, "Wurmcoil Engine");

View file

@ -23,7 +23,7 @@ public class HiveMindTest extends CardTestPlayerBase {
// Each of those players may choose new targets for their copy.
addCard(Zone.BATTLEFIELD, playerA, "Hive Mind", 1);
addCard(Zone.HAND, playerA, "Lightning Bolt", 1);
setChoice(playerB, "Yes");
setChoice(playerB, true);
addTarget(playerB, playerA);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
@ -55,7 +55,7 @@ public class HiveMindTest extends CardTestPlayerBase {
// Whenever a player casts a spell with converted mana cost equal to the number of charge counters on Chalice of the Void, counter that spell.
addCard(Zone.BATTLEFIELD, playerB, "Chalice of the Void", 1);
setChoice(playerB, "Yes");
setChoice(playerB, true);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pact of the Titan");

View file

@ -32,7 +32,7 @@ public class IdentityThiefTest extends CardTestPlayerBase {
setFlipCoinResult(playerA, true);
attack(2, playerB, "Identity Thief");
setChoice(playerB, "Yes");
setChoice(playerB, true);
addTarget(playerB, "Molten Sentry");
setStrictChooseMode(true);

View file

@ -44,12 +44,12 @@ public class IsochronScepterTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Lightning Bolt");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Isochron Scepter");
setChoice(playerA, "Yes"); // use imprint
setChoice(playerA, true); // use imprint
setChoice(playerA, "Lightning Bolt"); // target for imprint (excile from hand)
// copy and cast imprinted card
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{2}, {T}:");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.END_TURN);
execute();
@ -70,8 +70,8 @@ public class IsochronScepterTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Isochron Scepter");
addTarget(playerA, "Lightning Bolt");
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{2}, {T}:");
setChoice(playerA, "Yes");
setChoice(playerA, "No");
setChoice(playerA, true);
setChoice(playerA, false);
setStopAt(1, PhaseStep.END_TURN);
execute();
@ -113,8 +113,8 @@ public class IsochronScepterTest extends CardTestPlayerBase {
attack(2, playerB, "Dross Crocodile");
activateAbility(2, PhaseStep.DECLARE_BLOCKERS, playerA, "{2}, {T}:");
setChoice(playerA, "Yes");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, true);
// Damage life loss is reduced to 0 because of Angel's Grace effect active
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lightning Bolt", playerA);
@ -157,8 +157,8 @@ public class IsochronScepterTest extends CardTestPlayerBase {
addTarget(playerA, "Silence");
activateAbility(2, PhaseStep.UPKEEP, playerA, "{2}, {T}:");
setChoice(playerA, "Yes");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, true);
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Silvercoat Lion");

View file

@ -34,19 +34,19 @@ public class MimicVatTest extends CardTestPlayerBase {
// clone the opponent's creature
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Clone");
setChoice(playerA, "Yes"); // use clone on etb
setChoice(playerA, true); // use clone on etb
setChoice(playerA, "Silvercoat Lion");
// kill clone and exile it (imprint into vat)
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}, {T}, Sacrifice a creature");
setChoice(playerA, "Silvercoat Lion");
setChoice(playerA, "Yes"); // exile killed card by vat
setChoice(playerA, true); // exile killed card by vat
// turn 3
// create a token from exile (imprinted card: clone)
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{3}, {T}: Create a token");
setChoice(playerA, "Yes"); // use clone on etb
setChoice(playerA, true); // use clone on etb
setChoice(playerA, "Silvercoat Lion");
setStrictChooseMode(true);
@ -74,13 +74,13 @@ public class MimicVatTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Phyrexian Metamorph");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Silvercoat Lion");
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2}, {T}, Sacrifice a creature");
setChoice(playerA, "Yes");
setChoice(playerA, true);
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{3}, {T}: Create a token that's a copy of a card exiled with ");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Silvercoat Lion");
setStopAt(3, PhaseStep.BEGIN_COMBAT);
@ -115,14 +115,14 @@ public class MimicVatTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", "Silvercoat Lion");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Silvercoat Lion");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Shred Memory", "Silvercoat Lion", "Whenever a nontoken creature dies");
setChoice(playerA, "Yes");
setChoice(playerA, true);
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{3}, {T}: Create a token that's a copy of a card exiled with ");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Silvercoat Lion");
setStopAt(3, PhaseStep.BEGIN_COMBAT);

View file

@ -31,7 +31,7 @@ public class MirrorworksTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Mirrorworks", 1); // Artifact {5}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Mox Diamond");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -56,7 +56,7 @@ public class MirrorworksTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Mirrorworks", 1); // Artifact {5}
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Mox Diamond");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -29,7 +29,7 @@ public class ReversalOfFortuneTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Reversal of Fortune", playerB);
setChoice(playerA, "Lightning Bolt"); // select to copy
setChoice(playerA, "Yes"); // cast copy
setChoice(playerA, true); // cast copy
setStopAt(1, PhaseStep.END_TURN);
execute();
@ -49,7 +49,7 @@ public class ReversalOfFortuneTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Reversal of Fortune", playerB);
addTarget(playerA, "Lightning Bolt");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.END_TURN);
execute();

View file

@ -52,29 +52,29 @@ public class SharuumTheHegemonTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Blood Artist", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Clone");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Sharuum the Hegemon"); // what creature to clone
addTarget(playerA, "Sharuum the Hegemon[only copy]"); // which legend to keep
setChoice(playerA, "Whenever {this} or another creature dies"); // blood first
addTarget(playerA, playerB); // damage by blood
setChoice(playerA, "Yes"); // return
setChoice(playerA, true); // return
addTarget(playerA, "Sharuum the Hegemon"); // return real sharuum
addTarget(playerA, "Sharuum the Hegemon[only copy]"); // which legend to keep
setChoice(playerA, "Whenever {this} or another creature dies"); // blood first
addTarget(playerA, playerB); // damage by blood
setChoice(playerA, "Yes"); // return
setChoice(playerA, true); // return
addTarget(playerA, "Sharuum the Hegemon"); // return real sharuum
addTarget(playerA, "Sharuum the Hegemon[only copy]"); // which legend to keep
setChoice(playerA, "Whenever {this} or another creature dies"); // blood first
addTarget(playerA, playerB); // damage by blood
setChoice(playerA, "Yes"); // return
setChoice(playerA, true); // return
addTarget(playerA, "Sharuum the Hegemon"); // return real sharuum
addTarget(playerA, "Sharuum the Hegemon[only copy]"); // which legend to keep
setChoice(playerA, "No"); // Don't use it anymore
setChoice(playerA, false); // Don't use it anymore
setStopAt(1, PhaseStep.END_TURN);
execute();

View file

@ -40,7 +40,7 @@ public class SparkDoubleTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Island", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Abbey Griffin");
setStrictChooseMode(true);
@ -66,7 +66,7 @@ public class SparkDoubleTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Island", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Ajani, the Greathearted");
setChoice(playerA, "Ajani, the Greathearted"); // two etb effects (own + copy)
@ -90,7 +90,7 @@ public class SparkDoubleTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Island", 4);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Abbey Griffin");
setStrictChooseMode(true);
@ -118,7 +118,7 @@ public class SparkDoubleTest extends CardTestPlayerBase {
// copy
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Gideon, Ally of Zendikar");
setChoice(playerA, "Gideon, Ally of Zendikar"); // two etb effects (own + copy)
@ -147,7 +147,7 @@ public class SparkDoubleTest extends CardTestPlayerBase {
// copy
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Gideon Blackblade");
setStrictChooseMode(true);
@ -188,7 +188,7 @@ public class SparkDoubleTest extends CardTestPlayerBase {
// make copy of legendary creature (it's not legendary now)
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Akroma, Angel of Wrath");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, playerA);
checkPermanentCount("must have copy", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Wrath", 2);
@ -224,7 +224,7 @@ public class SparkDoubleTest extends CardTestPlayerBase {
// make copy of legendary creature (it's not legendary now)
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Akroma, Angel of Wrath");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, playerA);
checkPermanentCount("must have copy", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Wrath", 2);
@ -266,7 +266,7 @@ public class SparkDoubleTest extends CardTestPlayerBase {
// cast first spark
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Grizzly Bears");
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
checkPermanentCount("after 1", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Grizzly Bears", 2);
@ -274,7 +274,7 @@ public class SparkDoubleTest extends CardTestPlayerBase {
// cast second spark
// rules 706.9e affected, so must get only 1 counter
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setChoice(playerA, "Grizzly Bears[only copy]");
//setChoice(playerA, "Grizzly Bears"); // possible bug: two etb effects
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);

View file

@ -70,8 +70,8 @@ public class SpelltwineTest extends CardTestPlayerBase {
addTarget(playerA, "Impulse"); // target 1 to exile
addTarget(playerA, "Blasphemous Act"); // target 2 to exile
setChoice(playerA, "Yes"); // pay {3} and copy spell
setChoice(playerA, "Yes"); // Change targets
setChoice(playerA, true); // pay {3} and copy spell
setChoice(playerA, true); // Change targets
addTarget(playerA, "Night's Whisper");
addTarget(playerA, "Divination");
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -96,7 +96,7 @@ public class CastFromHandWithoutPayingManaCostTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Silvercoat Lion");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -119,7 +119,7 @@ public class CastFromHandWithoutPayingManaCostTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Fire // Ice");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Fire", playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -147,7 +147,7 @@ public class CastFromHandWithoutPayingManaCostTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Shrapnel Blast", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Shrapnel Blast");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -177,7 +177,7 @@ public class CastFromHandWithoutPayingManaCostTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Trinisphere", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -214,7 +214,7 @@ public class CastFromHandWithoutPayingManaCostTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Far // Away");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "fused Far // Away");
setChoice(playerA, "Yes"); // Cast without paying its mana cost?
setChoice(playerA, true); // Cast without paying its mana cost?
addTarget(playerA, "Silvercoat Lion");
addTarget(playerA, playerB);
playerB.addTarget("Pillarfield Ox");
@ -253,7 +253,7 @@ public class CastFromHandWithoutPayingManaCostTest extends CardTestPlayerBase {
skipInitShuffling();
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -287,8 +287,8 @@ public class CastFromHandWithoutPayingManaCostTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Bog Wraith", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Barbed Lightning");
setChoice(playerA, "Yes"); // cast without cost
setChoice(playerA, "Yes"); // pay Entwine
setChoice(playerA, true); // cast without cost
setChoice(playerA, true); // pay Entwine
addTarget(playerA, "Bog Wraith"); // target form mode 1
addTarget(playerA, playerB); // target for mode 2
@ -364,12 +364,12 @@ public class CastFromHandWithoutPayingManaCostTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Bog Wraith", 1); // Creature {3}{B} (3/3)
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Omniscience");
setChoice(playerA, "Yes"); // Pay alternative costs? ({W}{U}{B}{R}{G})
setChoice(playerA, true); // Pay alternative costs? ({W}{U}{B}{R}{G})
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Bog Wraith");
// The order of the two alternate casting abilities is not fixed, so it's not clear which ability is asked for first
setChoice(playerA, "No"); // Pay alternative costs? ({W}{U}{B}{R}{G})
setChoice(playerA, "Yes"); // Cast without paying its mana cost?
setChoice(playerA, false); // Pay alternative costs? ({W}{U}{B}{R}{G})
setChoice(playerA, true); // Cast without paying its mana cost?
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -414,9 +414,9 @@ public class CastFromHandWithoutPayingManaCostTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, jeleva);
attack(3, playerA, jeleva);
setChoice(playerA, "Yes"); // opt to use Jeleva ability
setChoice(playerA, true); // opt to use Jeleva ability
setChoice(playerA, savageBeating); // choose to cast Savage Beating for free
setChoice(playerA, "No"); // opt not to pay entwine cost
setChoice(playerA, false); // opt not to pay entwine cost
setModeChoice(playerA, "1"); // use first mode of Savage Beating granting double strike
setStopAt(3, PhaseStep.END_COMBAT);

View file

@ -22,7 +22,7 @@ public class UseAlternateSourceCostsTest extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Lightning Bolt", 1);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Gray Ogre"); // Cast Orgre by discarding the Lightning Bolt
setChoice(playerA, "Yes"); // Pay alternative costs? (Discard a card that shares a color with that spell)
setChoice(playerA, true); // Pay alternative costs? (Discard a card that shares a color with that spell)
setChoice(playerA, "Lightning Bolt");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -93,7 +93,7 @@ public class UseAlternateSourceCostsTest extends CardTestPlayerBase {
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Abolish", true);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Abolish", "Alpha Myr");
setChoice(playerA, "Yes"); // use alternative cost
setChoice(playerA, true); // use alternative cost
setChoice(playerA, "Plains");
setStrictChooseMode(true);
@ -118,7 +118,7 @@ public class UseAlternateSourceCostsTest extends CardTestPlayerBase {
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Abolish", true);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Abolish", "Alpha Myr");
setChoice(playerA, "Yes"); // use alternative cost
setChoice(playerA, true); // use alternative cost
setChoice(playerA, "Plains");
setStrictChooseMode(true);
@ -158,7 +158,7 @@ public class UseAlternateSourceCostsTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Invigorate", "Silvercoat Lion");
setChoice(playerA, "Yes"); // use alternative cost
setChoice(playerA, true); // use alternative cost
addTarget(playerA, playerB); // Opponent to gain live
setStrictChooseMode(true);

View file

@ -19,7 +19,7 @@ public class GatekeeperOfMalakirTest extends CardTestPlayerBase {
// Kicker {B} (You may pay an additional {B} as you cast this spell.)
// When Gatekeeper of Malakir enters the battlefield, if it was kicked, target player sacrifices a creature.
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Gatekeeper of Malakir");
setChoice(playerA, "Yes"); // use kicker
setChoice(playerA, true); // use kicker
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -670,7 +670,7 @@ public class ModalDoubleFacesCardsTest extends CardTestPlayerBase {
// cast and make copy of bear
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Glasspool Mimic");
setChoice(playerA, "Yes"); // as copy
setChoice(playerA, true); // as copy
setChoice(playerA, "Balduvian Bears"); // copy of
setStrictChooseMode(true);
@ -695,16 +695,16 @@ public class ModalDoubleFacesCardsTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Aether Vial", 1);
// prepare charge counters
setChoice(playerA, "Yes"); // +1 charge on turn 1
setChoice(playerA, "Yes"); // +1 charge on turn 3
setChoice(playerA, "Yes"); // +1 charge on turn 5
setChoice(playerA, true); // +1 charge on turn 1
setChoice(playerA, true); // +1 charge on turn 3
setChoice(playerA, true); // +1 charge on turn 5
// put card from hand to battlefield
activateAbility(5, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: You may put a creature card");
setChoice(playerA, "Yes"); // put card
setChoice(playerA, true); // put card
setChoice(playerA, "Glasspool Mimic"); // select card with cmc 3 from hand
//
setChoice(playerA, "Yes"); // put to battlefield as copy
setChoice(playerA, true); // put to battlefield as copy
setChoice(playerA, "Balduvian Bears"); // copy of
setStrictChooseMode(true);
@ -820,7 +820,7 @@ public class ModalDoubleFacesCardsTest extends CardTestPlayerBase {
// play elf with cascade
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Bloodbraid Elf");
setChoice(playerA, "Yes"); // use free cast
setChoice(playerA, true); // use free cast
//setChoice(playerA, "Cast Valki, God of Lies"); possible bug: you can see two spell abilities to choose, but only one allows here
setChoice(playerA, TestPlayer.CHOICE_SKIP); // no choices for valki's etb exile
@ -853,7 +853,7 @@ public class ModalDoubleFacesCardsTest extends CardTestPlayerBase {
// play elf with cascade
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Bloodbraid Elf");
setChoice(playerA, "Yes"); // use free cast
setChoice(playerA, true); // use free cast
setChoice(playerA, "Cast The Omenkeel"); // can cast any side here
setStrictChooseMode(true);

View file

@ -204,7 +204,7 @@ public class CostModificationTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion");
playLand(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zoetic Cavern");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.END_TURN);
execute();
@ -410,7 +410,7 @@ public class CostModificationTest extends CardTestPlayerBase {
// Vivien: make cost +2 instead +1 (total 7 counters)
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "+1: Look at the top four");
setChoice(playerA, "No");
setChoice(playerA, false);
checkPermanentCounters("Vivien Reid counter check", 1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Vivien Reid", CounterType.LOYALTY, 7);
// loyalty cost modification doesn't affect card rule's text, so it still shown an old cost value for a user
@ -467,10 +467,10 @@ public class CostModificationTest extends CardTestPlayerBase {
// prepare duplicates
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes"); // copy
setChoice(playerA, true); // copy
setChoice(playerA, "Carth the Lion"); // copy target
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spark Double");
setChoice(playerA, "Yes"); // copy
setChoice(playerA, true); // copy
setChoice(playerA, "Carth the Lion"); // copy target
// x3 lions gives +3 in cost reduction (-8 -> -5)

View file

@ -29,7 +29,7 @@ public class HeartstoneTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", playerA);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}{U}, Tap two untapped Wizards you control: Copy target instant or sorcery spell. You may choose new targets for the copy.", "Lightning Bolt");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, playerB);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -80,7 +80,7 @@ public class MizzixOfTheIzmagnusTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Seething Anger", "Mizzix of the Izmagnus");
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -26,7 +26,7 @@ public class OptionalSacrificeTests extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Relic of Progenitus");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Glint Hawk");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Relic of Progenitus");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -53,7 +53,7 @@ public class OptionalSacrificeTests extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Relic of Progenitus");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Glint Hawk");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -78,7 +78,7 @@ public class OptionalSacrificeTests extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Glint Hawk");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Glint Hawk");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -102,7 +102,7 @@ public class OptionalSacrificeTests extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Moat");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Drake Familiar");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Moat");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -130,7 +130,7 @@ public class OptionalSacrificeTests extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Propaganda");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Drake Familiar");
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, "Propaganda");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -156,7 +156,7 @@ public class OptionalSacrificeTests extends CardTestPlayerBase {
addCard(Zone.HAND, playerA, "Drake Familiar");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Drake Familiar");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -180,7 +180,7 @@ public class OptionalSacrificeTests extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Propaganda");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Drake Familiar");
setChoice(playerA, "No");
setChoice(playerA, false);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -35,7 +35,7 @@ public class CastSplitCardsFromOtherZonesTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Mindclaw Shaman");
addTarget(playerA, playerB);
setChoice(playerA, "Wear // Tear"); // select card
setChoice(playerA, "Yes"); // confirm to cast
setChoice(playerA, true); // confirm to cast
setChoice(playerA, "Cast Tear"); // select tear side
addTarget(playerA, "Sanguine Bond"); // target for tear
@ -68,7 +68,7 @@ public class CastSplitCardsFromOtherZonesTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Mindclaw Shaman");
addTarget(playerA, playerB);
setChoice(playerA, "Wear // Tear"); // select card
setChoice(playerA, "Yes"); // confirm to cast
setChoice(playerA, true); // confirm to cast
setChoice(playerA, "Cast Wear"); // select wear side
addTarget(playerA, "Icy Manipulator"); // target for wear
@ -101,7 +101,7 @@ public class CastSplitCardsFromOtherZonesTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Mindclaw Shaman");
addTarget(playerA, playerB);
setChoice(playerA, "Wear // Tear"); // select card
setChoice(playerA, "Yes"); // confirm to cast
setChoice(playerA, true); // confirm to cast
setChoice(playerA, "Cast fused Wear // Tear"); // select fused
addTarget(playerA, "Icy Manipulator"); // target for wear
addTarget(playerA, "Sanguine Bond"); // target for tear
@ -136,7 +136,7 @@ public class CastSplitCardsFromOtherZonesTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerB, "Etali, Primal Storm"); // Creature {4}{R} 6/6
attack(2, playerB, "Etali, Primal Storm");
setChoice(playerB, "Yes"); // free cast
setChoice(playerB, true); // free cast
setChoice(playerB, "Fire // Ice"); // card to cast
setChoice(playerB, "Cast Fire"); // ability to cast
addTargetAmount(playerB, "Silvercoat Lion", 2);

View file

@ -59,7 +59,7 @@ public class SplitCardCmcTest extends CardTestPlayerBase {
skipInitShuffling(); // so the set to top card stays at top
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Typhoid Rats");
setChoice(playerB, "Yes"); // Reveal to Counterbalance to attempt to counter Typhoid Rats
setChoice(playerB, true); // Reveal to Counterbalance to attempt to counter Typhoid Rats
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -105,7 +105,7 @@ public class DungeonTest extends CardTestPlayerBase {
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -128,10 +128,10 @@ public class DungeonTest extends CardTestPlayerBase {
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -154,10 +154,10 @@ public class DungeonTest extends CardTestPlayerBase {
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
@ -180,9 +180,9 @@ public class DungeonTest extends CardTestPlayerBase {
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "{0}:");
setStopAt(2, PhaseStep.END_TURN);
@ -203,9 +203,9 @@ public class DungeonTest extends CardTestPlayerBase {
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "{0}:");
rollbackTurns(2, PhaseStep.END_TURN, playerA, 0);
@ -228,16 +228,16 @@ public class DungeonTest extends CardTestPlayerBase {
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "{0}:");
rollbackTurns(2, PhaseStep.END_TURN, playerA, 0);
rollbackAfterActionsStart();
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Storeroom
setChoice(playerA, true); // Storeroom
addTarget(playerA, SILVERCOAT_LION);
rollbackAfterActionsEnd();
@ -265,10 +265,10 @@ public class DungeonTest extends CardTestPlayerBase {
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "{0}:");
setChoice(playerB, DUNGEON_OF_THE_MAD_MAGE);
@ -276,7 +276,7 @@ public class DungeonTest extends CardTestPlayerBase {
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "{0}:");
waitStackResolved(1, PhaseStep.POSTCOMBAT_MAIN);
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "{0}:");
setChoice(playerB, "Yes"); // Goblin Bazaar
setChoice(playerB, true); // Goblin Bazaar
waitStackResolved(1, PhaseStep.POSTCOMBAT_MAIN);
activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "{0}:");
@ -305,10 +305,10 @@ public class DungeonTest extends CardTestPlayerBase {
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
@ -346,10 +346,10 @@ public class DungeonTest extends CardTestPlayerBase {
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
@ -370,13 +370,13 @@ public class DungeonTest extends CardTestPlayerBase {
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // return Dungeon Crawler
setChoice(playerA, true); // return Dungeon Crawler
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -396,10 +396,10 @@ public class DungeonTest extends CardTestPlayerBase {
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -423,10 +423,10 @@ public class DungeonTest extends CardTestPlayerBase {
setChoice(playerA, LOST_MINE_OF_PHANDELVER);
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "Yes"); // Goblin Lair
setChoice(playerA, true); // Goblin Lair
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{0}:");
setChoice(playerA, "No"); // Dark Pool
setChoice(playerA, false); // Dark Pool
setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
execute();

View file

@ -50,9 +50,9 @@ public class AuraMovingTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Alexi's Cloak", "Bruna, Light of Alabaster");
attack(2, playerB, "Bruna, Light of Alabaster");
setChoice(playerB, "Yes");
setChoice(playerB, true);
addTarget(playerB, "Hostile Realm");
setChoice(playerB, "Yes");
setChoice(playerB, true);
addTarget(playerB, "Unholy Strength");
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);

View file

@ -32,7 +32,7 @@ public class CircleOfAfflictionTest extends CardTestPlayerBase {
attack(2, playerB, "Hill Giant");
addTarget(playerA, playerB); // Circle of Affliction drain ability
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -60,9 +60,9 @@ public class CircleOfAfflictionTest extends CardTestPlayerBase {
attack(2, playerB, "Silvercoat Lion");
attack(2, playerB, "Silvercoat Lion");
addTarget(playerA, playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);
execute();
@ -93,18 +93,18 @@ public class CircleOfAfflictionTest extends CardTestPlayerBase {
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Lava Spike", playerA);
addTarget(playerA, playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
attack(2, playerB, "Hill Giant");
attack(2, playerB, "Hill Giant");
addTarget(playerA, playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lava Spike", playerA);
addTarget(playerA, playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(2, PhaseStep.END_TURN);
execute();
@ -135,9 +135,9 @@ public class CircleOfAfflictionTest extends CardTestPlayerBase {
attack(2, playerB, "Silvercoat Lion");
attack(2, playerB, "Hill Giant");
addTarget(playerA, playerB);
setChoice(playerA, "Yes");
setChoice(playerA, true);
addTarget(playerA, playerB); // should not be able to drain Hill Giant with white selected
setChoice(playerA, "Yes");
setChoice(playerA, true);
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);
execute();

View file

@ -74,7 +74,7 @@ public class EnchantingGraveyardCardsTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, SPELLWEAVER_VOLUTE, LIGHTNING_BOLT);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cloak of Feathers", "Silvercoat Lion");
setChoice(playerA, "Yes"); // play the L. Bold
setChoice(playerA, true); // play the L. Bold
addTarget(playerA, playerB); // Add Target for the L. Bold
setStopAt(1, PhaseStep.BEGIN_COMBAT);
@ -120,7 +120,7 @@ public class EnchantingGraveyardCardsTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, SPELLWEAVER_VOLUTE, LIGHTNING_BOLT);
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cloak of Feathers", "Silvercoat Lion");
setChoice(playerA, "Yes"); // play the L. Bold
setChoice(playerA, true); // play the L. Bold
addTarget(playerA, playerB); // Add Target for the L. Bold
setStopAt(1, PhaseStep.BEGIN_COMBAT);

View file

@ -28,7 +28,7 @@ public class MindsDilationTest extends CardTestPlayerBase {
skipInitShuffling();
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
setChoice(playerB, "Yes");
setChoice(playerB, true);
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
@ -55,7 +55,7 @@ public class MindsDilationTest extends CardTestPlayerBase {
addCard(Zone.LIBRARY, playerA, "Divination", 1); // draw 2 cards
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Lightning Bolt", playerB);
setChoice(playerB, "No"); // no, I don't want my free 2 cards
setChoice(playerB, false); // no, I don't want my free 2 cards
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();

View file

@ -25,7 +25,7 @@ public class OathOfLiegesTest extends CardTestPlayerBase {
// turn 1 - A
// oath A triggers for A and activates
addTarget(playerA, playerB); // who control more lands
setChoice(playerA, "Yes"); // search library
setChoice(playerA, true); // search library
addTarget(playerA, "Plains"); // card from library
setStopAt(1, PhaseStep.END_TURN);
@ -57,7 +57,7 @@ public class OathOfLiegesTest extends CardTestPlayerBase {
// turn 2 - B
// oath A triggers for B and activates
addTarget(playerB, playerA); // who control more lands
setChoice(playerB, "Yes"); // search library
setChoice(playerB, true); // search library
addTarget(playerB, "Plains"); // card from library
setStopAt(2, PhaseStep.END_TURN);
@ -81,7 +81,7 @@ public class OathOfLiegesTest extends CardTestPlayerBase {
// turn 1 - A
// oath B triggers for A and activates
addTarget(playerA, playerB); // who control more lands
setChoice(playerA, "Yes"); // search library
setChoice(playerA, true); // search library
addTarget(playerA, "Plains"); // card from library
setStopAt(1, PhaseStep.END_TURN);
@ -106,11 +106,11 @@ public class OathOfLiegesTest extends CardTestPlayerBase {
// oath B triggers for A and activates
// 1
addTarget(playerA, playerB); // who control more lands
setChoice(playerA, "Yes"); // search library
setChoice(playerA, true); // search library
addTarget(playerA, "Plains"); // card from library
// 2
addTarget(playerA, playerB); // who control more lands
setChoice(playerA, "Yes"); // search library
setChoice(playerA, true); // search library
addTarget(playerA, "Plains"); // card from library
setStopAt(1, PhaseStep.END_TURN);
@ -142,7 +142,7 @@ public class OathOfLiegesTest extends CardTestPlayerBase {
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Replenish");
// cast oath copy
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Copy Enchantment");
setChoice(playerA, "Yes"); // use copy effect
setChoice(playerA, true); // use copy effect
setChoice(playerA, "Oath of Lieges"); // target for copy
checkPermanentCount("A have 2 oath", 1, PhaseStep.END_TURN, playerA, "Oath of Lieges", 2);
checkPermanentCount("A have 10 plains", 1, PhaseStep.END_TURN, playerA, "Plains", 10);
@ -161,11 +161,11 @@ public class OathOfLiegesTest extends CardTestPlayerBase {
setChoice(playerA, "At the beginning of each player's upkeep"); // two triggers on upkeep
// 1
addTarget(playerA, playerB); // who control more lands
setChoice(playerA, "Yes"); // search library
setChoice(playerA, true); // search library
addTarget(playerA, "Plains"); // card from library
// 2
addTarget(playerA, playerB); // who control more lands
setChoice(playerA, "Yes"); // search library
setChoice(playerA, true); // search library
addTarget(playerA, "Plains"); // card from library
setStrictChooseMode(true);
@ -201,7 +201,7 @@ public class OathOfLiegesTest extends CardTestPlayerBase {
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerA, "Replenish");
// cast oath copy by opponent
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Copy Enchantment");
setChoice(playerB, "Yes"); // use copy effect
setChoice(playerB, true); // use copy effect
setChoice(playerB, "Oath of Lieges"); // target for copy
checkPermanentCount("A have 1 oath", 2, PhaseStep.END_TURN, playerA, "Oath of Lieges", 1);
checkPermanentCount("B have 1 oath", 2, PhaseStep.END_TURN, playerA, "Oath of Lieges", 1);
@ -213,11 +213,11 @@ public class OathOfLiegesTest extends CardTestPlayerBase {
// copy oath B triggers for A and activates
// 1
addTarget(playerA, playerB); // who control more lands
setChoice(playerA, "Yes"); // search library
setChoice(playerA, true); // search library
addTarget(playerA, "Plains"); // card from library
// 2
addTarget(playerA, playerB); // who control more lands
setChoice(playerA, "Yes"); // search library
setChoice(playerA, true); // search library
addTarget(playerA, "Plains"); // card from library
setStopAt(3, PhaseStep.END_TURN);

Some files were not shown because too many files have changed in this diff Show more