diff --git a/Mage.Sets/src/mage/cards/b/BitterDownfall.java b/Mage.Sets/src/mage/cards/b/BitterDownfall.java
index 5a0e2234a03..2ea9546449c 100644
--- a/Mage.Sets/src/mage/cards/b/BitterDownfall.java
+++ b/Mage.Sets/src/mage/cards/b/BitterDownfall.java
@@ -10,9 +10,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
@@ -22,14 +20,7 @@ import java.util.UUID;
*/
public final class BitterDownfall extends CardImpl {
- private static final FilterPermanent filter
- = new FilterCreaturePermanent("a creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
- private static final Condition condition = new SourceTargetsPermanentCondition(filter);
+ private static final Condition condition = new SourceTargetsPermanentCondition(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN);
public BitterDownfall(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{B}");
diff --git a/Mage.Sets/src/mage/cards/b/BushiTenderfoot.java b/Mage.Sets/src/mage/cards/b/BushiTenderfoot.java
index 180f201dbe0..fc8e1049961 100644
--- a/Mage.Sets/src/mage/cards/b/BushiTenderfoot.java
+++ b/Mage.Sets/src/mage/cards/b/BushiTenderfoot.java
@@ -11,8 +11,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
import mage.game.permanent.token.TokenImpl;
import java.util.UUID;
@@ -22,12 +20,6 @@ import java.util.UUID;
*/
public final class BushiTenderfoot extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public BushiTenderfoot(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}");
this.subtype.add(SubType.HUMAN, SubType.SOLDIER);
@@ -68,6 +60,7 @@ class KenzoTheHardhearted extends TokenImpl {
this.addAbility(DoubleStrikeAbility.getInstance());
this.addAbility(new BushidoAbility(2));
}
+
private KenzoTheHardhearted(final KenzoTheHardhearted token) {
super(token);
}
diff --git a/Mage.Sets/src/mage/cards/c/CaseOfTheGorgonsKiss.java b/Mage.Sets/src/mage/cards/c/CaseOfTheGorgonsKiss.java
index 90c0c633d49..1ce3a754862 100644
--- a/Mage.Sets/src/mage/cards/c/CaseOfTheGorgonsKiss.java
+++ b/Mage.Sets/src/mage/cards/c/CaseOfTheGorgonsKiss.java
@@ -1,7 +1,5 @@
package mage.cards.c;
-import java.util.UUID;
-
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
@@ -16,19 +14,19 @@ import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect;
import mage.abilities.hint.common.CaseSolvedHint;
import mage.abilities.keyword.DeathtouchAbility;
import mage.abilities.keyword.LifelinkAbility;
-import mage.constants.Duration;
-import mage.constants.SubType;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.constants.Duration;
+import mage.constants.SubType;
+import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.permanent.token.TokenImpl;
import mage.target.TargetPermanent;
import mage.watchers.common.CardsPutIntoGraveyardWatcher;
+import java.util.UUID;
+
/**
* Case of the Gorgon's Kiss {B}
* Enchantment - Case
@@ -40,13 +38,6 @@ import mage.watchers.common.CardsPutIntoGraveyardWatcher;
*/
public final class CaseOfTheGorgonsKiss extends CardImpl {
- private static final FilterPermanent filter
- = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public CaseOfTheGorgonsKiss(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}");
@@ -55,7 +46,7 @@ public final class CaseOfTheGorgonsKiss extends CardImpl {
// When this Case enters the battlefield, destroy up to one target creature that was dealt damage this turn.
Ability initialAbility = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect())
.setTriggerPhrase("When this Case enters, ");
- initialAbility.addTarget(new TargetPermanent(0, 1, filter));
+ initialAbility.addTarget(new TargetPermanent(0, 1, StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
// To solve -- Three or more creature cards were put into graveyards from anywhere this turn.
Condition toSolveCondition = new CaseOfTheGorgonsKissCondition();
// Solved -- This Case is a 4/4 Gorgon creature with deathtouch and lifelink in addition to its other types.
@@ -66,7 +57,7 @@ public final class CaseOfTheGorgonsKiss extends CardImpl {
.setText("This Case is a 4/4 Gorgon creature with deathtouch and lifelink in addition to its other types."));
this.addAbility(new CaseAbility(initialAbility, toSolveCondition, solvedAbility)
- .addHint(new CaseOfTheGorgonsKissHint(toSolveCondition)),
+ .addHint(new CaseOfTheGorgonsKissHint(toSolveCondition)),
new CardsPutIntoGraveyardWatcher());
}
@@ -115,7 +106,7 @@ class CaseOfTheGorgonsKissHint extends CaseSolvedHint {
@Override
public String getConditionText(Game game, Ability ability) {
- int creatures = (int)game.getState()
+ int creatures = (int) game.getState()
.getWatcher(CardsPutIntoGraveyardWatcher.class)
.getCardsPutIntoGraveyardFromAnywhere(game)
.stream()
diff --git a/Mage.Sets/src/mage/cards/c/CovertCutpurse.java b/Mage.Sets/src/mage/cards/c/CovertCutpurse.java
index 25f3911e341..c9372e1d538 100644
--- a/Mage.Sets/src/mage/cards/c/CovertCutpurse.java
+++ b/Mage.Sets/src/mage/cards/c/CovertCutpurse.java
@@ -3,7 +3,6 @@ package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
-import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.DisturbAbility;
import mage.cards.CardImpl;
@@ -27,7 +26,7 @@ public final class CovertCutpurse extends CardImpl {
= new FilterCreaturePermanent("creature you don't control that was dealt damage this turn");
static {
- filter.add(TargetController.OPPONENT.getControllerPredicate());
+ filter.add(TargetController.NOT_YOU.getControllerPredicate());
filter.add(WasDealtDamageThisTurnPredicate.instance);
}
diff --git a/Mage.Sets/src/mage/cards/c/CrushingPain.java b/Mage.Sets/src/mage/cards/c/CrushingPain.java
index 7fbf6f552b8..857c7b78b63 100644
--- a/Mage.Sets/src/mage/cards/c/CrushingPain.java
+++ b/Mage.Sets/src/mage/cards/c/CrushingPain.java
@@ -1,34 +1,27 @@
package mage.cards.c;
-import java.util.UUID;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
-import mage.target.common.TargetCreaturePermanent;
+import mage.filter.StaticFilters;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
/**
- *
* @author LevelX
*/
public final class CrushingPain extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
- public CrushingPain (UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}");
+ public CrushingPain(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}");
this.subtype.add(SubType.ARCANE);
// Crushing Pain deals 6 damage to target creature that was dealt damage this turn.
this.getSpellAbility().addEffect(new DamageTargetEffect(6));
- this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
+ this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
}
private CrushingPain(final CrushingPain card) {
@@ -39,7 +32,4 @@ public final class CrushingPain extends CardImpl {
public CrushingPain copy() {
return new CrushingPain(this);
}
-
}
-
-
diff --git a/Mage.Sets/src/mage/cards/d/DownwindAmbusher.java b/Mage.Sets/src/mage/cards/d/DownwindAmbusher.java
index e84ba2f8fb2..97f44727c05 100644
--- a/Mage.Sets/src/mage/cards/d/DownwindAmbusher.java
+++ b/Mage.Sets/src/mage/cards/d/DownwindAmbusher.java
@@ -11,9 +11,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterOpponentsCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import mage.target.common.TargetOpponentsCreaturePermanent;
@@ -24,13 +22,6 @@ import java.util.UUID;
*/
public final class DownwindAmbusher extends CardImpl {
- private static final FilterPermanent filter
- = new FilterOpponentsCreaturePermanent("creature an opponent controls that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public DownwindAmbusher(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
@@ -48,7 +39,7 @@ public final class DownwindAmbusher extends CardImpl {
ability.addTarget(new TargetOpponentsCreaturePermanent());
// * Destroy target creature an opponent controls that was dealt damage this turn.
- ability.addMode(new Mode(new DestroyTargetEffect()).addTarget(new TargetPermanent(filter)));
+ ability.addMode(new Mode(new DestroyTargetEffect()).addTarget(new TargetPermanent(StaticFilters.FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN)));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/f/FatalBlow.java b/Mage.Sets/src/mage/cards/f/FatalBlow.java
index b8e97964f46..e22bad9a55e 100644
--- a/Mage.Sets/src/mage/cards/f/FatalBlow.java
+++ b/Mage.Sets/src/mage/cards/f/FatalBlow.java
@@ -1,34 +1,25 @@
-
package mage.cards.f;
-import java.util.UUID;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
-import mage.target.common.TargetCreaturePermanent;
+import mage.filter.StaticFilters;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
/**
- *
* @author Quercitron
*/
public final class FatalBlow extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public FatalBlow(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{B}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}");
// Destroy target creature that was dealt damage this turn. It can't be regenerated.
this.getSpellAbility().addEffect(new DestroyTargetEffect(true));
- this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
+ this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
}
private FatalBlow(final FatalBlow card) {
diff --git a/Mage.Sets/src/mage/cards/f/FathomFleetCutthroat.java b/Mage.Sets/src/mage/cards/f/FathomFleetCutthroat.java
index a045da13c83..a91953a16ae 100644
--- a/Mage.Sets/src/mage/cards/f/FathomFleetCutthroat.java
+++ b/Mage.Sets/src/mage/cards/f/FathomFleetCutthroat.java
@@ -1,7 +1,6 @@
package mage.cards.f;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
@@ -10,24 +9,16 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.constants.TargetController;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
-import mage.target.common.TargetCreaturePermanent;
+import mage.filter.StaticFilters;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
/**
- *
* @author TheElk801
*/
public final class FathomFleetCutthroat extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- filter.add(TargetController.OPPONENT.getControllerPredicate());
- }
-
public FathomFleetCutthroat(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
@@ -38,7 +29,7 @@ public final class FathomFleetCutthroat extends CardImpl {
// When Fathom Fleet Cutthroat enters the battlefield, destroy target creature an opponent controls that was dealt damage this turn.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
- ability.addTarget(new TargetCreaturePermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/f/FinalStingFaerie.java b/Mage.Sets/src/mage/cards/f/FinalStingFaerie.java
index ebc23fc4f30..2ba5fcf62c2 100644
--- a/Mage.Sets/src/mage/cards/f/FinalStingFaerie.java
+++ b/Mage.Sets/src/mage/cards/f/FinalStingFaerie.java
@@ -1,7 +1,5 @@
-
package mage.cards.f;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
@@ -11,24 +9,18 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
-import mage.target.common.TargetCreaturePermanent;
+import mage.filter.StaticFilters;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
/**
- *
* @author fireshoes
*/
public final class FinalStingFaerie extends CardImpl {
-
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
public FinalStingFaerie(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
this.subtype.add(SubType.FAERIE);
this.subtype.add(SubType.ASSASSIN);
this.power = new MageInt(2);
@@ -36,11 +28,11 @@ public final class FinalStingFaerie extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
-
+
// When Final-Sting Faerie enters the battlefield, destroy target creature that was dealt damage this turn.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
- ability.addTarget(new TargetCreaturePermanent(filter));
- this.addAbility(ability);
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
+ this.addAbility(ability);
}
private FinalStingFaerie(final FinalStingFaerie card) {
diff --git a/Mage.Sets/src/mage/cards/h/HoodedAssassin.java b/Mage.Sets/src/mage/cards/h/HoodedAssassin.java
index cb6f2002fa8..8cb7ddc9a65 100644
--- a/Mage.Sets/src/mage/cards/h/HoodedAssassin.java
+++ b/Mage.Sets/src/mage/cards/h/HoodedAssassin.java
@@ -1,7 +1,6 @@
package mage.cards.h;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.Mode;
@@ -13,24 +12,18 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
-import mage.target.common.TargetCreaturePermanent;
+import mage.filter.StaticFilters;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
/**
- *
* @author LevelX2
*/
public final class HoodedAssassin extends CardImpl {
-
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public HoodedAssassin(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.ASSASSIN);
this.power = new MageInt(1);
@@ -41,9 +34,9 @@ public final class HoodedAssassin extends CardImpl {
Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false);
// * Destroy target creature that was dealt damage this turn.
Mode mode = new Mode(new DestroyTargetEffect());
- mode.addTarget(new TargetCreaturePermanent(filter));
+ mode.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
ability.addMode(mode);
- this.addAbility(ability);
+ this.addAbility(ability);
}
private HoodedAssassin(final HoodedAssassin card) {
diff --git a/Mage.Sets/src/mage/cards/i/InitiateOfBlood.java b/Mage.Sets/src/mage/cards/i/InitiateOfBlood.java
index b7f63cb6eee..6ccbc724a7d 100644
--- a/Mage.Sets/src/mage/cards/i/InitiateOfBlood.java
+++ b/Mage.Sets/src/mage/cards/i/InitiateOfBlood.java
@@ -1,10 +1,9 @@
package mage.cards.i;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
-import mage.abilities.common.delayed.WhenTargetDiesDelayedTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.common.delayed.WhenTargetDiesDelayedTriggeredAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
import mage.abilities.effects.common.DamageTargetEffect;
@@ -14,24 +13,19 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.game.permanent.token.TokenImpl;
-import mage.target.common.TargetCreaturePermanent;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
/**
* @author awjackson
*/
public final class InitiateOfBlood extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public InitiateOfBlood(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
this.subtype.add(SubType.OGRE, SubType.SHAMAN);
this.power = new MageInt(2);
@@ -45,7 +39,7 @@ public final class InitiateOfBlood extends CardImpl {
ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new WhenTargetDiesDelayedTriggeredAbility(
new FlipSourceEffect(new GokaTheUnjust()).setText("flip {this}")
)));
- ability.addTarget(new TargetCreaturePermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
@@ -61,12 +55,6 @@ public final class InitiateOfBlood extends CardImpl {
class GokaTheUnjust extends TokenImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
GokaTheUnjust() {
super("Goka the Unjust", "");
this.supertype.add(SuperType.LEGENDARY);
@@ -78,9 +66,10 @@ class GokaTheUnjust extends TokenImpl {
// {T}: Goka the Unjust deals 4 damage to target creature that was dealt damage this turn.
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(4), new TapSourceCost());
- ability.addTarget(new TargetCreaturePermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
+
private GokaTheUnjust(final GokaTheUnjust token) {
super(token);
}
diff --git a/Mage.Sets/src/mage/cards/l/LurkingDeadeye.java b/Mage.Sets/src/mage/cards/l/LurkingDeadeye.java
index 3c2c3cdb556..77952066422 100644
--- a/Mage.Sets/src/mage/cards/l/LurkingDeadeye.java
+++ b/Mage.Sets/src/mage/cards/l/LurkingDeadeye.java
@@ -9,9 +9,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@@ -21,13 +19,6 @@ import java.util.UUID;
*/
public final class LurkingDeadeye extends CardImpl {
- private static final FilterPermanent filter
- = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public LurkingDeadeye(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
@@ -41,7 +32,7 @@ public final class LurkingDeadeye extends CardImpl {
// When Lurking Deadeye enters the battlefield, destroy target creature that was dealt damage this turn.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
- ability.addTarget(new TargetPermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/Manticore.java b/Mage.Sets/src/mage/cards/m/Manticore.java
index ea26f11881f..6c730c9c237 100644
--- a/Mage.Sets/src/mage/cards/m/Manticore.java
+++ b/Mage.Sets/src/mage/cards/m/Manticore.java
@@ -10,9 +10,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterOpponentsCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@@ -22,14 +20,6 @@ import java.util.UUID;
*/
public final class Manticore extends CardImpl {
- private static final FilterPermanent filter = new FilterOpponentsCreaturePermanent(
- "creature an opponent controls that was dealt damage this turn"
- );
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public Manticore(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
@@ -45,7 +35,7 @@ public final class Manticore extends CardImpl {
// Tail Spikes — When Manticore enters the battlefield, destroy target creature an opponent controls that was dealt damage this turn.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
- ability.addTarget(new TargetPermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability.withFlavorWord("Tail Spikes"));
}
diff --git a/Mage.Sets/src/mage/cards/m/MirrodinAvenged.java b/Mage.Sets/src/mage/cards/m/MirrodinAvenged.java
index d7cd3f0a408..2c12846d728 100644
--- a/Mage.Sets/src/mage/cards/m/MirrodinAvenged.java
+++ b/Mage.Sets/src/mage/cards/m/MirrodinAvenged.java
@@ -5,9 +5,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@@ -17,19 +15,12 @@ import java.util.UUID;
*/
public final class MirrodinAvenged extends CardImpl {
- private static final FilterPermanent filter
- = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public MirrodinAvenged(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}");
// Destroy target creature that was dealt damage this turn.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
- this.getSpellAbility().addTarget(new TargetPermanent(filter));
+ this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
"));
diff --git a/Mage.Sets/src/mage/cards/o/OgreSiegebreaker.java b/Mage.Sets/src/mage/cards/o/OgreSiegebreaker.java
index 977fa7c5a32..e0e6d58c2d3 100644
--- a/Mage.Sets/src/mage/cards/o/OgreSiegebreaker.java
+++ b/Mage.Sets/src/mage/cards/o/OgreSiegebreaker.java
@@ -9,9 +9,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@@ -21,13 +19,6 @@ import java.util.UUID;
*/
public final class OgreSiegebreaker extends CardImpl {
- private static final FilterPermanent filter
- = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public OgreSiegebreaker(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{R}");
@@ -38,7 +29,7 @@ public final class OgreSiegebreaker extends CardImpl {
// {2}{B}{R}: Destroy target creature that was dealt damage this turn.
Ability ability = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}{R}"));
- ability.addTarget(new TargetPermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/o/Opportunist.java b/Mage.Sets/src/mage/cards/o/Opportunist.java
index 91e118c0703..4bb6ddc3296 100644
--- a/Mage.Sets/src/mage/cards/o/Opportunist.java
+++ b/Mage.Sets/src/mage/cards/o/Opportunist.java
@@ -1,8 +1,5 @@
-
-
package mage.cards.o;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
@@ -12,24 +9,18 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.constants.Zone;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
-import mage.target.common.TargetCreaturePermanent;
+import mage.filter.StaticFilters;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
/**
* @author LevelX
*/
public final class Opportunist extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public Opportunist(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.SOLDIER);
@@ -38,7 +29,7 @@ public final class Opportunist extends CardImpl {
// {T}: Opportunist deals 1 damage to target creature that was dealt damage this turn.
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(1), new TapSourceCost());
- ability.addTarget(new TargetCreaturePermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
@@ -50,5 +41,4 @@ public final class Opportunist extends CardImpl {
public Opportunist copy() {
return new Opportunist(this);
}
-
}
diff --git a/Mage.Sets/src/mage/cards/o/OrzhovEuthanist.java b/Mage.Sets/src/mage/cards/o/OrzhovEuthanist.java
index 9a8361faa96..a649b3ff144 100644
--- a/Mage.Sets/src/mage/cards/o/OrzhovEuthanist.java
+++ b/Mage.Sets/src/mage/cards/o/OrzhovEuthanist.java
@@ -1,7 +1,5 @@
-
package mage.cards.o;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.effects.common.DestroyTargetEffect;
@@ -10,24 +8,18 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
-import mage.target.Target;
-import mage.target.common.TargetCreaturePermanent;
+import mage.filter.StaticFilters;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
/**
- *
* @author LevelX2
*/
public final class OrzhovEuthanist extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public OrzhovEuthanist(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.ASSASSIN);
@@ -37,8 +29,7 @@ public final class OrzhovEuthanist extends CardImpl {
// Haunt
// When Orzhov Euthanist enters the battlefield or the creature it haunts dies, destroy target creature that was dealt damage this turn.
Ability ability = new HauntAbility(this, new DestroyTargetEffect());
- Target target = new TargetCreaturePermanent(filter);
- ability.addTarget(target);
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/q/QutrubForayer.java b/Mage.Sets/src/mage/cards/q/QutrubForayer.java
new file mode 100644
index 00000000000..4ec312371c3
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/q/QutrubForayer.java
@@ -0,0 +1,50 @@
+package mage.cards.q;
+
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.Mode;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.common.DestroyTargetEffect;
+import mage.abilities.effects.common.ExileTargetEffect;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.CardType;
+import mage.constants.SubType;
+import mage.filter.StaticFilters;
+import mage.target.TargetPermanent;
+import mage.target.common.TargetCardInASingleGraveyard;
+
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class QutrubForayer extends CardImpl {
+
+ public QutrubForayer(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
+
+ this.subtype.add(SubType.ZOMBIE);
+ this.subtype.add(SubType.HORROR);
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(2);
+
+ // When this creature enters, choose one --
+ // * Destroy target creature that was dealt damage this turn.
+ Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
+
+ // * Exile up to two target cards from a single graveyard.
+ ability.addMode(new Mode(new ExileTargetEffect()).addTarget(new TargetCardInASingleGraveyard(0, 2, StaticFilters.FILTER_CARD_CARDS)));
+ this.addAbility(ability);
+ }
+
+ private QutrubForayer(final QutrubForayer card) {
+ super(card);
+ }
+
+ @Override
+ public QutrubForayer copy() {
+ return new QutrubForayer(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/cards/r/RooftopAssassin.java b/Mage.Sets/src/mage/cards/r/RooftopAssassin.java
index 12000e5d9ea..3cecafbee66 100644
--- a/Mage.Sets/src/mage/cards/r/RooftopAssassin.java
+++ b/Mage.Sets/src/mage/cards/r/RooftopAssassin.java
@@ -11,9 +11,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterOpponentsCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@@ -23,13 +21,6 @@ import java.util.UUID;
*/
public final class RooftopAssassin extends CardImpl {
- private static final FilterPermanent filter
- = new FilterOpponentsCreaturePermanent("creature an opponent controls that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public RooftopAssassin(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
@@ -49,7 +40,7 @@ public final class RooftopAssassin extends CardImpl {
// When Rooftop Assassin enters the battlefield, destroy target creature an opponent controls that was dealt damage this turn.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
- ability.addTarget(new TargetPermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/StingbladeAssassin.java b/Mage.Sets/src/mage/cards/s/StingbladeAssassin.java
index 4887d761588..e3cd1c8b2a0 100644
--- a/Mage.Sets/src/mage/cards/s/StingbladeAssassin.java
+++ b/Mage.Sets/src/mage/cards/s/StingbladeAssassin.java
@@ -10,9 +10,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterOpponentsCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@@ -22,14 +20,6 @@ import java.util.UUID;
*/
public final class StingbladeAssassin extends CardImpl {
- private static final FilterPermanent filter = new FilterOpponentsCreaturePermanent(
- "creature an opponent controls that was dealt damage this turn"
- );
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public StingbladeAssassin(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
@@ -46,7 +36,7 @@ public final class StingbladeAssassin extends CardImpl {
// When Stingblade Assassin enters the battlefield, destroy target creature an opponent controls that was dealt damage this turn.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
- ability.addTarget(new TargetPermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/u/UnsparingBoltcaster.java b/Mage.Sets/src/mage/cards/u/UnsparingBoltcaster.java
index b9bfc685171..ac77afc870b 100644
--- a/Mage.Sets/src/mage/cards/u/UnsparingBoltcaster.java
+++ b/Mage.Sets/src/mage/cards/u/UnsparingBoltcaster.java
@@ -8,9 +8,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterOpponentsCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@@ -20,13 +18,6 @@ import java.util.UUID;
*/
public final class UnsparingBoltcaster extends CardImpl {
- private static final FilterPermanent filter
- = new FilterOpponentsCreaturePermanent("creature an opponent controls that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public UnsparingBoltcaster(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
@@ -37,7 +28,7 @@ public final class UnsparingBoltcaster extends CardImpl {
// When this creature enters, it deals 5 damage to target creature an opponent controls that was dealt damage this turn.
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(5));
- ability.addTarget(new TargetPermanent(filter));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/w/WitchsMist.java b/Mage.Sets/src/mage/cards/w/WitchsMist.java
index 38310c003ff..dd03c86a886 100644
--- a/Mage.Sets/src/mage/cards/w/WitchsMist.java
+++ b/Mage.Sets/src/mage/cards/w/WitchsMist.java
@@ -1,7 +1,5 @@
-
package mage.cards.w;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
@@ -10,30 +8,22 @@ import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.Zone;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
-import mage.target.common.TargetCreaturePermanent;
+import mage.filter.StaticFilters;
+import mage.target.TargetPermanent;
+
+import java.util.UUID;
/**
- *
* @author North
*/
public final class WitchsMist extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public WitchsMist(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{B}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}");
// {2}{B}, {T}: Destroy target creature that was dealt damage this turn.
- Ability ability = new SimpleActivatedAbility(new DestroyTargetEffect(),new ManaCostsImpl<>("{2}{B}"));
- ability.addTarget(new TargetCreaturePermanent(filter));
+ Ability ability = new SimpleActivatedAbility(new DestroyTargetEffect(), new ManaCostsImpl<>("{2}{B}"));
+ ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/y/YouAreAlreadyDead.java b/Mage.Sets/src/mage/cards/y/YouAreAlreadyDead.java
index 450bd7676ee..f6b77a42ec0 100644
--- a/Mage.Sets/src/mage/cards/y/YouAreAlreadyDead.java
+++ b/Mage.Sets/src/mage/cards/y/YouAreAlreadyDead.java
@@ -5,9 +5,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.filter.FilterPermanent;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.WasDealtDamageThisTurnPredicate;
+import mage.filter.StaticFilters;
import mage.target.TargetPermanent;
import java.util.UUID;
@@ -17,19 +15,12 @@ import java.util.UUID;
*/
public final class YouAreAlreadyDead extends CardImpl {
- private static final FilterPermanent filter
- = new FilterCreaturePermanent("creature that was dealt damage this turn");
-
- static {
- filter.add(WasDealtDamageThisTurnPredicate.instance);
- }
-
public YouAreAlreadyDead(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}");
// Destroy target creature that was dealt damage this turn.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
- this.getSpellAbility().addTarget(new TargetPermanent(filter));
+ this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_CREATURE_DAMAGED_THIS_TURN));
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
"));
diff --git a/Mage.Sets/src/mage/sets/FinalFantasy.java b/Mage.Sets/src/mage/sets/FinalFantasy.java
index 19d5883d20e..f2d33240ba7 100644
--- a/Mage.Sets/src/mage/sets/FinalFantasy.java
+++ b/Mage.Sets/src/mage/sets/FinalFantasy.java
@@ -368,6 +368,7 @@ public final class FinalFantasy extends ExpansionSet {
cards.add(new SetCardInfo("Quina, Qu Gourmet", 471, Rarity.UNCOMMON, mage.cards.q.QuinaQuGourmet.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Quistis Trepe", 440, Rarity.UNCOMMON, mage.cards.q.QuistisTrepe.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Quistis Trepe", 66, Rarity.UNCOMMON, mage.cards.q.QuistisTrepe.class, NON_FULL_USE_VARIOUS));
+ cards.add(new SetCardInfo("Qutrub Forayer", 112, Rarity.COMMON, mage.cards.q.QutrubForayer.class));
cards.add(new SetCardInfo("Rabanastre, Royal City", 287, Rarity.COMMON, mage.cards.r.RabanastreRoyalCity.class));
cards.add(new SetCardInfo("Ragnarok, Divine Deliverance", "381b", Rarity.UNCOMMON, mage.cards.r.RagnarokDivineDeliverance.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ragnarok, Divine Deliverance", "446b", Rarity.UNCOMMON, mage.cards.r.RagnarokDivineDeliverance.class, NON_FULL_USE_VARIOUS));
diff --git a/Mage/src/main/java/mage/abilities/condition/common/SourceTargetsPermanentCondition.java b/Mage/src/main/java/mage/abilities/condition/common/SourceTargetsPermanentCondition.java
index f961c55855f..3d9e142bd29 100644
--- a/Mage/src/main/java/mage/abilities/condition/common/SourceTargetsPermanentCondition.java
+++ b/Mage/src/main/java/mage/abilities/condition/common/SourceTargetsPermanentCondition.java
@@ -35,7 +35,7 @@ public class SourceTargetsPermanentCondition implements Condition {
@Override
public String toString() {
- return "it targets " + filter.getMessage();
+ return "it targets " + CardUtil.addArticle(filter.getMessage());
}
}
diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java
index d2ad491a720..ab982e0c53b 100644
--- a/Mage/src/main/java/mage/filter/StaticFilters.java
+++ b/Mage/src/main/java/mage/filter/StaticFilters.java
@@ -7,10 +7,7 @@ import mage.filter.common.*;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.*;
import mage.filter.predicate.other.AnotherTargetPredicate;
-import mage.filter.predicate.permanent.AttachedOrShareCreatureTypePredicate;
-import mage.filter.predicate.permanent.RingBearerPredicate;
-import mage.filter.predicate.permanent.TappedPredicate;
-import mage.filter.predicate.permanent.TokenPredicate;
+import mage.filter.predicate.permanent.*;
/**
* A class that holds Filter objects that may not be modified without copying
@@ -1216,6 +1213,22 @@ public final class StaticFilters {
FILTER_BLOCKING_CREATURES.setLockedFilter(true);
}
+ public static final FilterPermanent FILTER_CREATURE_DAMAGED_THIS_TURN = new FilterCreaturePermanent("creature that was dealt damage this turn");
+
+ static {
+ FILTER_CREATURE_DAMAGED_THIS_TURN.add(WasDealtDamageThisTurnPredicate.instance);
+ FILTER_CREATURE_DAMAGED_THIS_TURN.setLockedFilter(true);
+ }
+
+
+ public static final FilterPermanent FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN = new FilterCreaturePermanent("creature an opponent controls that was dealt damage this turn");
+
+ static {
+ FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN.add(TargetController.OPPONENT.getControllerPredicate());
+ FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN.add(WasDealtDamageThisTurnPredicate.instance);
+ FILTER_OPPONENTS_CREATURE_DAMAGED_THIS_TURN.setLockedFilter(true);
+ }
+
public static final FilterPermanent FILTER_PERMANENT_AURAS = new FilterEnchantmentPermanent("Auras");
static {