1
0
Fork 0
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:
LevelX2 2018-02-25 21:59:06 +01:00
parent 2fceafda93
commit ba483dd87a

View file

@ -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 doesnt trigger, because it doesnt exist: it
* wont 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 Moons static ability operates only when its on the
* battlefield and begins affecting any nonbasic lands immediately. In fact,
* Blood Moons effect is so quick that once a non-basic land hits the
* battlefield its going to be affected. Therefore:
*
* If a nonbasic lands has EtB triggered abilities, these will not trigger
* because the ability isnt there (its 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
}
}