diff --git a/Mage.Sets/src/mage/sets/gatecrash/ScatterArc.java b/Mage.Sets/src/mage/sets/gatecrash/ScatterArc.java index 69c133ac075..fa1fafb4c7c 100644 --- a/Mage.Sets/src/mage/sets/gatecrash/ScatterArc.java +++ b/Mage.Sets/src/mage/sets/gatecrash/ScatterArc.java @@ -28,11 +28,11 @@ package mage.sets.gatecrash; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; import mage.filter.FilterSpell; import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; @@ -45,18 +45,19 @@ import mage.target.TargetSpell; public class ScatterArc extends CardImpl { private static final FilterSpell filter = new FilterSpell("noncreature spell"); + static { filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE))); } - + public ScatterArc(UUID ownerId) { super(ownerId, 48, "Scatter Arc", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{3}{U}"); this.expansionSetCode = "GTC"; - // Counter target noncreature spell. this.getSpellAbility().addEffect(new CounterTargetEffect()); this.getSpellAbility().addTarget(new TargetSpell(filter)); + // Draw a card. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); } diff --git a/Mage.Sets/src/mage/sets/magic2014/SavageSummoning.java b/Mage.Sets/src/mage/sets/magic2014/SavageSummoning.java index 3f129598184..923b4cc02f9 100644 --- a/Mage.Sets/src/mage/sets/magic2014/SavageSummoning.java +++ b/Mage.Sets/src/mage/sets/magic2014/SavageSummoning.java @@ -207,9 +207,9 @@ class SavageSummoningWatcher extends Watcher { } public boolean isCardCastWithThisSavageSummoning(Card card, UUID cardId, int zoneChangeCounter, Game game) { - String creatureCardKey = new StringBuilder(card.getId().toString()).append("_").append(card.getZoneChangeCounter(game) - 1).toString(); + String creatureCardKey = card.getId().toString() + "_" + (card.getZoneChangeCounter(game)); // add one because card is now gone to battlefield as creature - String cardKey = new StringBuilder(cardId.toString()).append("_").append(zoneChangeCounter).toString(); + String cardKey = cardId.toString() + "_" + zoneChangeCounter; HashSet savageSpells = (HashSet) cardsCastWithSavageSummoning.get(creatureCardKey); return savageSpells != null && savageSpells.contains(cardKey); } diff --git a/Mage.Tests/src/test/java/org/mage/test/commander/duel/CastBRGCommanderTest.java b/Mage.Tests/src/test/java/org/mage/test/commander/duel/CastBRGCommanderTest.java index 12dc632f2f3..47dc89b082b 100644 --- a/Mage.Tests/src/test/java/org/mage/test/commander/duel/CastBRGCommanderTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/commander/duel/CastBRGCommanderTest.java @@ -56,15 +56,18 @@ public class CastBRGCommanderTest extends CardTestCommanderDuelBase { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1); addCard(Zone.BATTLEFIELD, playerA, "Forest", 5); + // The next creature card you cast this turn can be cast as though it had flash. + // That spell can't be countered. That creature enters the battlefield with an additional +1/+1 counter on it. addCard(Zone.HAND, playerA, "Savage Summoning"); castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Savage Summoning"); - castSpell(1, PhaseStep.BEGIN_COMBAT, playerA, "Prossh, Skyraider of Kher"); + castSpell(1, PhaseStep.BEGIN_COMBAT, playerA, "Prossh, Skyraider of Kher"); // 5/5 setStopAt(1, PhaseStep.END_COMBAT); execute(); assertGraveyardCount(playerA, "Savage Summoning", 1); assertPermanentCount(playerA, "Prossh, Skyraider of Kher", 1); + assertPowerToughness(playerA, "Prossh, Skyraider of Kher", 6, 6); // +1/+1 by Savage Summoning assertPermanentCount(playerA, "Kobolds of Kher Keep", 6); }