diff --git a/Mage.Sets/src/mage/cards/a/ArcTrail.java b/Mage.Sets/src/mage/cards/a/ArcTrail.java index 7e8be0cae9f..9706bd2bbd6 100644 --- a/Mage.Sets/src/mage/cards/a/ArcTrail.java +++ b/Mage.Sets/src/mage/cards/a/ArcTrail.java @@ -25,7 +25,6 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.cards.a; import java.io.ObjectStreamException; @@ -37,7 +36,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.common.FilterCreatureOrPlayer; +import mage.filter.common.FilterCreaturePlayerOrPlaneswalker; import mage.filter.predicate.mageobject.AnotherTargetPredicate; import mage.game.Game; import mage.game.permanent.Permanent; @@ -51,27 +50,27 @@ import mage.target.common.TargetAnyTarget; */ public class ArcTrail extends CardImpl { - public ArcTrail (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}"); + public ArcTrail(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}"); // Arc Trail deals 2 damage to target creature or player and 1 damage to another target creature or player - FilterCreatureOrPlayer filter1 = new FilterCreatureOrPlayer("creature or player to deal 2 damage"); + FilterCreaturePlayerOrPlaneswalker filter1 = new FilterCreaturePlayerOrPlaneswalker("creature, player or planeswalker to deal 2 damage"); TargetAnyTarget target1 = new TargetAnyTarget(1, 1, filter1); target1.setTargetTag(1); this.getSpellAbility().addTarget(target1); - - FilterCreatureOrPlayer filter2 = new FilterCreatureOrPlayer("another creature or player to deal 1 damage"); + + FilterCreaturePlayerOrPlaneswalker filter2 = new FilterCreaturePlayerOrPlaneswalker("another creature, player or planeswalker to deal 1 damage"); AnotherTargetPredicate predicate = new AnotherTargetPredicate(2); filter2.getCreatureFilter().add(predicate); filter2.getPlayerFilter().add(predicate); TargetAnyTarget target2 = new TargetAnyTarget(1, 1, filter2); target2.setTargetTag(2); this.getSpellAbility().addTarget(target2); - + this.getSpellAbility().addEffect(ArcTrailEffect.getInstance()); } - public ArcTrail (final ArcTrail card) { + public ArcTrail(final ArcTrail card) { super(card); } @@ -84,7 +83,7 @@ public class ArcTrail extends CardImpl { class ArcTrailEffect extends OneShotEffect { - private static final ArcTrailEffect instance = new ArcTrailEffect(); + private static final ArcTrailEffect instance = new ArcTrailEffect(); private Object readResolve() throws ObjectStreamException { return instance; @@ -94,9 +93,9 @@ class ArcTrailEffect extends OneShotEffect { return instance; } - private ArcTrailEffect ( ) { + private ArcTrailEffect() { super(Outcome.Damage); - staticText = "{source} deals 2 damage to target creature or player and 1 damage to another target creature or player"; + staticText = "{source} deals 2 damage to any target and 1 damage to another target"; } @Override @@ -106,19 +105,19 @@ class ArcTrailEffect extends OneShotEffect { boolean twoDamageDone = false; int damage = 2; - for ( Target target : source.getTargets() ) { + for (Target target : source.getTargets()) { Permanent permanent = game.getPermanent(target.getFirstTarget()); - if ( twoDamageDone ) { + if (twoDamageDone) { damage = 1; } if (permanent != null) { - applied |= (permanent.damage( damage, source.getSourceId(), game, false, true ) > 0); + applied |= (permanent.damage(damage, source.getSourceId(), game, false, true) > 0); } Player player = game.getPlayer(target.getFirstTarget()); if (player != null) { - applied |= (player.damage( damage, source.getSourceId(), game, false, true ) > 0); + applied |= (player.damage(damage, source.getSourceId(), game, false, true) > 0); } twoDamageDone = true; diff --git a/Mage.Sets/src/mage/cards/c/CauterySliver.java b/Mage.Sets/src/mage/cards/c/CauterySliver.java index ba2d1fe4436..8f7b0733ec9 100644 --- a/Mage.Sets/src/mage/cards/c/CauterySliver.java +++ b/Mage.Sets/src/mage/cards/c/CauterySliver.java @@ -44,8 +44,8 @@ import mage.constants.Duration; import mage.constants.SubType; import mage.constants.Zone; import mage.filter.FilterPermanent; -import mage.filter.common.FilterCreatureOrPlayer; import mage.filter.common.FilterCreaturePermanent; +import mage.filter.common.FilterCreaturePlayerOrPlaneswalker; import mage.target.common.TargetAnyTarget; /** @@ -57,7 +57,7 @@ public class CauterySliver extends CardImpl { private static final FilterPermanent filter = new FilterPermanent(SubType.SLIVER, "All Slivers"); public CauterySliver(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}{W}"); this.subtype.add(SubType.SLIVER); this.power = new MageInt(2); this.toughness = new MageInt(2); @@ -88,16 +88,17 @@ public class CauterySliver extends CardImpl { } } - class TargetSliverCreatureOrPlayer extends TargetAnyTarget { - public TargetSliverCreatureOrPlayer(){ + + public TargetSliverCreatureOrPlayer() { super(); filter = new FilterCreatureOrPlayerByType("Sliver", "Sliver creature or player"); } } -class FilterCreatureOrPlayerByType extends FilterCreatureOrPlayer { - public FilterCreatureOrPlayerByType (String type, String name) { +class FilterCreatureOrPlayerByType extends FilterCreaturePlayerOrPlaneswalker { + + public FilterCreatureOrPlayerByType(String type, String name) { super(name); creatureFilter = new FilterCreaturePermanent(type); } diff --git a/Mage.Sets/src/mage/cards/c/ConeOfFlame.java b/Mage.Sets/src/mage/cards/c/ConeOfFlame.java index 59aa484aa12..05b00b6a939 100644 --- a/Mage.Sets/src/mage/cards/c/ConeOfFlame.java +++ b/Mage.Sets/src/mage/cards/c/ConeOfFlame.java @@ -34,7 +34,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; -import mage.filter.common.FilterCreatureOrPlayer; +import mage.filter.common.FilterCreaturePlayerOrPlaneswalker; import mage.filter.predicate.mageobject.AnotherTargetPredicate; import mage.game.Game; import mage.game.permanent.Permanent; @@ -49,31 +49,30 @@ import mage.target.common.TargetAnyTarget; public class ConeOfFlame extends CardImpl { public ConeOfFlame(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}{R}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}"); // Cone of Flame deals 1 damage to target creature or player, 2 damage to another target creature or player, and 3 damage to a third target creature or player. - FilterCreatureOrPlayer filter1 = new FilterCreatureOrPlayer("creature or player to deal 1 damage"); + FilterCreaturePlayerOrPlaneswalker filter1 = new FilterCreaturePlayerOrPlaneswalker("creature, player or planeswalker to deal 1 damage"); TargetAnyTarget target1 = new TargetAnyTarget(1, 1, filter1); target1.setTargetTag(1); this.getSpellAbility().addTarget(target1); - - FilterCreatureOrPlayer filter2 = new FilterCreatureOrPlayer("another creature or player to deal 2 damage"); + + FilterCreaturePlayerOrPlaneswalker filter2 = new FilterCreaturePlayerOrPlaneswalker("another creature, player or planeswalker to deal 2 damage"); AnotherTargetPredicate predicate2 = new AnotherTargetPredicate(2); filter2.getCreatureFilter().add(predicate2); filter2.getPlayerFilter().add(predicate2); TargetAnyTarget target2 = new TargetAnyTarget(1, 1, filter2); target2.setTargetTag(2); this.getSpellAbility().addTarget(target2); - - FilterCreatureOrPlayer filter3 = new FilterCreatureOrPlayer("another creature or player to deal 3 damage"); + + FilterCreaturePlayerOrPlaneswalker filter3 = new FilterCreaturePlayerOrPlaneswalker("another creature, player or planeswalker to deal 3 damage"); AnotherTargetPredicate predicate3 = new AnotherTargetPredicate(3); filter3.getCreatureFilter().add(predicate3); filter3.getPlayerFilter().add(predicate3); TargetAnyTarget target3 = new TargetAnyTarget(1, 1, filter3); target3.setTargetTag(3); this.getSpellAbility().addTarget(target3); - + this.getSpellAbility().addEffect(new ConeOfFlameEffect()); } @@ -91,9 +90,11 @@ class ConeOfFlameEffect extends OneShotEffect { public ConeOfFlameEffect() { super(Outcome.Damage); - this.staticText = "{source} deals 1 damage to target creature or player, 2 damage to another target creature or player, and 3 damage to a third target creature or player"; + this.staticText = "{source} deals 1 damage to any target, " + + "2 damage to another target, " + + "and 3 damage to a third target"; } - + public ConeOfFlameEffect(final ConeOfFlameEffect effect) { super(effect); } @@ -102,7 +103,7 @@ class ConeOfFlameEffect extends OneShotEffect { public ConeOfFlameEffect copy() { return new ConeOfFlameEffect(this); } - + @Override public boolean apply(Game game, Ability source) { boolean applied = false; @@ -120,5 +121,5 @@ class ConeOfFlameEffect extends OneShotEffect { } return applied; } - + } diff --git a/Mage.Sets/src/mage/cards/i/ImperialGunner.java b/Mage.Sets/src/mage/cards/i/ImperialGunner.java index 3d9099ac39c..c102ab82909 100644 --- a/Mage.Sets/src/mage/cards/i/ImperialGunner.java +++ b/Mage.Sets/src/mage/cards/i/ImperialGunner.java @@ -39,7 +39,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; -import mage.filter.common.FilterCreatureOrPlayer; +import mage.filter.common.FilterCreaturePlayerOrPlaneswalker; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.target.common.TargetAnyTarget; @@ -49,14 +49,14 @@ import mage.target.common.TargetAnyTarget; */ public class ImperialGunner extends CardImpl { - private static final FilterCreatureOrPlayer filter = new FilterCreatureOrPlayer("target player or Starship creature"); + private static final FilterCreaturePlayerOrPlaneswalker filter = new FilterCreaturePlayerOrPlaneswalker("target player, planeswalker or Starship creature"); static { filter.getCreatureFilter().add(new SubtypePredicate(SubType.STARSHIP)); } public ImperialGunner(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(1); diff --git a/Mage.Sets/src/mage/cards/n/NeedleDrop.java b/Mage.Sets/src/mage/cards/n/NeedleDrop.java index e5382acde58..6c84d92cd9d 100644 --- a/Mage.Sets/src/mage/cards/n/NeedleDrop.java +++ b/Mage.Sets/src/mage/cards/n/NeedleDrop.java @@ -36,7 +36,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.common.FilterCreatureOrPlayer; +import mage.filter.common.FilterCreaturePlayerOrPlaneswalker; import mage.filter.predicate.Predicate; import mage.game.Game; import mage.players.Player; @@ -49,19 +49,20 @@ import mage.watchers.common.DamageDoneWatcher; */ public class NeedleDrop extends CardImpl { - private static final FilterCreatureOrPlayer FILTER = new FilterCreatureOrPlayer(); + private static final FilterCreaturePlayerOrPlaneswalker FILTER = new FilterCreaturePlayerOrPlaneswalker(); static { FILTER.getCreatureFilter().add(new DamagedThisTurnPredicate()); + FILTER.getPlaneswalkerFilter().add(new DamagedThisTurnPredicate()); FILTER.getPlayerFilter().add(new DamagedThisTurnPredicate()); } public NeedleDrop(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}"); // Needle Drop deals 1 damage to target creature or player that was dealt damage this turn. Effect effect = new DamageTargetEffect(1); - effect.setText("{this} deals 1 damage to target creature or player that was dealt damage this turn"); + effect.setText("{this} deals 1 damage to any target that was dealt damage this turn"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addTarget(new TargetAnyTarget(1, 1, FILTER)); @@ -73,7 +74,6 @@ public class NeedleDrop extends CardImpl { super(card); } - @Override public NeedleDrop copy() { return new NeedleDrop(this); diff --git a/Mage.Sets/src/mage/cards/s/StarDestroyer.java b/Mage.Sets/src/mage/cards/s/StarDestroyer.java index 01731bb968b..224bd3b7146 100644 --- a/Mage.Sets/src/mage/cards/s/StarDestroyer.java +++ b/Mage.Sets/src/mage/cards/s/StarDestroyer.java @@ -47,7 +47,7 @@ import mage.filter.predicate.Predicates; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.game.permanent.token.TIEFighterToken; -import mage.target.common.TargetAnyTarget; +import mage.target.common.TargetCreatureOrPlayer; import mage.target.common.TargetCreaturePermanent; /** @@ -65,7 +65,7 @@ public class StarDestroyer extends CardImpl { } public StarDestroyer(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{4}{U}{B}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}{U}{B}{R}"); this.subtype.add(SubType.STARSHIP); this.power = new MageInt(6); this.toughness = new MageInt(6); @@ -83,7 +83,7 @@ public class StarDestroyer extends CardImpl { // {2}{R}: Star Destroyer deals 2 damge to target non-Starship creature or player. ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{2}{R}")); - ability.addTarget(new TargetAnyTarget(filter3)); + ability.addTarget(new TargetCreatureOrPlayer(filter3)); this.addAbility(ability); }