Some minor changes.

This commit is contained in:
LevelX2 2015-02-25 23:47:53 +01:00
parent 329165555b
commit 957fa7d647
3 changed files with 40 additions and 5 deletions

View file

@ -36,6 +36,7 @@ import mage.Mana;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.common.AsEntersBattlefieldAbility;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.ContinuousRuleModifiyingEffectImpl; import mage.abilities.effects.ContinuousRuleModifiyingEffectImpl;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.mana.ColorlessManaAbility; import mage.abilities.mana.ColorlessManaAbility;
@ -79,7 +80,7 @@ public class CavernOfSouls extends CardImpl {
this.addAbility(new ColorlessManaAbility()); this.addAbility(new ColorlessManaAbility());
// {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell of the chosen type, and that spell can't be countered. // {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell of the chosen type, and that spell can't be countered.
this.addAbility(new ConditionalAnyColorManaAbility(1, new CavernOfSoulsManaBuilder())); this.addAbility(new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new CavernOfSoulsManaBuilder(), true));
this.addWatcher(new CavernOfSoulsWatcher()); this.addWatcher(new CavernOfSoulsWatcher());
this.addAbility(new SimpleStaticAbility(Zone.ALL, new CavernOfSoulsCantCounterEffect())); this.addAbility(new SimpleStaticAbility(Zone.ALL, new CavernOfSoulsCantCounterEffect()));
} }

View file

@ -29,7 +29,6 @@ package mage.sets.magic2015;
import java.util.UUID; import java.util.UUID;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.dynamicvalue.common.GetXValue;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
import mage.abilities.keyword.ConvokeAbility; import mage.abilities.keyword.ConvokeAbility;
@ -58,8 +57,6 @@ public class ReturnToTheRanks extends CardImpl {
super(ownerId, 29, "Return to the Ranks", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{X}{W}{W}"); super(ownerId, 29, "Return to the Ranks", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{X}{W}{W}");
this.expansionSetCode = "M15"; this.expansionSetCode = "M15";
this.color.setWhite(true);
// Convoke // Convoke
this.addAbility(new ConvokeAbility()); this.addAbility(new ConvokeAbility());
// Return X target creature cards with converted mana cost 2 or less from your graveyard to the battlefield. // Return X target creature cards with converted mana cost 2 or less from your graveyard to the battlefield.

View file

@ -186,4 +186,41 @@ public class CavernOfSoulsTest extends CardTestPlayerBase {
// assertPermanentCount(playerA, "Fume Spitter", 1); // assertPermanentCount(playerA, "Fume Spitter", 1);
} }
/**
* Return to the Ranks cannot be countered if mana produced by Cavern of Souls
* was used to pay X. Can be bug also for all other spells with X in their cost, not sure.
*
*/
@Test
public void testCastWithColorlessManaCanBeCountered() {
addCard(Zone.BATTLEFIELD, playerA, "Plains", 2);
addCard(Zone.HAND, playerA, "Cavern of Souls");
// Sorcery {X}{W}{W}
// Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for or one mana of that creature's color.)
// Return X target creature cards with converted mana cost 2 or less from your graveyard to the battlefield.
addCard(Zone.HAND, playerA, "Return to the Ranks");
addCard(Zone.GRAVEYARD, playerA, "Silvercoat Lion");
// {1}{U} Remove Soul - Counter target creature spell.
addCard(Zone.HAND, playerB, "Counterspell");
addCard(Zone.BATTLEFIELD, playerB, "Island", 2);
playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cavern of Souls");
setChoice(playerA, "Drake");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Return to the Ranks", "Silvercoat Lion");
setChoice(playerA, "X=1");
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Counterspell", "Return to the Ranks");
setStopAt(1, PhaseStep.BEGIN_COMBAT);
execute();
// check it was countered
assertGraveyardCount(playerA, "Return to the Ranks", 1);
assertGraveyardCount(playerB, "Counterspell", 1);
assertGraveyardCount(playerA, "Silvercoat Lion", 1);
assertPermanentCount(playerA, "Silvercoat Lion", 0);
}
} }