diff --git a/Mage.Sets/src/mage/cards/e/ElectroAssaultingBattery.java b/Mage.Sets/src/mage/cards/e/ElectroAssaultingBattery.java index 34b05ea2ee8..27e33673fd2 100644 --- a/Mage.Sets/src/mage/cards/e/ElectroAssaultingBattery.java +++ b/Mage.Sets/src/mage/cards/e/ElectroAssaultingBattery.java @@ -13,6 +13,7 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; +import mage.filter.StaticFilters; import mage.game.Game; import mage.players.Player; import mage.target.TargetPlayer; @@ -42,7 +43,8 @@ public final class ElectroAssaultingBattery extends CardImpl { this.addAbility(new SimpleStaticAbility(new YouDontLoseManaEffect(ManaType.RED))); // Whenever you cast an instant or sorcery spell, add {R}. - this.addAbility(new SpellCastControllerTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(Mana.RedMana(1)), false)); + this.addAbility(new SpellCastControllerTriggeredAbility(new AddManaToManaPoolSourceControllerEffect(Mana.RedMana(1)), + StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY, false)); // When Electro leaves the battlefield, you may pay x. When you do, he deals X damage to target player. this.addAbility(new LeavesBattlefieldTriggeredAbility(new ElectroAssaultingBatteryEffect())); diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/spm/ElectroAssaultingBatteryTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/spm/ElectroAssaultingBatteryTest.java index a8a039f54da..450d5d16cd1 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/spm/ElectroAssaultingBatteryTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/spm/ElectroAssaultingBatteryTest.java @@ -1,8 +1,10 @@ package org.mage.test.cards.single.spm; +import mage.constants.ManaType; import mage.constants.PhaseStep; import mage.constants.Zone; import org.junit.Test; +import org.mage.test.player.TestPlayer; import org.mage.test.serverside.base.CardTestPlayerBase; /** @@ -39,6 +41,16 @@ public class ElectroAssaultingBatteryTest extends CardTestPlayerBase { */ private static final String lightningBolt = "Lightning Bolt"; + /* + Final Showdown + {W} + Instant + Spree + + {1} -- All creatures lose all abilities until end of turn. + + {1} -- Choose a creature you control. It gains indestructible until end of turn. + + {3}{W}{W} -- Destroy all creatures. + */ + private static final String finalShowdown = "Final Showdown"; @Test public void testElectroAssaultingBattery() { @@ -62,4 +74,34 @@ public class ElectroAssaultingBatteryTest extends CardTestPlayerBase { assertLife(playerB, 20 - 4); } + + @Test + public void testElectroAssaultingBatteryFinalShowdown() { + setStrictChooseMode(true); + + addCard(Zone.BATTLEFIELD, playerA, electroAssaultingBattery); + addCard(Zone.BATTLEFIELD, playerA, "Mountain"); + addCard(Zone.BATTLEFIELD, playerB, "Plains", 7); + addCard(Zone.HAND, playerB, finalShowdown); + addCard(Zone.HAND, playerA, lightningBolt); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, lightningBolt, playerB); + waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN, true); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, finalShowdown); + setModeChoice(playerB, "1"); + setModeChoice(playerB, "3"); + setModeChoice(playerB, TestPlayer.MODE_SKIP); + + checkManaPool("Should have 1 red mana", 1, PhaseStep.PRECOMBAT_MAIN, playerA, "R", 1); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertGraveyardCount(playerA, lightningBolt, 1); + assertGraveyardCount(playerB, finalShowdown, 1); + assertGraveyardCount(playerA, electroAssaultingBattery, 1); + + assertManaPool(playerA, ManaType.RED, 0); // Electro's ability is gone + } } \ No newline at end of file