1
0
Fork 0
mirror of https://github.com/correl/mage.git synced 2025-04-12 17:00:08 -09:00

use FilterControlledLandPermanent

This commit is contained in:
Neil Gentleman 2016-07-17 14:40:56 -07:00
parent 9a2d209cd8
commit e40329e6e2
14 changed files with 34 additions and 116 deletions

View file

@ -54,7 +54,6 @@ import mage.filter.predicate.permanent.TokenPredicate;
import mage.game.permanent.token.Token;
import mage.target.TargetPermanent;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetControlledPermanent;
/**
*
@ -74,7 +73,7 @@ public class CaribouRange extends CardImpl {
this.subtype.add("Aura");
// Enchant land you control
TargetPermanent auraTarget = new TargetControlledPermanent(new FilterControlledLandPermanent("land you control"));
TargetPermanent auraTarget = new TargetPermanent(new FilterControlledLandPermanent());
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
Ability ability = new EnchantAbility(auraTarget.getTargetName());

View file

@ -37,11 +37,9 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.TargetController;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.filter.common.FilterControlledLandPermanent;
import mage.game.permanent.token.Token;
import mage.target.common.TargetLandPermanent;
import mage.target.TargetPermanent;
/**
*
@ -49,18 +47,12 @@ import mage.target.common.TargetLandPermanent;
*/
public class ElementalUprising extends CardImpl {
private static final FilterLandPermanent filter = new FilterLandPermanent("land you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
}
public ElementalUprising(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{G}");
// Target land you control becomes a 4/4 Elemental creature with haste until end of turn. It's still a land. It must be blocked this turn if able.
getSpellAbility().addEffect(new BecomesCreatureTargetEffect(new ElementalUprisingToken(), false, true, Duration.EndOfTurn));
getSpellAbility().addTarget(new TargetLandPermanent(filter));
getSpellAbility().addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
Effect effect = new MustBeBlockedByAtLeastOneTargetEffect(Duration.EndOfTurn);
effect.setText("It must be blocked this turn if able");
getSpellAbility().addEffect(effect);

View file

@ -43,10 +43,12 @@ import mage.constants.Duration;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.game.permanent.token.Token;
import mage.target.TargetPermanent;
import mage.target.common.TargetLandPermanent;
/**
@ -56,13 +58,10 @@ import mage.target.common.TargetLandPermanent;
public class EmbodimentOfFury extends CardImpl {
private static final FilterPermanent filterLandCreatures = new FilterPermanent("Land creatures");
private static final FilterLandPermanent filterLand = new FilterLandPermanent("land you control");
static {
filterLandCreatures.add(new CardTypePredicate(CardType.LAND));
filterLandCreatures.add(new CardTypePredicate(CardType.CREATURE));
filterLand.add(new ControllerPredicate(TargetController.YOU));
}
public EmbodimentOfFury(UUID ownerId, CardSetInfo setInfo) {
@ -80,7 +79,7 @@ public class EmbodimentOfFury extends CardImpl {
// <i>Landfall</i> - Whenever a land enters the battlefield under your control, you may have target land you control
// become a 3/3 Elemental creature with haste until end of turn. It's still a land.
Ability ability = new LandfallAbility(new BecomesCreatureTargetEffect(new EmbodimentOfFuryToken(), false, true, Duration.EndOfTurn), true);
ability.addTarget(new TargetLandPermanent(filterLand));
ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
this.addAbility(ability);
}

View file

@ -40,14 +40,12 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterLandPermanent;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.game.permanent.token.Token;
import mage.target.common.TargetLandPermanent;
import mage.target.TargetPermanent;
/**
*
@ -56,13 +54,10 @@ import mage.target.common.TargetLandPermanent;
public class EmbodimentOfInsight extends CardImpl {
private static final FilterPermanent filterLandCreatures = new FilterPermanent("Land creatures");
private static final FilterLandPermanent filterLand = new FilterLandPermanent("land you control");
static {
filterLandCreatures.add(new CardTypePredicate(CardType.LAND));
filterLandCreatures.add(new CardTypePredicate(CardType.CREATURE));
filterLand.add(new ControllerPredicate(TargetController.YOU));
}
public EmbodimentOfInsight(UUID ownerId, CardSetInfo setInfo) {
@ -80,7 +75,7 @@ public class EmbodimentOfInsight extends CardImpl {
// <i>Landfall</i> - Whenever a land enters the battlefield under you control, you may have target land you control
// become a 3/3 Elemental creature with haste until end of turn. It's still a land.
Ability ability = new LandfallAbility(new BecomesCreatureTargetEffect(new EmbodimentOfInsightToken(), false, true, Duration.EndOfTurn), true);
ability.addTarget(new TargetLandPermanent(filterLand));
ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
this.addAbility(ability);
}

View file

@ -40,8 +40,7 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.filter.common.FilterControlledLandPermanent;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.ManaEvent;
@ -80,11 +79,7 @@ public class ExtraplanarLens extends CardImpl {
class ExtraplanarLensImprintEffect extends OneShotEffect {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("land you control");
static {
filter.add(new CardTypePredicate(CardType.LAND));
}
private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent();
public ExtraplanarLensImprintEffect() {
super(Outcome.Neutral);

View file

@ -37,12 +37,9 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.Target;
import mage.target.common.TargetLandPermanent;
import mage.filter.common.FilterControlledLandPermanent;
import mage.target.TargetPermanent;
/**
*
@ -50,12 +47,6 @@ import mage.target.common.TargetLandPermanent;
*/
public class GrixisIllusionist extends CardImpl {
private static final FilterLandPermanent filter = new FilterLandPermanent("land you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
}
public GrixisIllusionist(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}");
this.subtype.add("Human");
@ -66,8 +57,7 @@ public class GrixisIllusionist extends CardImpl {
// {tap}: Target land you control becomes the basic land type of your choice until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new TapSourceCost());
Target target = new TargetLandPermanent(filter);
ability.addTarget(target);
ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
this.addAbility(ability);
}

View file

@ -46,7 +46,6 @@ import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.common.FilterControlledLandPermanent;
import mage.target.TargetPermanent;
import mage.target.common.TargetControlledPermanent;
import mage.target.common.TargetCreatureOrPlayer;
/**
@ -60,7 +59,7 @@ public class HotSprings extends CardImpl {
this.subtype.add("Aura");
// Enchant land you control
TargetPermanent auraTarget = new TargetControlledPermanent(new FilterControlledLandPermanent("land you control"));
TargetPermanent auraTarget = new TargetPermanent(new FilterControlledLandPermanent());
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
Ability ability = new EnchantAbility(auraTarget.getTargetName());

View file

@ -47,7 +47,6 @@ import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.common.FilterControlledLandPermanent;
import mage.target.TargetPermanent;
import mage.target.common.TargetControlledPermanent;
import mage.target.common.TargetCreaturePermanent;
/**
@ -61,7 +60,7 @@ public class MysticMight extends CardImpl {
this.subtype.add("Aura");
// Enchant land you control
TargetPermanent auraTarget = new TargetControlledPermanent(new FilterControlledLandPermanent("land you control"));
TargetPermanent auraTarget = new TargetPermanent(new FilterControlledLandPermanent());
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
Ability ability = new EnchantAbility(auraTarget.getTargetName());

View file

@ -43,19 +43,16 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterBasicLandCard;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.filter.common.FilterControlledLandPermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.game.permanent.token.Token;
import mage.players.Player;
import mage.target.TargetPermanent;
import mage.target.common.TargetCardInLibrary;
import mage.target.common.TargetLandPermanent;
import mage.target.targetpointer.FixedTarget;
/**
@ -64,13 +61,8 @@ import mage.target.targetpointer.FixedTarget;
*/
public class NissaWorldwaker extends CardImpl {
private static final FilterLandPermanent filter = new FilterLandPermanent("land you control");
private static final FilterPermanent filterForest = new FilterPermanent("Forest", "Forest");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
}
public NissaWorldwaker(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.PLANESWALKER},"{3}{G}{G}");
this.subtype.add("Nissa");
@ -79,7 +71,7 @@ public class NissaWorldwaker extends CardImpl {
// +1: Target land you control becomes a 4/4 Elemental creature with trample. It's still a land.
LoyaltyAbility ability = new LoyaltyAbility(new BecomesCreatureTargetEffect(new NissaWorldwakerToken(), false, true, Duration.Custom), 1);
ability.addTarget(new TargetLandPermanent(filter));
ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
this.addAbility(ability);
// +1: Untap up to four target Forests.

View file

@ -40,9 +40,8 @@ import mage.abilities.effects.common.ReturnToBattlefieldUnderYourControlTargetEf
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.Zone;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.target.common.TargetControlledPermanent;
import mage.filter.common.FilterControlledLandPermanent;
import mage.target.TargetPermanent;
/**
*
@ -50,12 +49,6 @@ import mage.target.common.TargetControlledPermanent;
*/
public class RuinGhost extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("land you control");
static {
filter.add(new CardTypePredicate(CardType.LAND));
}
public RuinGhost(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}");
this.subtype.add("Spirit");
@ -67,7 +60,7 @@ public class RuinGhost extends CardImpl {
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetForSourceEffect(), new ManaCostsImpl("{W"));
ability.addCost(new TapSourceCost());
ability.addEffect(new ReturnToBattlefieldUnderYourControlTargetEffect(true));
ability.addTarget(new TargetControlledPermanent(filter));
ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
this.addAbility(ability);
}

View file

@ -36,10 +36,8 @@ import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.TargetController;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.common.TargetLandPermanent;
import mage.filter.common.FilterControlledLandPermanent;
import mage.target.TargetPermanent;
/**
*
@ -48,12 +46,6 @@ import mage.target.common.TargetLandPermanent;
*/
public class SeaDrake extends CardImpl {
private static final FilterLandPermanent filter = new FilterLandPermanent("land you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
}
public SeaDrake(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}");
this.subtype.add("Drake");
@ -64,7 +56,7 @@ public class SeaDrake extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// When Sea Drake enters the battlefield, return two target lands you control to their owner's hand.
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), false);
ability.addTarget(new TargetLandPermanent(2, 2, filter, false));
ability.addTarget(new TargetPermanent(2, 2, new FilterControlledLandPermanent(), false));
this.addAbility(ability);
}

