mirror of
https://github.com/correl/mage.git
synced 2024-11-25 11:09:53 +00:00
* Added a bestow test.
This commit is contained in:
parent
7375ba2819
commit
7b4f2dd33a
1 changed files with 109 additions and 61 deletions
|
@ -25,7 +25,6 @@
|
||||||
* authors and should not be interpreted as representing official policies, either expressed
|
* authors and should not be interpreted as representing official policies, either expressed
|
||||||
* or implied, of BetaSteward_at_googlemail.com.
|
* or implied, of BetaSteward_at_googlemail.com.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.mage.test.cards.abilities.keywords;
|
package org.mage.test.cards.abilities.keywords;
|
||||||
|
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
@ -44,9 +43,9 @@ import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||||
public class BestowTest extends CardTestPlayerBase {
|
public class BestowTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests that if from bestow permanent targeted creature
|
* Tests that if from bestow permanent targeted creature gets protection
|
||||||
* gets protection from the color of the bestow permanent,
|
* from the color of the bestow permanent, the bestow permanent becomes a
|
||||||
* the bestow permanent becomes a creature on the battlefield.
|
* creature on the battlefield.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -67,7 +66,6 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
* Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)
|
* Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void bestowEnchantmentToCreature() {
|
public void bestowEnchantmentToCreature() {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Plains", 5);
|
addCard(Zone.BATTLEFIELD, playerA, "Plains", 5);
|
||||||
|
@ -111,7 +109,7 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
// because Boon Satyr is no creature on the battlefield, evolve may not trigger
|
// because Boon Satyr is no creature on the battlefield, evolve may not trigger
|
||||||
assertPermanentCount(playerA, "Boon Satyr", 1);
|
assertPermanentCount(playerA, "Boon Satyr", 1);
|
||||||
Permanent boonSatyr = getPermanent("Boon Satyr", playerA);
|
Permanent boonSatyr = getPermanent("Boon Satyr", playerA);
|
||||||
Assert.assertTrue("Boon Satyr may not be a creature",!boonSatyr.getCardType().contains(CardType.CREATURE));
|
Assert.assertTrue("Boon Satyr may not be a creature", !boonSatyr.getCardType().contains(CardType.CREATURE));
|
||||||
assertPermanentCount(playerA, "Silent Artisan", 1);
|
assertPermanentCount(playerA, "Silent Artisan", 1);
|
||||||
assertPermanentCount(playerA, "Experiment One", 1);
|
assertPermanentCount(playerA, "Experiment One", 1);
|
||||||
assertPowerToughness(playerA, "Experiment One", 1, 1);
|
assertPowerToughness(playerA, "Experiment One", 1, 1);
|
||||||
|
@ -120,7 +118,8 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that the bestow enchantment becomes a creature if the enchanted creature dies
|
* Test that the bestow enchantment becomes a creature if the enchanted
|
||||||
|
* creature dies
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void bestowEnchantmentBecomesCreature() {
|
public void bestowEnchantmentBecomesCreature() {
|
||||||
|
@ -149,11 +148,11 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
Assert.assertTrue("Hopeful Eidolon has to be a creature but is not", hopefulEidolon.getCardType().contains(CardType.CREATURE));
|
Assert.assertTrue("Hopeful Eidolon has to be a creature but is not", hopefulEidolon.getCardType().contains(CardType.CREATURE));
|
||||||
Assert.assertTrue("Hopeful Eidolon has to be an enchantment but is not", hopefulEidolon.getCardType().contains(CardType.ENCHANTMENT));
|
Assert.assertTrue("Hopeful Eidolon has to be an enchantment but is not", hopefulEidolon.getCardType().contains(CardType.ENCHANTMENT));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that card cast with bestow will not be tapped, if creatures come into play tapped
|
* Test that card cast with bestow will not be tapped, if creatures come
|
||||||
|
* into play tapped
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void bestowEnchantmentWillNotBeTapped() {
|
public void bestowEnchantmentWillNotBeTapped() {
|
||||||
|
@ -180,9 +179,10 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If I have a bestowed creature on the battlefield and my opponent uses Far // Away casting
|
* If I have a bestowed creature on the battlefield and my opponent uses Far
|
||||||
* both sides, will the creature that has bestow come in time for it to be sacrificed or does
|
* // Away casting both sides, will the creature that has bestow come in
|
||||||
* it fully resolve before the creature comes in?
|
* time for it to be sacrificed or does it fully resolve before the creature
|
||||||
|
* comes in?
|
||||||
*
|
*
|
||||||
* Bestowed creature can be used to sacrifice a creature for the Away part.
|
* Bestowed creature can be used to sacrifice a creature for the Away part.
|
||||||
* http://www.mtgsalvation.com/forums/magic-fundamentals/magic-rulings/magic-rulings-archives/513828-bestow-far-away
|
* http://www.mtgsalvation.com/forums/magic-fundamentals/magic-rulings/magic-rulings-archives/513828-bestow-far-away
|
||||||
|
@ -192,18 +192,15 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
public void bestowWithFusedSpell() {
|
public void bestowWithFusedSpell() {
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
|
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
|
||||||
/**
|
/**
|
||||||
* Cyclops of One-Eyed Pass {2}{R}{R}
|
* Cyclops of One-Eyed Pass {2}{R}{R} Creature - Cyclops 5/2
|
||||||
* Creature - Cyclops
|
|
||||||
* 5/2
|
|
||||||
*/
|
*/
|
||||||
addCard(Zone.BATTLEFIELD, playerA, "Cyclops of One-Eyed Pass");
|
addCard(Zone.BATTLEFIELD, playerA, "Cyclops of One-Eyed Pass");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Nyxborn Rollicker {R}
|
* Nyxborn Rollicker {R} Enchantment Creature - Satyr 1/1 Bestow {1}{R}
|
||||||
* Enchantment Creature - Satyr
|
* (If you cast this card for its bestow cost, it's an Aura spell with
|
||||||
* 1/1
|
* enchant creature. It becomes a creature again if it's not attached to
|
||||||
* Bestow {1}{R} (If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature.)
|
* a creature.) Enchanted creature gets +1/+1.
|
||||||
* Enchanted creature gets +1/+1.
|
|
||||||
*/
|
*/
|
||||||
addCard(Zone.HAND, playerA, "Nyxborn Rollicker");
|
addCard(Zone.HAND, playerA, "Nyxborn Rollicker");
|
||||||
|
|
||||||
|
@ -211,13 +208,9 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Far {1}{U}
|
* Far {1}{U} Instant Return target creature to its owner's hand. Away
|
||||||
* Instant
|
* {2}{B} Instant Target player sacrifices a creature. Fuse (You may
|
||||||
* Return target creature to its owner's hand.
|
* cast one or both halves of this card from your hand.)
|
||||||
* Away {2}{B}
|
|
||||||
* Instant
|
|
||||||
* Target player sacrifices a creature.
|
|
||||||
* Fuse (You may cast one or both halves of this card from your hand.)
|
|
||||||
*/
|
*/
|
||||||
addCard(Zone.HAND, playerB, "Far // Away");
|
addCard(Zone.HAND, playerB, "Far // Away");
|
||||||
|
|
||||||
|
@ -240,9 +233,9 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that CMC of a spell cast with bestowed is correct
|
* Test that CMC of a spell cast with bestowed is correct Disdainful Stroke
|
||||||
* Disdainful Stroke doesn't check converted mana cost correctly. Opponent was
|
* doesn't check converted mana cost correctly. Opponent was able to use it
|
||||||
* able to use it to counter a Hypnotic Siren cast with Bestow.
|
* to counter a Hypnotic Siren cast with Bestow.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void bestowCheckForCorrectCMC() {
|
public void bestowCheckForCorrectCMC() {
|
||||||
|
@ -275,11 +268,11 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
|
|
||||||
// because cast with bestow, Boon Satyr may not be tapped
|
// because cast with bestow, Boon Satyr may not be tapped
|
||||||
assertPermanentCount(playerA, "Silvercoat Lion", 1);
|
assertPermanentCount(playerA, "Silvercoat Lion", 1);
|
||||||
assertPowerToughness(playerA, "Silvercoat Lion", 3,3);
|
assertPowerToughness(playerA, "Silvercoat Lion", 3, 3);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
@ -312,4 +305,59 @@ public class BestowTest extends CardTestPlayerBase {
|
||||||
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Bug with the Nighthowler Card. Card does sometimes not get a creature
|
||||||
|
* after Bestow.
|
||||||
|
|
||||||
|
Steps:
|
||||||
|
1) Cast any creature
|
||||||
|
2) Cast Nightowler using Bestow on that creature
|
||||||
|
3) Make sure creature is tapped
|
||||||
|
4) Opponent uses any spell that kills creature which is bestowed by nighthowler
|
||||||
|
5) Result: Nighthowler is still on the field, but is no creature (no Power/Toughness)
|
||||||
|
|
||||||
|
Expected:Nighthowler gets on field as a creature
|
||||||
|
|
||||||
|
Important: This happens ONLY if the creature is killed with a spell when
|
||||||
|
its TAPPED!
|
||||||
|
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void bestowNighthowlerTest() {
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4);
|
||||||
|
// Instant - {2}{R}{R}
|
||||||
|
// Chandra's Outrage deals 4 damage to target creature and 2 damage to that creature's controller.
|
||||||
|
addCard(Zone.HAND, playerA, "Chandra's Outrage");
|
||||||
|
|
||||||
|
// Enchantment Creature — Horror
|
||||||
|
// 0/0
|
||||||
|
// Bestow {2}{B}{B}
|
||||||
|
// Nighthowler and enchanted creature each get +X/+X, where X is the number of creature cards in all graveyards.
|
||||||
|
addCard(Zone.HAND, playerB, "Nighthowler");
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Swamp", 4);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion");
|
||||||
|
addCard(Zone.GRAVEYARD, playerB, "Pillarfield Ox");
|
||||||
|
|
||||||
|
castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Nighthowler using bestow", "Silvercoat Lion");
|
||||||
|
|
||||||
|
attack(2, playerB, "Silvercoat Lion");
|
||||||
|
|
||||||
|
castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "Chandra's Outrage", "Silvercoat Lion");
|
||||||
|
|
||||||
|
setStopAt(2, PhaseStep.END_TURN);
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertLife(playerB, 18); // -2 from Chandra's Outrage
|
||||||
|
assertLife(playerA, 17); // -3 from attack Nighthowler
|
||||||
|
|
||||||
|
assertGraveyardCount(playerA, "Chandra's Outrage", 1);
|
||||||
|
assertGraveyardCount(playerB, "Silvercoat Lion", 1);
|
||||||
|
assertPermanentCount(playerB, "Nighthowler", 1);
|
||||||
|
assertPowerToughness(playerB, "Nighthowler", 2, 2);
|
||||||
|
Permanent nighthowler = getPermanent("Nighthowler", playerB);
|
||||||
|
|
||||||
|
Assert.assertEquals("Nighthowler has to be a creature", true, nighthowler.getCardType().contains(CardType.CREATURE));
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue