From 1a8f38759b46504e6852ed5e6124dd918922447d Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 3 Oct 2016 19:43:26 +0200 Subject: [PATCH] Fixed a problem with filetring of CantBeTargetedAllEffect. --- .../test/cards/replacement/canttarget/DenseFoliageTest.java | 2 ++ .../abilities/effects/common/CantBeTargetedAllEffect.java | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/replacement/canttarget/DenseFoliageTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/canttarget/DenseFoliageTest.java index 9d7bd0ab72c..2cbe32d2403 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/replacement/canttarget/DenseFoliageTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/replacement/canttarget/DenseFoliageTest.java @@ -35,7 +35,9 @@ public class DenseFoliageTest extends CardTestPlayerBase { */ @Test public void testAbilityCanTarget() { + // Creatures can't be the targets of spells addCard(Zone.BATTLEFIELD, playerA, "Dense Foliage"); + //{T}: Prodigal Sorcerer deals 1 damage to target creature or player. addCard(Zone.BATTLEFIELD, playerA, "Prodigal Sorcerer"); addCard(Zone.BATTLEFIELD, playerB, "Eager Cadet"); diff --git a/Mage/src/main/java/mage/abilities/effects/common/CantBeTargetedAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CantBeTargetedAllEffect.java index f2ff47c9c4e..40635ee0c37 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CantBeTargetedAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CantBeTargetedAllEffect.java @@ -34,6 +34,7 @@ import mage.constants.Duration; import mage.constants.Outcome; import mage.filter.FilterObject; import mage.filter.FilterPermanent; +import mage.filter.FilterSpell; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -93,6 +94,10 @@ public class CantBeTargetedAllEffect extends ContinuousRuleModifyingEffectImpl { StackObject stackObject = game.getStack().getStackObject(event.getSourceId()); MageObject sourceObject; if (stackObject instanceof StackAbility) { + if (filterSource instanceof FilterSpell) { + // only spells have to be selected + return false; + } sourceObject = ((StackAbility) stackObject).getSourceObject(game); } else { sourceObject = stackObject;