View file

@ -30,7 +30,6 @@ package mage.cards.s;
import java.util.UUID;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
@ -42,10 +41,9 @@ import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.filter.common.FilterControlledLandPermanent;
import mage.game.permanent.token.Token;
import mage.target.common.TargetLandPermanent;
import mage.target.TargetPermanent;
/**
*
@ -53,12 +51,6 @@ import mage.target.common.TargetLandPermanent;
*/
public class SkarrgGuildmage extends CardImpl {
private static final FilterLandPermanent filter = new FilterLandPermanent("land you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
}
public SkarrgGuildmage(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{R}{G}");
this.subtype.add("Human");
@ -73,7 +65,7 @@ public class SkarrgGuildmage extends CardImpl {
new ManaCostsImpl("{R}{G}")));
// {1}{R}{G}: Target land you control becomes a 4/4 Elemental creature until end of turn. It's still a land.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect(new SkarrgGuildmageToken(), false, true, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}{G}") );
ability.addTarget(new TargetLandPermanent(filter));
ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
this.addAbility(ability);
}

View file

@ -39,14 +39,12 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.common.FilterLandCard;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.Target;
import mage.target.TargetPermanent;
import mage.target.common.TargetCardInHand;
import mage.target.common.TargetLandPermanent;
/**
*
@ -54,19 +52,13 @@ import mage.target.common.TargetLandPermanent;
*/
public class TradeRoutes extends CardImpl {
private static final FilterLandPermanent landYouControl = new FilterLandPermanent("land you control");
static {
landYouControl.add(new ControllerPredicate(TargetController.YOU));
}
public TradeRoutes(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
// {1}: Return target land you control to its owner's hand.
Effect returnToHand = new ReturnToHandTargetEffect();
Target targetLandYouControl = new TargetLandPermanent(landYouControl);
Target targetLandYouControl = new TargetPermanent(new FilterControlledLandPermanent());
Ability returnLandToHand = new SimpleActivatedAbility(Zone.BATTLEFIELD, returnToHand, new GenericManaCost(1));
returnLandToHand.addTarget(targetLandYouControl);
this.addAbility(returnLandToHand);

View file

@ -28,15 +28,13 @@
package mage.abilities.keyword;
import mage.constants.TargetController;
import mage.constants.TimingRule;
import mage.constants.Zone;
import mage.abilities.ActivatedAbilityImpl;
import mage.abilities.costs.Cost;
import mage.abilities.effects.common.AttachEffect;
import mage.filter.common.FilterLandPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.common.TargetLandPermanent;
import mage.filter.common.FilterControlledLandPermanent;
import mage.target.TargetPermanent;
/**
*
@ -45,16 +43,9 @@ import mage.target.common.TargetLandPermanent;
//20091005 - 702.64
public class FortifyAbility extends ActivatedAbilityImpl {
private static final FilterLandPermanent filter = new FilterLandPermanent("land you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
}
public FortifyAbility(Zone zone, AttachEffect effect, Cost cost) {
super(zone, effect, cost);
this.addTarget(new TargetLandPermanent(filter));
this.addTarget(new TargetPermanent(new FilterControlledLandPermanent()));
timing = TimingRule.SORCERY;
}
@ -66,6 +57,4 @@ public class FortifyAbility extends ActivatedAbilityImpl {
public FortifyAbility copy() {
return new FortifyAbility(this);
}
}