mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 19:41:59 -08:00
* Fixed a bug with time stamp order and change of basic land type (e.g. Blood Moon and Spreading Seas).
This commit is contained in:
parent
140672b8b3
commit
df98b4e0af
4 changed files with 106 additions and 25 deletions
|
|
@ -3,7 +3,6 @@
|
|||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package org.mage.test.cards.abilities.enters;
|
||||
|
||||
import mage.constants.PhaseStep;
|
||||
|
|
@ -28,7 +27,6 @@ public class BloodMoonTest extends CardTestPlayerBase {
|
|||
// or abilities that changed the permanents characteristics on the stack (see rule 400.7a), and continuous
|
||||
// effects from the permanents own static abilities, but ignoring continuous effects from any other source
|
||||
// that would affect it.
|
||||
|
||||
// Grassland has to enter the battlefield tapped, because
|
||||
// the Blood Moon does not prevent ETB Replacement Effects
|
||||
@Test
|
||||
|
|
@ -39,10 +37,9 @@ public class BloodMoonTest extends CardTestPlayerBase {
|
|||
addCard(Zone.BATTLEFIELD, playerA, "Blood Moon");
|
||||
|
||||
/**
|
||||
* Grasslands
|
||||
* Land
|
||||
* Grasslands enters the battlefield tapped.
|
||||
* {T}, Sacrifice Grasslands: Search your library for a Forest or Plains card and put it onto the battlefield. Then shuffle your library.
|
||||
* Grasslands Land Grasslands enters the battlefield tapped. {T},
|
||||
* Sacrifice Grasslands: Search your library for a Forest or Plains card
|
||||
* and put it onto the battlefield. Then shuffle your library.
|
||||
*/
|
||||
addCard(Zone.HAND, playerA, "Grasslands");
|
||||
|
||||
|
|
@ -67,11 +64,9 @@ public class BloodMoonTest extends CardTestPlayerBase {
|
|||
addCard(Zone.BATTLEFIELD, playerA, "Blood Moon");
|
||||
|
||||
/**
|
||||
* Kabira Crossroads
|
||||
* Land
|
||||
* Kabira Crossroads enters the battlefield tapped.
|
||||
* When Kabira Crossroads enters the battlefield, you gain 2 life.
|
||||
* {W}: Add to your mana pool.
|
||||
* Kabira Crossroads Land Kabira Crossroads enters the battlefield
|
||||
* tapped. When Kabira Crossroads enters the battlefield, you gain 2
|
||||
* life. {W}: Add to your mana pool.
|
||||
*
|
||||
*/
|
||||
addCard(Zone.HAND, playerA, "Kabira Crossroads");
|
||||
|
|
@ -87,6 +82,84 @@ public class BloodMoonTest extends CardTestPlayerBase {
|
|||
assertLife(playerA, 20); // Trigger may not trigger because of Blood Moon so the 2 life were not added
|
||||
assertLife(playerB, 20);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* There's a bug with Spreading Seas and Blood Moon
|
||||
*
|
||||
* 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
|
||||
* only R because of blood moon's time stamp.
|
||||
*
|
||||
* http://blogs.magicjudges.org/articles/2013/06/18/blood-moon-in-a-modern-environment/
|
||||
* Spreading Seas, which has started to see play in Modern, also functions
|
||||
* similar to Prismatic Omen. If the Seas enters the battlefield before
|
||||
* Blood Moon, Blood Moon wins since it has a later timestamp and the land
|
||||
* will just be a Mountain. If the Seas enters the battlefield after Blood
|
||||
* Moon, then the effect of the Seas wins and the land will be an Island.
|
||||
*/
|
||||
@Test
|
||||
public void testBloodMoonAfterSpreadingSea() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Island", 1);
|
||||
// Blood Moon 2R
|
||||
// Enchantment
|
||||
// Nonbasic lands are Mountains
|
||||
addCard(Zone.HAND, playerA, "Blood Moon");
|
||||
|
||||
// Enchant land
|
||||
// When Spreading Seas enters the battlefield, draw a card.
|
||||
// Enchanted land is an Island.
|
||||
addCard(Zone.HAND, playerA, "Spreading Seas"); // {1}{U}
|
||||
|
||||
// {T}: Add {C} to your mana pool.
|
||||
// {T}: Add {B} or {W} to your mana pool. Caves of Koilos deals 1 damage to you.
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Steam Vents");
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Spreading Seas", "Steam Vents");
|
||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Blood Moon");
|
||||
setStopAt(2, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "Spreading Seas", 1);
|
||||
assertPermanentCount(playerA, "Blood Moon", 1);
|
||||
assertHandCount(playerA, 1);
|
||||
// Check that the Steam Vents produces only {R}
|
||||
Assert.assertTrue("The mana the land can produce should be [{R}] but it's " + playerB.getManaAvailable(currentGame).toString(), playerB.getManaAvailable(currentGame).toString().equals("[{R}]"));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBloodMoonBeforeSpreadingSea() {
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1);
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Mox Sapphire", 4);
|
||||
// Blood Moon 2R
|
||||
// Enchantment
|
||||
// Nonbasic lands are Mountains
|
||||
addCard(Zone.HAND, playerA, "Blood Moon");
|
||||
|
||||
// Enchant land
|
||||
// When Spreading Seas enters the battlefield, draw a card.
|
||||
// Enchanted land is an Island.
|
||||
addCard(Zone.HAND, playerA, "Spreading Seas"); // {1}{U}
|
||||
|
||||
// {T}: Add {C} to your mana pool.
|
||||
// {T}: Add {B} or {W} to your mana pool. Caves of Koilos deals 1 damage to you.
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Steam Vents");
|
||||
|
||||
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Blood Moon");
|
||||
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Spreading Seas", "Steam Vents");
|
||||
setStopAt(2, PhaseStep.PRECOMBAT_MAIN);
|
||||
execute();
|
||||
|
||||
assertPermanentCount(playerA, "Spreading Seas", 1);
|
||||
assertPermanentCount(playerA, "Blood Moon", 1);
|
||||
assertHandCount(playerA, 1);
|
||||
// Check that the Steam Vents produces only {R}
|
||||
Assert.assertTrue("The mana the land can produce should be [{U}] but it's " + playerB.getManaAvailable(currentGame).toString(), playerB.getManaAvailable(currentGame).toString().equals("[{U}]"));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue