mirror of
https://github.com/correl/mage.git
synced 2025-04-08 17:00:07 -09:00
* Added a test for the new Blood Moon rule (set to @Ignored) because new rule is not implemented.
This commit is contained in:
parent
2fceafda93
commit
ba483dd87a
1 changed files with 167 additions and 1 deletions
|
@ -5,10 +5,13 @@
|
||||||
*/
|
*/
|
||||||
package org.mage.test.cards.abilities.enters;
|
package org.mage.test.cards.abilities.enters;
|
||||||
|
|
||||||
|
import mage.constants.CardType;
|
||||||
import mage.constants.PhaseStep;
|
import mage.constants.PhaseStep;
|
||||||
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
|
|
||||||
|
@ -90,7 +93,7 @@ public class BloodMoonTest extends CardTestPlayerBase {
|
||||||
* Spreading Seas was played turn 3 in a Steam Vents, Blood Moon turn 7 or
|
* Spreading Seas was played turn 3 in a Steam Vents, Blood Moon turn 7 or
|
||||||
* something
|
* something
|
||||||
*
|
*
|
||||||
* The enchanted Steam Vents was producing only U when ir should produce
|
* The enchanted Steam Vents was producing only U when it should produce
|
||||||
* only R because of blood moon's time stamp.
|
* only R because of blood moon's time stamp.
|
||||||
*
|
*
|
||||||
* http://blogs.magicjudges.org/articles/2013/06/18/blood-moon-in-a-modern-environment/
|
* http://blogs.magicjudges.org/articles/2013/06/18/blood-moon-in-a-modern-environment/
|
||||||
|
@ -238,4 +241,167 @@ public class BloodMoonTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
Assert.assertTrue("The mana the land can produce should be [{R}] but it's " + playerA.getManaAvailable(currentGame).toString(), playerA.getManaAvailable(currentGame).toString().equals("[{R}]"));
|
Assert.assertTrue("The mana the land can produce should be [{R}] but it's " + playerA.getManaAvailable(currentGame).toString(), playerA.getManaAvailable(currentGame).toString().equals("[{R}]"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If Blood Moon enters the battlefield with an animated Mutavault in play,
|
||||||
|
* the Mutavault stays a 2/2 creature with all creature types and “gains”
|
||||||
|
* the land type mountain (it can also tap for R). However, once the turn
|
||||||
|
* ends, the Mutavault will loses both of its abilities and become a non
|
||||||
|
* basic mountain named Mutavault.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testBloodMoonMutavault() {
|
||||||
|
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Swamp");
|
||||||
|
|
||||||
|
// {T}: Add {C} to your mana pool.
|
||||||
|
// {1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Mutavault", 1);
|
||||||
|
|
||||||
|
// Blood Moon 2R
|
||||||
|
// Enchantment
|
||||||
|
// Nonbasic lands are Mountains
|
||||||
|
addCard(Zone.HAND, playerB, "Blood Moon", 1);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 3);
|
||||||
|
|
||||||
|
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}: ");
|
||||||
|
|
||||||
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Blood Moon");
|
||||||
|
|
||||||
|
setStopAt(2, PhaseStep.END_TURN);
|
||||||
|
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertPermanentCount(playerB, "Blood Moon", 1);
|
||||||
|
assertPowerToughness(playerA, "Mutavault", 2, 2);
|
||||||
|
assertType("Mutavault", CardType.LAND, SubType.MOUNTAIN);
|
||||||
|
assertType("Swamp", CardType.LAND, SubType.SWAMP);
|
||||||
|
|
||||||
|
Assert.assertTrue("The mana the land can produce should be [{R}] but it's " + playerA.getManaAvailable(currentGame).toString(), playerA.getManaAvailable(currentGame).toString().equals("[{R}]"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBloodMoonMutavaultEnd() {
|
||||||
|
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Swamp");
|
||||||
|
|
||||||
|
// {T}: Add {C} to your mana pool.
|
||||||
|
// {1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Mutavault", 1);
|
||||||
|
|
||||||
|
// Blood Moon 2R
|
||||||
|
// Enchantment
|
||||||
|
// Nonbasic lands are Mountains
|
||||||
|
addCard(Zone.HAND, playerB, "Blood Moon", 1);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 3);
|
||||||
|
|
||||||
|
activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}: ");
|
||||||
|
|
||||||
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Blood Moon");
|
||||||
|
|
||||||
|
setStopAt(3, PhaseStep.PRECOMBAT_MAIN);
|
||||||
|
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertPermanentCount(playerB, "Blood Moon", 1);
|
||||||
|
assertPowerToughness(playerA, "Mutavault", 0, 0);
|
||||||
|
assertType("Mutavault", CardType.LAND, SubType.MOUNTAIN);
|
||||||
|
assertType("Swamp", CardType.LAND, SubType.SWAMP);
|
||||||
|
|
||||||
|
Assert.assertTrue("The mana the lands can produce should be [{B}{R}] but it's " + playerA.getManaAvailable(currentGame).toString(), playerA.getManaAvailable(currentGame).toString().equals("[{B}{R}]"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If Blood Moon is on the battlefield, Flagstones of Trokair will enter the
|
||||||
|
* battlefield as a legendary non-basic Mountain. If Flagstones of Trokair
|
||||||
|
* is put into the graveyard due to “Legends rule” or because it was
|
||||||
|
* destroyed, its ability doesn’t trigger, because it doesn’t exist: it
|
||||||
|
* won’t fetch you a Plains.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testBloodMoonFlagstonesOfTrokair() {
|
||||||
|
// {T}: Add {W} to your mana pool.
|
||||||
|
// When Flagstones of Trokair is put into a graveyard from the battlefield, you may search
|
||||||
|
// your library for a Plains card and put it onto the battlefield tapped. If you do, shuffle your library.
|
||||||
|
addCard(Zone.HAND, playerA, "Flagstones of Trokair", 1);
|
||||||
|
addCard(Zone.LIBRARY, playerA, "Plains");
|
||||||
|
|
||||||
|
// Blood Moon 2R
|
||||||
|
// Enchantment
|
||||||
|
// Nonbasic lands are Mountains
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Blood Moon");
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 3);
|
||||||
|
addCard(Zone.HAND, playerB, "Stone Rain");
|
||||||
|
|
||||||
|
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Flagstones of Trokair");
|
||||||
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Stone Rain", "Flagstones of Trokair");
|
||||||
|
|
||||||
|
setStopAt(2, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertPermanentCount(playerB, "Blood Moon", 1);
|
||||||
|
assertGraveyardCount(playerB, "Stone Rain", 1);
|
||||||
|
|
||||||
|
assertPermanentCount(playerA, "Flagstones of Trokair", 0);
|
||||||
|
assertGraveyardCount(playerA, "Flagstones of Trokair", 1);
|
||||||
|
|
||||||
|
assertPermanentCount(playerA, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Because Blood Moon’s static ability operates only when it’s on the
|
||||||
|
* battlefield and begins affecting any nonbasic lands immediately. In fact,
|
||||||
|
* Blood Moon’s effect is so quick that once a non-basic land hits the
|
||||||
|
* battlefield it’s going to be affected. Therefore:
|
||||||
|
*
|
||||||
|
* If a nonbasic land’s has EtB triggered abilities, these will not trigger
|
||||||
|
* because the ability isn’t there (it’s gone). Effects that modify the way
|
||||||
|
* the land enters the battlefield are replacement effects. They are applied
|
||||||
|
* before the permanent enters the battlefield and taking into account
|
||||||
|
* continuous effects that already exist and would apply to the permanent.
|
||||||
|
* (see CR 614.12).
|
||||||
|
*
|
||||||
|
* 614.12 Some replacement effects modify how a permanent enters the
|
||||||
|
* battlefield. (See rules 614.1c-d.) Such effects may come from the
|
||||||
|
* permanent itself if they affect only that permanent (as opposed to a
|
||||||
|
* general subset of permanents that includes it). They may also come from
|
||||||
|
* other sources. To determine which replacement effects apply and how they
|
||||||
|
* apply, check the characteristics of the permanent as it would exist on
|
||||||
|
* the battlefield, taking into account replacement effects that have
|
||||||
|
* already modified how it enters the battlefield (see rule 616.1),
|
||||||
|
* continuous effects from the permanent's own static abilities that would
|
||||||
|
* apply to it once it's on the battlefield, and continuous effects that
|
||||||
|
* ..........................................===========================
|
||||||
|
* already exist and would apply to the permanent.
|
||||||
|
* ================================================
|
||||||
|
*
|
||||||
|
* Madblind Mountain enters the battlefield untapped, as a nonbasic Mountain
|
||||||
|
* with single mana ability and no other.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
@Ignore
|
||||||
|
public void testBloodMoonMadblindMountain() {
|
||||||
|
// {T}: Add {R} to your mana pool.
|
||||||
|
// Madblind Mountain enters the battlefield tapped.
|
||||||
|
// {R}, {tap}: Shuffle your library. Activate this ability only if you control two or more red permanents.
|
||||||
|
addCard(Zone.HAND, playerA, "Madblind Mountain", 1);
|
||||||
|
|
||||||
|
// Blood Moon 2R
|
||||||
|
// Enchantment
|
||||||
|
// Nonbasic lands are Mountains
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Blood Moon");
|
||||||
|
|
||||||
|
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Madblind Mountain");
|
||||||
|
|
||||||
|
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||||
|
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertPermanentCount(playerB, "Blood Moon", 1);
|
||||||
|
assertPermanentCount(playerA, "Madblind Mountain", 1);
|
||||||
|
|
||||||
|
assertTapped("Madblind Mountain", false); // it may not be tapped because the etB effect was removed by Blood Moon
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue