mirror of
https://github.com/magefree/mage.git
synced 2025-12-27 22:12:03 -08:00
* Phasing - Fixed that idirect phasing (attachments of permanents with phasing) were not phased out with the permanent they attached to.
This commit is contained in:
parent
ad9e08991e
commit
c5718e3f19
3 changed files with 167 additions and 111 deletions
|
|
@ -36,27 +36,25 @@ import org.mage.test.serverside.base.CardTestPlayerBase;
|
|||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
|
||||
public class PhasingTest extends CardTestPlayerBase {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Test that abilities of phased out cards do not trigger or apply their effects
|
||||
* Test that abilities of phased out cards do not trigger or apply their
|
||||
* effects
|
||||
*/
|
||||
@Test
|
||||
public void TestAbilitiesOfPhasedOutAreNotApplied() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 3);
|
||||
// At the beginning of each player's upkeep, that player chooses artifact, creature, land, or non-Aura enchantment.
|
||||
// All nontoken permanents of that type phase out.
|
||||
// At the beginning of each player's upkeep, that player chooses artifact, creature, land, or non-Aura enchantment.
|
||||
// All nontoken permanents of that type phase out.
|
||||
addCard(Zone.HAND, playerA, "Teferi's Realm", 1);
|
||||
|
||||
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Crusade", 1);
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1);
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Teferi's Realm");
|
||||
|
||||
setChoice(playerB, "Non-Aura enchantment");
|
||||
|
||||
setChoice(playerB, "Non-Aura enchantment");
|
||||
setStopAt(2, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
|
||||
|
|
@ -64,4 +62,60 @@ public class PhasingTest extends CardTestPlayerBase {
|
|||
assertPermanentCount(playerB, "Silvercoat Lion", 1);
|
||||
assertPowerToughness(playerB, "Silvercoat Lion", 2, 2);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* I had Fireshrieker equipped to Taniwha. When Taniwha phased out, the
|
||||
* Fireshrieker remained visible on the battlefield, appearing to be
|
||||
* attached to a Coldsteel Heart. The Fireshrieker should have been phased
|
||||
* out indirectly.
|
||||
*
|
||||
* 502.15i When a permanent phases out, any local enchantments or Equipment
|
||||
* attached to that permanent phase out at the same time. This alternate way
|
||||
* of phasing out is known as phasing out "indirectly." An enchantment or
|
||||
* Equipment that phased out indirectly won't phase in by itself, but
|
||||
* instead phases in along with the card it's attached to.
|
||||
*/
|
||||
@Test
|
||||
public void TestIndirectPhasing() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 1);
|
||||
// Flying
|
||||
// Phasing (This phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist.)
|
||||
// All nontoken permanents of that type phase out.
|
||||
addCard(Zone.HAND, playerA, "Tolarian Drake", 1);
|
||||
// Enchant creature
|
||||
// {R}: Enchanted creature gets +1/+0 until end of turn.
|
||||
addCard(Zone.HAND, playerA, "Firebreathing", 1); // {R}
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tolarian Drake");
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Firebreathing", "Tolarian Drake");
|
||||
|
||||
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "Tolarian Drake", 0);
|
||||
assertPermanentCount(playerA, "Firebreathing", 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void TestIndirectPhasingAgainPhasedIn() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 1);
|
||||
// Flying
|
||||
// Phasing (This phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist.)
|
||||
// All nontoken permanents of that type phase out.
|
||||
addCard(Zone.HAND, playerA, "Tolarian Drake", 1);
|
||||
// Enchant creature
|
||||
// {R}: Enchanted creature gets +1/+0 until end of turn.
|
||||
addCard(Zone.HAND, playerA, "Firebreathing", 1); // {R}
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Tolarian Drake");
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Firebreathing", "Tolarian Drake");
|
||||
|
||||
setStopAt(5, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "Tolarian Drake", 1);
|
||||
assertPermanentCount(playerA, "Firebreathing", 1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue