use TargetArtifactPermanent

This commit is contained in:
Neil Gentleman 2016-07-17 12:50:58 -07:00
parent 2e46fb9deb
commit 8d0e7e1b40
18 changed files with 36 additions and 60 deletions

View file

@ -34,8 +34,7 @@ import mage.abilities.keyword.FlashbackAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.TimingRule; import mage.constants.TimingRule;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
import java.util.UUID; import java.util.UUID;
@ -48,7 +47,7 @@ public class AncientGrudge extends CardImpl {
// Destroy target artifact. // Destroy target artifact.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
// Flashback {G} // Flashback {G}
this.addAbility(new FlashbackAbility(new ManaCostsImpl("{G}"), TimingRule.INSTANT)); this.addAbility(new FlashbackAbility(new ManaCostsImpl("{G}"), TimingRule.INSTANT));

View file

@ -34,9 +34,8 @@ import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterArtifactPermanent;
import mage.game.permanent.token.SaprolingToken; import mage.game.permanent.token.SaprolingToken;
import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent;
/** /**
* *
@ -50,7 +49,7 @@ public class ArtifactMutation extends CardImpl {
// Destroy target artifact. It can't be regenerated. // Destroy target artifact. It can't be regenerated.
this.getSpellAbility().addEffect(new DestroyTargetEffect(true)); this.getSpellAbility().addEffect(new DestroyTargetEffect(true));
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
// create X 1/1 green Saproling creature tokens, where X is that artifact's converted mana cost. // create X 1/1 green Saproling creature tokens, where X is that artifact's converted mana cost.
this.getSpellAbility().addEffect(new CreateTokenEffect(new SaprolingToken(), new TargetConvertedManaCost())); this.getSpellAbility().addEffect(new CreateTokenEffect(new SaprolingToken(), new TargetConvertedManaCost()));
} }

View file

@ -40,8 +40,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* *
@ -60,7 +59,7 @@ public class ElvishScrapper extends CardImpl {
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{G}")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{G}"));
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost()); ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetPermanent(new FilterArtifactPermanent())); ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -18,11 +18,10 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterArtifactPermanent;
import mage.game.Game; import mage.game.Game;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent;
/** /**
* *
@ -41,7 +40,7 @@ public class GoblinArchaeologist extends CardImpl {
// {R}, {T]: Flip a coin. If you win the flip, destroy target artifact and untap Goblin Archaeologist. If you lose the flip, sacrifice Goblin Archaeologist. // {R}, {T]: Flip a coin. If you win the flip, destroy target artifact and untap Goblin Archaeologist. If you lose the flip, sacrifice Goblin Archaeologist.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GoblinArchaeologistEffect(),new ManaCostsImpl("{R}")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GoblinArchaeologistEffect(),new ManaCostsImpl("{R}"));
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
ability.addTarget(new TargetPermanent(new FilterArtifactPermanent())); ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -35,9 +35,7 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.Target;
import mage.target.TargetPermanent;
/** /**
* *
@ -54,8 +52,7 @@ public class ManicVandal extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false); Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
Target target = new TargetPermanent(new FilterArtifactPermanent()); ability.addTarget(new TargetArtifactPermanent());
ability.addTarget(target);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -38,9 +38,8 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.filter.common.FilterArtifactPermanent;
import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.mageobject.SubtypePredicate;
import mage.target.TargetPermanent; import mage.target.common.TargetArtifactPermanent;
/** /**
* *
@ -67,7 +66,7 @@ public class MoggSalvage extends CardImpl {
// Destroy target artifact. // Destroy target artifact.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
} }
public MoggSalvage(final MoggSalvage card) { public MoggSalvage(final MoggSalvage card) {

View file

@ -32,8 +32,7 @@ import mage.constants.CardType;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* @author Loki * @author Loki
@ -44,7 +43,7 @@ public class Oxidize extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}"); super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}");
this.getSpellAbility().addEffect(new DestroyTargetEffect(true)); this.getSpellAbility().addEffect(new DestroyTargetEffect(true));
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
} }
public Oxidize(final Oxidize card) { public Oxidize(final Oxidize card) {

View file

@ -34,8 +34,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledCreaturePermanent;
/** /**
@ -51,7 +50,7 @@ public class PhyrexianTribute extends CardImpl {
this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(2))); this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(2)));
// Destroy target artifact. // Destroy target artifact.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
} }
public PhyrexianTribute(final PhyrexianTribute card) { public PhyrexianTribute(final PhyrexianTribute card) {

View file

@ -34,8 +34,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.CyclingAbility; import mage.abilities.keyword.CyclingAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* *
@ -47,7 +46,7 @@ public class Scrap extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}"); super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}");
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}")));
} }

View file

@ -32,8 +32,7 @@ import mage.constants.CardType;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* *
@ -45,7 +44,7 @@ public class Shatter extends CardImpl {
// Destroy target artifact. // Destroy target artifact.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
} }
public Shatter (final Shatter card) { public Shatter (final Shatter card) {

View file

@ -30,11 +30,10 @@ package mage.cards.s;
import java.util.UUID; import java.util.UUID;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.BuybackAbility; import mage.abilities.keyword.BuybackAbility;
import mage.target.TargetPermanent;
import mage.filter.common.FilterArtifactPermanent;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.target.common.TargetArtifactPermanent;
/** /**
* *
@ -50,7 +49,7 @@ public class ShatteringPulse extends CardImpl {
// Destroy target artifact. // Destroy target artifact.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
} }
public ShatteringPulse(final ShatteringPulse card) { public ShatteringPulse(final ShatteringPulse card) {

View file

@ -33,8 +33,7 @@ import mage.abilities.keyword.ReplicateAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* *
@ -49,7 +48,7 @@ public class ShatteringSpree extends CardImpl {
this.addAbility(new ReplicateAbility(this, "{R}")); this.addAbility(new ReplicateAbility(this, "{R}"));
// Destroy target artifact. // Destroy target artifact.
this.getSpellAbility().addEffect(new DestroyTargetEffect(true)); this.getSpellAbility().addEffect(new DestroyTargetEffect(true));
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
} }
public ShatteringSpree(final ShatteringSpree card) { public ShatteringSpree(final ShatteringSpree card) {

View file

@ -33,8 +33,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* @author Loki * @author Loki
@ -46,7 +45,7 @@ public class Smash extends CardImpl {
// Destroy target artifact. // Destroy target artifact.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
// Draw a card. // Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
} }

View file

@ -32,8 +32,7 @@ import mage.constants.CardType;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* *
@ -45,7 +44,7 @@ public class Verdigris extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{G}"); super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{G}");
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(new FilterArtifactPermanent())); this.getSpellAbility().addTarget(new TargetArtifactPermanent());
} }
public Verdigris(final Verdigris card) { public Verdigris(final Verdigris card) {

View file

@ -36,9 +36,7 @@ import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.InfectAbility; import mage.abilities.keyword.InfectAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.Target;
import mage.target.TargetPermanent;
/** /**
* *
@ -57,8 +55,7 @@ public class ViridianCorrupter extends CardImpl {
// When Viridian Corrupter enters the battlefield, destroy target artifact. // When Viridian Corrupter enters the battlefield, destroy target artifact.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false); Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
Target target = new TargetPermanent(new FilterArtifactPermanent()); ability.addTarget(new TargetArtifactPermanent());
ability.addTarget(target);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -35,8 +35,7 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* *
@ -54,7 +53,7 @@ public class VithianRenegades extends CardImpl {
// When Vithian Renegades enters the battlefield, destroy target artifact. // When Vithian Renegades enters the battlefield, destroy target artifact.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect()); Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect());
ability.addTarget(new TargetPermanent(new FilterArtifactPermanent())); ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -44,14 +44,12 @@ import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.common.FilterArtifactPermanent;
import mage.game.Game; import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType; import mage.game.events.GameEvent.EventType;
import mage.game.permanent.Permanent; import mage.game.permanent.Permanent;
import mage.players.Player; import mage.players.Player;
import mage.target.Target; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* *
@ -95,8 +93,7 @@ class WerewolfRansackerAbility extends TriggeredAbilityImpl {
public WerewolfRansackerAbility() { public WerewolfRansackerAbility() {
super(Zone.BATTLEFIELD, new WerewolfRansackerEffect(), true); super(Zone.BATTLEFIELD, new WerewolfRansackerEffect(), true);
Target target = new TargetPermanent(new FilterArtifactPermanent()); this.addTarget(new TargetArtifactPermanent());
this.addTarget(target);
} }
public WerewolfRansackerAbility(final WerewolfRansackerAbility ability) { public WerewolfRansackerAbility(final WerewolfRansackerAbility ability) {

View file

@ -38,8 +38,7 @@ import mage.abilities.effects.common.ReturnToHandSourceEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.filter.common.FilterSpiritOrArcaneCard; import mage.filter.common.FilterSpiritOrArcaneCard;
import mage.filter.common.FilterArtifactPermanent; import mage.target.common.TargetArtifactPermanent;
import mage.target.TargetPermanent;
/** /**
* @author Loki * @author Loki
@ -55,7 +54,7 @@ public class YukiOnna extends CardImpl {
// When Yuki-Onna enters the battlefield, destroy target artifact. // When Yuki-Onna enters the battlefield, destroy target artifact.
Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false); Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
ability.addTarget(new TargetPermanent(new FilterArtifactPermanent())); ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability); this.addAbility(ability);
// Whenever you cast a Spirit or Arcane spell, you may return Yuki-Onna to its owner's hand. // Whenever you cast a Spirit or Arcane spell, you may return Yuki-Onna to its owner's hand.
this.addAbility(new SpellCastControllerTriggeredAbility(new ReturnToHandSourceEffect(true), new FilterSpiritOrArcaneCard(), true)); this.addAbility(new SpellCastControllerTriggeredAbility(new ReturnToHandSourceEffect(true), new FilterSpiritOrArcaneCard(), true));