mirror of
https://github.com/correl/mage.git
synced 2025-03-29 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;
|
||||
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.PhaseStep;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.permanent.Permanent;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
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
|
||||
* 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.
|
||||
*
|
||||
* 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}]"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 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