mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 03:22:00 -08:00
Convert tests to new format
This commit is contained in:
parent
3e4d439d18
commit
1220b73961
16 changed files with 56 additions and 107 deletions
|
|
@ -21,8 +21,7 @@ public class MegamorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, "Aerie Bowmasters", 1);
|
addCard(Zone.HAND, playerA, "Aerie Bowmasters", 1);
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 6);
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 6);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aerie Bowmasters");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Aerie Bowmasters using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{5}{G}: Turn");
|
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{5}{G}: Turn");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,6 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 5);
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 5);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
||||||
setChoice(playerA, false); // cast it normal as 5/5
|
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
@ -49,8 +48,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, "Pine Walker");
|
addCard(Zone.HAND, playerA, "Pine Walker");
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
@ -68,8 +66,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, "Pine Walker");
|
addCard(Zone.HAND, playerA, "Pine Walker");
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 5);
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 5);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
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());
|
||||||
|
|
||||||
|
|
@ -99,10 +96,8 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 3);
|
addCard(Zone.BATTLEFIELD, playerA, "Island", 3);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Icefeather Aven using Morph", TestPlayer.NO_TARGET, "Pine Walker", StackClause.WHILE_NOT_ON_STACK);
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Icefeather Aven", TestPlayer.NO_TARGET, "Pine Walker", StackClause.WHILE_NOT_ON_STACK);
|
|
||||||
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());
|
||||||
attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
|
attack(3, playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
|
||||||
|
|
@ -141,8 +136,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Soldier of the Pantheon", 1);
|
addCard(Zone.BATTLEFIELD, playerB, "Soldier of the Pantheon", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ponyback Brigade");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ponyback Brigade using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
@ -199,8 +193,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Doomwake Giant", 1);
|
addCard(Zone.HAND, playerB, "Doomwake Giant", 1);
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 5);
|
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 5);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Doomwake Giant");
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Doomwake Giant");
|
||||||
|
|
||||||
|
|
@ -241,8 +234,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Doomwake Giant", 1);
|
addCard(Zone.HAND, playerB, "Doomwake Giant", 1);
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 5);
|
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 5);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ponyback Brigade");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ponyback Brigade using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Doomwake Giant");
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Doomwake Giant");
|
||||||
|
|
||||||
|
|
@ -278,8 +270,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
|
addCard(Zone.BATTLEFIELD, playerA, "Island", 2);
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler using Morph");
|
||||||
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.");
|
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{3}{G}{U}: Turn this face-down permanent face up.");
|
||||||
castSpell(5, PhaseStep.PRECOMBAT_MAIN, playerA, "Clone");
|
castSpell(5, PhaseStep.PRECOMBAT_MAIN, playerA, "Clone");
|
||||||
setChoice(playerA, "Sagu Mauler");
|
setChoice(playerA, "Sagu Mauler");
|
||||||
|
|
@ -315,8 +306,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Disdainful Stroke");
|
addCard(Zone.HAND, playerB, "Disdainful Stroke");
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
checkPlayableAbility("Can't Disdainful Stroke Sagu", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Disdainful", false);
|
checkPlayableAbility("Can't Disdainful Stroke Sagu", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Disdainful", false);
|
||||||
|
|
||||||
|
|
@ -352,10 +342,8 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Echoing Decay");
|
addCard(Zone.HAND, playerB, "Echoing Decay");
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 2);
|
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 2);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler using Morph", TestPlayer.NO_TARGET, "Sagu Mauler", StackClause.WHILE_NOT_ON_STACK);
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sagu Mauler", TestPlayer.NO_TARGET, "Sagu Mauler", StackClause.WHILE_NOT_ON_STACK);
|
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
// showBattlefield("A battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerA);
|
// showBattlefield("A battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerA);
|
||||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Echoing Decay", EmptyNames.FACE_DOWN_CREATURE.toString());
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Echoing Decay", EmptyNames.FACE_DOWN_CREATURE.toString());
|
||||||
|
|
@ -389,8 +377,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Counterspell", 1);
|
addCard(Zone.HAND, playerB, "Counterspell", 1);
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Counterspell", "Akroma, Angel of Fury");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Counterspell", "Akroma, Angel of Fury");
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
@ -415,8 +402,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Swords to Plowshares", 1);
|
addCard(Zone.HAND, playerB, "Swords to Plowshares", 1);
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Plains", 1);
|
addCard(Zone.BATTLEFIELD, playerB, "Plains", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Birchlore Rangers");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Birchlore Rangers using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Swords to Plowshares", "");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Swords to Plowshares", "");
|
||||||
|
|
@ -455,8 +441,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Lightning Bolt", 1);
|
addCard(Zone.HAND, playerB, "Lightning Bolt", 1);
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1);
|
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
|
||||||
|
|
@ -496,8 +481,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
// (This creature deals combat damage before creatures without first strike, it can't be blocked as long as defending player controls a Forest, and attacking doesn't cause this creature to tap.)
|
// (This creature deals combat damage before creatures without first strike, it can't be blocked as long as defending player controls a Forest, and attacking doesn't cause this creature to tap.)
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Mirri, Cat Warrior");
|
addCard(Zone.BATTLEFIELD, playerB, "Mirri, Cat Warrior");
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
attack(2, playerB, "Mirri, Cat Warrior");
|
attack(2, playerB, "Mirri, Cat Warrior");
|
||||||
block(2, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), "Mirri, Cat Warrior");
|
block(2, playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), "Mirri, Cat Warrior");
|
||||||
|
|
@ -536,8 +520,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
// showBattlefield("A battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerA);
|
// showBattlefield("A battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerA);
|
||||||
// showBattlefield("B battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerB);
|
// showBattlefield("B battle", 1, PhaseStep.POSTCOMBAT_MAIN, playerB);
|
||||||
|
|
||||||
|
|
@ -576,8 +559,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
// Whenever an opponent casts a creature or planeswalker spell with the same name as a card in their graveyard, that player loses 10 life.
|
// Whenever an opponent casts a creature or planeswalker spell with the same name as a card in their graveyard, that player loses 10 life.
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Dragonlord Kolaghan", 1);
|
addCard(Zone.BATTLEFIELD, playerB, "Dragonlord Kolaghan", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
@ -606,8 +588,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
*/
|
*/
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Linvala, Keeper of Silence", 1);
|
addCard(Zone.BATTLEFIELD, playerB, "Linvala, Keeper of Silence", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
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());
|
||||||
|
|
||||||
|
|
@ -656,7 +637,6 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
// try cast as normal -- must not work
|
// try cast as normal -- must not work
|
||||||
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Rattleclaw Mystic");
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Rattleclaw Mystic");
|
||||||
setChoice(playerB, false);
|
|
||||||
|
|
||||||
setStopAt(2, PhaseStep.BEGIN_COMBAT);
|
setStopAt(2, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
||||||
|
|
@ -695,8 +675,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addTarget(playerA, "Rattleclaw Mystic");
|
addTarget(playerA, "Rattleclaw Mystic");
|
||||||
|
|
||||||
// try cast as morph - must work
|
// try cast as morph - must work
|
||||||
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Rattleclaw Mystic");
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Rattleclaw Mystic using Morph");
|
||||||
setChoice(playerB, true); // try cast as morph
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(2, PhaseStep.BEGIN_COMBAT);
|
setStopAt(2, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
@ -736,13 +715,11 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Plains", 2);
|
addCard(Zone.BATTLEFIELD, playerB, "Plains", 2);
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Rattleclaw Mystic");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Rattleclaw Mystic using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Reflector Mage");
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Reflector Mage");
|
||||||
|
|
||||||
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Rattleclaw Mystic");
|
castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Rattleclaw Mystic");
|
||||||
setChoice(playerA, false); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStopAt(3, PhaseStep.BEGIN_COMBAT);
|
setStopAt(3, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
||||||
|
|
@ -781,8 +758,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Island", 5);
|
addCard(Zone.BATTLEFIELD, playerB, "Island", 5);
|
||||||
|
|
||||||
// 1. Cast Vesuvan as face-down
|
// 1. Cast Vesuvan as face-down
|
||||||
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Vesuvan Shapeshifter");
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Vesuvan Shapeshifter using Morph");
|
||||||
setChoice(playerB, true); // cast as face-down
|
|
||||||
|
|
||||||
// 2. Moth Vesuvan and copy brine
|
// 2. Moth Vesuvan and copy brine
|
||||||
activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "{1}{U}: Turn this face-down permanent");
|
activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "{1}{U}: Turn this face-down permanent");
|
||||||
|
|
@ -823,8 +799,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Fatal Push"); // Instant {B}
|
addCard(Zone.HAND, playerB, "Fatal Push"); // Instant {B}
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 1);
|
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Fatal Push");
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Fatal Push");
|
||||||
|
|
||||||
|
|
@ -861,8 +836,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
// Whenever one or more Dragons you control attack, draw that many cards, then you may put a permanent card from your hand onto the battlefield
|
// Whenever one or more Dragons you control attack, draw that many cards, then you may put a permanent card from your hand onto the battlefield
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "The Ur-Dragon", 1);
|
addCard(Zone.BATTLEFIELD, playerA, "The Ur-Dragon", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Quicksilver Dragon");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Quicksilver Dragon using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
@ -899,8 +873,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerB, "Lightning Bolt");
|
addCard(Zone.HAND, playerB, "Lightning Bolt");
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1);
|
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Quicksilver Dragon");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Quicksilver Dragon using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", EmptyNames.FACE_DOWN_CREATURE.toString());
|
||||||
|
|
@ -941,8 +914,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, "Akroma, Angel of Fury");
|
addCard(Zone.HAND, playerA, "Akroma, Angel of Fury");
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 6);
|
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 6);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Akroma, Angel of Fury using Morph");
|
||||||
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.");
|
activateAbility(3, PhaseStep.PRECOMBAT_MAIN, playerA, "{3}{R}{R}{R}: Turn this face-down permanent face up.");
|
||||||
|
|
||||||
|
|
@ -962,7 +934,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
|
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
|
||||||
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern");
|
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern");
|
||||||
setChoice(playerA, false); // no morph (canPay for generic/colored mana returns true all the time, so xmage ask about face down cast)
|
// no morph (canPay for generic/colored mana returns true all the time, so xmage ask about face down cast)
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
|
@ -979,8 +951,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
|
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);
|
checkPlayableAbility("morph must be replaced by play ability", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Morph", false);
|
||||||
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern using Morph");
|
||||||
setChoice(playerA, true); // morph
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
|
@ -1000,14 +971,12 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
//
|
//
|
||||||
addCard(Zone.HAND, playerA, "Island", 1);
|
addCard(Zone.HAND, playerA, "Island", 1);
|
||||||
|
|
||||||
|
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
|
||||||
// play land first
|
// play land first
|
||||||
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Island");
|
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Island");
|
||||||
|
|
||||||
// morph ability (play as face down) calls from playLand method, so it visible for play land command
|
checkPlayableAbility("after", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", false);
|
||||||
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern using Morph");
|
||||||
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, true); // morph
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
|
@ -1031,8 +1000,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
checkPlayableAbility("before", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Play Zoetic Cavern", true);
|
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);
|
checkPlayableAbility("morph must be replaced by play ability", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Morph", false);
|
||||||
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern using Morph");
|
||||||
setChoice(playerA, true); // morph
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
|
@ -1074,8 +1042,7 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Nylea, Keen-Eyed");
|
addCard(Zone.BATTLEFIELD, playerA, "Nylea, Keen-Eyed");
|
||||||
|
|
||||||
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", true);
|
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", true);
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender using Morph");
|
||||||
setChoice(playerA, true); // morph
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
|
@ -1095,9 +1062,8 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
// Face-down creature spells you cast cost {1} less to cast.
|
// Face-down creature spells you cast cost {1} less to cast.
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Dream Chisel");
|
addCard(Zone.BATTLEFIELD, playerA, "Dream Chisel");
|
||||||
|
|
||||||
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", true);
|
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender using Morph", true);
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender using Morph");
|
||||||
setChoice(playerA, true); // morph
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
|
@ -1118,17 +1084,16 @@ public class MorphTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Kadena, Slinking Sorcerer");
|
addCard(Zone.BATTLEFIELD, playerA, "Kadena, Slinking Sorcerer");
|
||||||
|
|
||||||
// creature one - get cost reduce
|
// creature one - get cost reduce
|
||||||
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", true);
|
checkPlayableAbility("can", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender using Morph", true);
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender using Morph");
|
||||||
setChoice(playerA, true); // morph
|
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
// creature two - do not get cost reduce
|
// creature two - do not get cost reduce
|
||||||
checkPlayableAbility("can't by no reduce", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", false);
|
checkPlayableAbility("can't by no reduce", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender using Morph", false);
|
||||||
|
|
||||||
// on next turn it can cost reduce again
|
// on next turn it can cost reduce again
|
||||||
checkPlayableAbility("can't by not your turn", 2, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", false);
|
checkPlayableAbility("can't by not your turn", 2, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender using Morph", false);
|
||||||
checkPlayableAbility("can", 3, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender", true);
|
checkPlayableAbility("can", 3, PhaseStep.PRECOMBAT_MAIN, playerA, "Cast Willbender using Morph", true);
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(3, PhaseStep.END_TURN);
|
setStopAt(3, PhaseStep.END_TURN);
|
||||||
|
|
|
||||||
|
|
@ -91,8 +91,7 @@ public class ExileAndReturnUnderYourControl extends CardTestPlayerBase {
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Master of Pearls", true);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Master of Pearls using Morph", true);
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Villainous Wealth", playerB);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Villainous Wealth", playerB);
|
||||||
setChoice(playerA, "X=3");
|
setChoice(playerA, "X=3");
|
||||||
|
|
|
||||||
|
|
@ -215,8 +215,7 @@ public class CostModificationTest extends CardTestPlayerBase {
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion", true);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion", true);
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion", true);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion", true);
|
||||||
|
|
||||||
playLand(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zoetic Cavern");
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Zoetic Cavern using Morph");
|
||||||
setChoice(playerA, true);
|
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
execute();
|
execute();
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,7 @@ public class GrimHaruspexTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, "Grim Haruspex");
|
addCard(Zone.HAND, playerA, "Grim Haruspex");
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 7);
|
addCard(Zone.BATTLEFIELD, playerA, "Plains", 7);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Grim Haruspex", true);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Grim Haruspex using Morph", true);
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Wrath of God");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Wrath of God");
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.END_COMBAT);
|
setStopAt(1, PhaseStep.END_COMBAT);
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,7 @@ public class PrimordialMistTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, "Brine Elemental"); // Creature {5}{U}{U} (5/4)
|
addCard(Zone.HAND, playerA, "Brine Elemental"); // Creature {5}{U}{U} (5/4)
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 9);
|
addCard(Zone.BATTLEFIELD, playerA, "Island", 9);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Brine Elemental");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Brine Elemental using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, playerA);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, playerA);
|
||||||
|
|
||||||
|
|
@ -39,7 +38,6 @@ public class PrimordialMistTest extends CardTestPlayerBase {
|
||||||
setChoice(playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
|
setChoice(playerA, EmptyNames.FACE_DOWN_CREATURE.toString());
|
||||||
|
|
||||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Brine Elemental");
|
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Brine Elemental");
|
||||||
setChoice(playerA, false); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setChoice(playerA, true);
|
setChoice(playerA, true);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -199,7 +199,6 @@ public class PrimalClayTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 4);
|
addCard(Zone.BATTLEFIELD, playerA, "Island", 4);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, aquamorph);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, aquamorph);
|
||||||
setChoice(playerA, false); // not using morph
|
|
||||||
setChoice(playerA, "a 5/1 creature");
|
setChoice(playerA, "a 5/1 creature");
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
|
|
@ -218,8 +217,7 @@ public class PrimalClayTest extends CardTestPlayerBase {
|
||||||
// Target creature you control gets +2/+2 until end of turn if its power is 2. Then it fights target creature you don’t control.
|
// Target creature you control gets +2/+2 until end of turn if its power is 2. Then it fights target creature you don’t control.
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Siege Mastodon", 1); // 3/5 creature for fighting
|
addCard(Zone.BATTLEFIELD, playerB, "Siege Mastodon", 1); // 3/5 creature for fighting
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, aquamorph);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, aquamorph+" using Morph");
|
||||||
setChoice(playerA, true); // cast facedown as 2/2
|
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Savage Swipe");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Savage Swipe");
|
||||||
addTarget(playerA, ""); // morph
|
addTarget(playerA, ""); // morph
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,7 @@ public class MeddlingMageTest extends CardTestPlayerBase {
|
||||||
setChoice(playerA, "Ainok Tracker"); // name a spell that can't be cast
|
setChoice(playerA, "Ainok Tracker"); // name a spell that can't be cast
|
||||||
|
|
||||||
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ainok Tracker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ainok Tracker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
|
||||||
|
|
@ -124,8 +124,7 @@ public class CantCastTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, "Pine Walker");
|
addCard(Zone.HAND, playerA, "Pine Walker");
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,7 @@ public class NamePredicateTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, "Pine Walker"); // {3}{G}{G}
|
addCard(Zone.HAND, playerA, "Pine Walker"); // {3}{G}{G}
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
addCard(Zone.BATTLEFIELD, playerA, "Forest", 3);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
|
||||||
|
|
@ -50,8 +50,7 @@ public class MuragandaPetroglyphsTest extends CardTestPlayerBase {
|
||||||
// Creatures with no abilities get +2/+2.
|
// Creatures with no abilities get +2/+2.
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Muraganda Petroglyphs", 1);
|
addCard(Zone.BATTLEFIELD, playerA, "Muraganda Petroglyphs", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
@ -72,8 +71,7 @@ public class MuragandaPetroglyphsTest extends CardTestPlayerBase {
|
||||||
// Creatures with no abilities get +2/+2.
|
// Creatures with no abilities get +2/+2.
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Muraganda Petroglyphs", 1);
|
addCard(Zone.BATTLEFIELD, playerA, "Muraganda Petroglyphs", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStrictChooseMode(true);
|
setStrictChooseMode(true);
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,7 @@ public class InfernalCaretakerTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.GRAVEYARD, playerB, "Festering Goblin", 4);
|
addCard(Zone.GRAVEYARD, playerB, "Festering Goblin", 4);
|
||||||
addCard(Zone.GRAVEYARD, playerB, "Elvish Visionary", 4);
|
addCard(Zone.GRAVEYARD, playerB, "Elvish Visionary", 4);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Infernal Caretaker", true);
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Infernal Caretaker using Morph", true);
|
||||||
setChoice(playerA, true); // Cast as a morph
|
|
||||||
|
|
||||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{3}{B}: Turn this face-down permanent face up.");
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{3}{B}: Turn this face-down permanent face up.");
|
||||||
setStopAt(1, PhaseStep.END_TURN);
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
|
|
||||||
|
|
@ -73,8 +73,7 @@ public class PurphorosGodOfTheForgeTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.HAND, playerA, "Ashcloud Phoenix");
|
addCard(Zone.HAND, playerA, "Ashcloud Phoenix");
|
||||||
|
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ashcloud Phoenix using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,7 @@ public class PossibilityStormTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.LIBRARY, playerA, "Silvercoat Lion");
|
addCard(Zone.LIBRARY, playerA, "Silvercoat Lion");
|
||||||
skipInitShuffling();
|
skipInitShuffling();
|
||||||
|
|
||||||
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern using Morph");
|
||||||
setChoice(playerA, true);
|
|
||||||
|
|
||||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
execute();
|
execute();
|
||||||
|
|
|
||||||
|
|
@ -110,8 +110,7 @@ public class ReturnToBattlefieldEffectsTest extends CardTestPlayerBase {
|
||||||
// {B}{G}: Exile target creature card from a graveyard. It's owner puts a 1/1 black and green Snake enchantment creature token with deathtouch onto the battlefield.
|
// {B}{G}: Exile target creature card from a graveyard. It's owner puts a 1/1 black and green Snake enchantment creature token with deathtouch onto the battlefield.
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Pharika, God of Affliction", 1);
|
addCard(Zone.BATTLEFIELD, playerB, "Pharika, God of Affliction", 1);
|
||||||
|
|
||||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker");
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Pine Walker using Morph");
|
||||||
setChoice(playerA, true); // cast it face down as 2/2 creature
|
|
||||||
|
|
||||||
activateAbility(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "{4}{G}: Turn this face-down permanent face up.");
|
activateAbility(3, PhaseStep.POSTCOMBAT_MAIN, playerA, "{4}{G}: Turn this face-down permanent face up.");
|
||||||
activateAbility(3, PhaseStep.POSTCOMBAT_MAIN, playerB, "{B}{G}: Exile target creature card from a graveyard",
|
activateAbility(3, PhaseStep.POSTCOMBAT_MAIN, playerB, "{B}{G}: Exile target creature card from a graveyard",
|
||||||
|
|
|
||||||
|
|
@ -81,11 +81,12 @@ public class MorphAbility extends SpellAbility {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MorphAbility(Card card, Cost morphCost, boolean megamorph) {
|
public MorphAbility(Card card, Cost morphCost, boolean megamorph) {
|
||||||
super(new GenericManaCost(3), card.getName() + " with " + ABILITY_KEYWORD);
|
super(new GenericManaCost(3), card.getName());
|
||||||
this.morphCosts = new CostsImpl<>();
|
this.morphCosts = new CostsImpl<>();
|
||||||
this.morphCosts.add(morphCost);
|
this.morphCosts.add(morphCost);
|
||||||
this.megamorph = megamorph;
|
this.megamorph = megamorph;
|
||||||
this.setSpellAbilityCastMode(SpellAbilityCastMode.MORPH);
|
this.setSpellAbilityCastMode(SpellAbilityCastMode.MORPH);
|
||||||
|
//this.setSpellAbilityType(SpellAbilityType.FACE_DOWN_CREATURE);
|
||||||
this.setWorksFaceDown(true);
|
this.setWorksFaceDown(true);
|
||||||
Ability ability = new SimpleStaticAbility(new BecomesFaceDownCreatureEffect(
|
Ability ability = new SimpleStaticAbility(new BecomesFaceDownCreatureEffect(
|
||||||
morphCosts, (megamorph ? FaceDownType.MEGAMORPHED : FaceDownType.MORPHED)));
|
morphCosts, (megamorph ? FaceDownType.MEGAMORPHED : FaceDownType.MORPHED)));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue