mirror of
https://github.com/magefree/mage.git
synced 2026-01-10 21:02:08 -08:00
* SOURCE_CAST_SPELL_ABILITY check for sourceId added.
This commit is contained in:
parent
5545aa02b5
commit
fa14128486
29 changed files with 183 additions and 141 deletions
|
|
@ -36,14 +36,31 @@ import org.mage.test.serverside.base.CardTestPlayerBase;
|
|||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
|
||||
public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
|
||||
|
||||
@Test
|
||||
public void testWorldheartPhoenixNormal() {
|
||||
// Creature - Phoenix {3}{R}
|
||||
// Flying
|
||||
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
|
||||
// If you do, it enters the battlefield with two +1/+1 counters on it.
|
||||
addCard(Zone.HAND, playerA, "Worldheart Phoenix");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Worldheart Phoenix"); // can only be cast by {W}{U}{B}{R}{G}
|
||||
|
||||
setStopAt(1, PhaseStep.END_COMBAT);
|
||||
execute();
|
||||
|
||||
assertPowerToughness(playerA, "Worldheart Phoenix", 2, 2);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWorldheartPhoenixNoMana() {
|
||||
// Creature - Phoenix {3}{R}
|
||||
// Flying
|
||||
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
|
||||
// Flying
|
||||
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
|
||||
// If you do, it enters the battlefield with two +1/+1 counters on it.
|
||||
addCard(Zone.GRAVEYARD, playerA, "Worldheart Phoenix");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4);
|
||||
|
|
@ -53,16 +70,15 @@ public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
|
|||
setStopAt(1, PhaseStep.END_COMBAT);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "Worldheart Phoenix", 0);
|
||||
|
||||
}
|
||||
assertPermanentCount(playerA, "Worldheart Phoenix", 0);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWorldheartPhoenix() {
|
||||
// Creature - Phoenix {3}{R}
|
||||
// Flying
|
||||
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
|
||||
// Flying
|
||||
// You may cast Worldheart Phoenix from your graveyard by paying {W}{U}{B}{R}{G} rather than paying its mana cost.
|
||||
// If you do, it enters the battlefield with two +1/+1 counters on it.
|
||||
addCard(Zone.GRAVEYARD, playerA, "Worldheart Phoenix");
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1);
|
||||
|
|
@ -76,11 +92,10 @@ public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
|
|||
setStopAt(1, PhaseStep.END_COMBAT);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "Worldheart Phoenix", 1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
assertPermanentCount(playerA, "Worldheart Phoenix", 1);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNarsetEnlightenedMaster() {
|
||||
// First strike
|
||||
|
|
@ -90,38 +105,36 @@ public class PlayFromNonHandZoneTest extends CardTestPlayerBase {
|
|||
|
||||
skipInitShuffling();
|
||||
addCard(Zone.LIBRARY, playerB, "Silvercoat Lion");
|
||||
addCard(Zone.LIBRARY, playerB, "Abzan Banner");
|
||||
addCard(Zone.LIBRARY, playerB, "Abzan Banner");
|
||||
// Ferocious - If you control a creature with power 4 or greater, you may cast Dragon Grip as though it had flash. (You may cast it any time you could cast an instant.)
|
||||
// Enchant creature
|
||||
// Enchanted creature gets +2/+0 and has first strike.
|
||||
addCard(Zone.LIBRARY, playerB, "Dragon Grip");
|
||||
addCard(Zone.LIBRARY, playerB, "Dragon Grip");
|
||||
// You gain 2 life for each creature you control.
|
||||
addCard(Zone.LIBRARY, playerB, "Peach Garden Oath");
|
||||
addCard(Zone.LIBRARY, playerB, "Plains");
|
||||
|
||||
addCard(Zone.LIBRARY, playerB, "Peach Garden Oath");
|
||||
addCard(Zone.LIBRARY, playerB, "Plains");
|
||||
|
||||
attack(2, playerB, "Narset, Enlightened Master");
|
||||
|
||||
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Silvercoat Lion"); // can't be cast from exile
|
||||
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Abzan Banner"); // can be cast from exile
|
||||
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Dragon Grip", "Narset, Enlightened Master"); // can be cast from exile
|
||||
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Peach Garden Oath"); // can be cast from exile
|
||||
|
||||
|
||||
setStopAt(2, PhaseStep.END_TURN);
|
||||
execute();
|
||||
|
||||
assertExileCount("Silvercoat Lion", 1);
|
||||
assertPermanentCount(playerB, "Abzan Banner", 1);
|
||||
assertPermanentCount(playerB, "Dragon Grip", 1);
|
||||
assertPermanentCount(playerB, "Abzan Banner", 1);
|
||||
assertPermanentCount(playerB, "Dragon Grip", 1);
|
||||
assertGraveyardCount(playerB, "Peach Garden Oath", 1);
|
||||
|
||||
|
||||
assertPowerToughness(playerB, "Narset, Enlightened Master", 5, 2);
|
||||
|
||||
|
||||
assertHandCount(playerB, "Plains", 1);
|
||||
assertLife(playerA, 17);
|
||||
assertLife(playerB, 22);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue