mirror of
https://github.com/correl/mage.git
synced 2024-12-26 19:16:54 +00:00
add static filter
This commit is contained in:
parent
02f5ea910d
commit
9125df4ccf
5 changed files with 14 additions and 19 deletions
|
@ -16,6 +16,7 @@ import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -35,13 +36,13 @@ public final class AetherwindBasker extends CardImpl {
|
||||||
this.addAbility(TrampleAbility.getInstance());
|
this.addAbility(TrampleAbility.getInstance());
|
||||||
|
|
||||||
// Whenever Aetherwind Basker enters the battlefield or attacks, you get {E} for each creature you control.
|
// Whenever Aetherwind Basker enters the battlefield or attacks, you get {E} for each creature you control.
|
||||||
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new GetEnergyCountersControllerEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("creature you control"), null))));
|
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new GetEnergyCountersControllerEffect(new PermanentsOnBattlefieldCount(StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED, null))));
|
||||||
|
|
||||||
// Pay {E}: Aetherwind Basker gets +1/+1 until end of turn.
|
// Pay {E}: Aetherwind Basker gets +1/+1 until end of turn.
|
||||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new PayEnergyCost(1)));
|
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new PayEnergyCost(1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public AetherwindBasker(final AetherwindBasker card) {
|
private AetherwindBasker(final AetherwindBasker card) {
|
||||||
super(card);
|
super(card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -30,14 +31,14 @@ public final class BlightedSteppe extends CardImpl {
|
||||||
|
|
||||||
// {3}{W}, {T}, Sacrifice Blighted Steppe: You gain 2 life for each creature you control.
|
// {3}{W}, {T}, Sacrifice Blighted Steppe: You gain 2 life for each creature you control.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||||
new GainLifeEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("creature you control"), 2)),
|
new GainLifeEffect(new PermanentsOnBattlefieldCount(StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED, 2)),
|
||||||
new ManaCostsImpl<>("{3}{W}"));
|
new ManaCostsImpl<>("{3}{W}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addCost(new SacrificeSourceCost());
|
ability.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BlightedSteppe(final BlightedSteppe card) {
|
private BlightedSteppe(final BlightedSteppe card) {
|
||||||
super(card);
|
super(card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.TargetController;
|
import mage.constants.TargetController;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterAttackingCreature;
|
import mage.filter.common.FilterAttackingCreature;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||||
|
@ -18,21 +19,16 @@ import mage.filter.predicate.permanent.ControllerPredicate;
|
||||||
*/
|
*/
|
||||||
public final class HailStorm extends CardImpl {
|
public final class HailStorm extends CardImpl {
|
||||||
|
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you control");
|
|
||||||
static {
|
|
||||||
filter.add(new ControllerPredicate(TargetController.YOU));
|
|
||||||
}
|
|
||||||
|
|
||||||
public HailStorm(UUID ownerId, CardSetInfo setInfo) {
|
public HailStorm(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{G}{G}");
|
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{G}{G}");
|
||||||
|
|
||||||
// Hail Storm deals 2 damage to each attacking creature and 1 damage to you and each creature you control.
|
// Hail Storm deals 2 damage to each attacking creature and 1 damage to you and each creature you control.
|
||||||
this.getSpellAbility().addEffect(new DamageAllEffect(2, new FilterAttackingCreature()));
|
this.getSpellAbility().addEffect(new DamageAllEffect(2, new FilterAttackingCreature()));
|
||||||
this.getSpellAbility().addEffect(new DamageControllerEffect(1).setText("and 1 damage to you "));
|
this.getSpellAbility().addEffect(new DamageControllerEffect(1).setText("and 1 damage to you "));
|
||||||
this.getSpellAbility().addEffect(new DamageAllEffect(1, filter).setText("and each creature you control."));
|
this.getSpellAbility().addEffect(new DamageAllEffect(1, StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED).setText("and each creature you control."));
|
||||||
}
|
}
|
||||||
|
|
||||||
public HailStorm(final HailStorm card) {
|
private HailStorm(final HailStorm card) {
|
||||||
super(card);
|
super(card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.TargetController;
|
import mage.constants.TargetController;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||||
|
|
||||||
|
@ -25,11 +26,6 @@ import mage.filter.predicate.permanent.ControllerPredicate;
|
||||||
*/
|
*/
|
||||||
public final class LoxodonHierarch extends CardImpl {
|
public final class LoxodonHierarch extends CardImpl {
|
||||||
|
|
||||||
private static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you control");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(new ControllerPredicate(TargetController.YOU));
|
|
||||||
}
|
|
||||||
|
|
||||||
public LoxodonHierarch(UUID ownerId, CardSetInfo setInfo) {
|
public LoxodonHierarch(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}");
|
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{W}");
|
||||||
|
@ -43,12 +39,12 @@ public final class LoxodonHierarch extends CardImpl {
|
||||||
Ability etbAbility = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(4));
|
Ability etbAbility = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(4));
|
||||||
this.addAbility(etbAbility);
|
this.addAbility(etbAbility);
|
||||||
// {G}{W}, Sacrifice Loxodon Hierarch: Regenerate each creature you control.
|
// {G}{W}, Sacrifice Loxodon Hierarch: Regenerate each creature you control.
|
||||||
Ability activated = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateAllEffect(filter), new ManaCostsImpl("{G}{W}"));
|
Ability activated = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateAllEffect(StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED), new ManaCostsImpl("{G}{W}"));
|
||||||
activated.addCost(new SacrificeSourceCost());
|
activated.addCost(new SacrificeSourceCost());
|
||||||
this.addAbility(activated);
|
this.addAbility(activated);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoxodonHierarch(final LoxodonHierarch card) {
|
private LoxodonHierarch(final LoxodonHierarch card) {
|
||||||
super(card);
|
super(card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,7 +22,7 @@ public final class TitaniasBoon extends CardImpl {
|
||||||
|
|
||||||
|
|
||||||
// Put a +1/+1 counter on each creature you control.
|
// Put a +1/+1 counter on each creature you control.
|
||||||
this.getSpellAbility().addEffect(new AddCountersAllEffect(CounterType.P1P1.createInstance(), new FilterControlledCreaturePermanent("creature you control")));
|
this.getSpellAbility().addEffect(new AddCountersAllEffect(CounterType.P1P1.createInstance(), StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED));
|
||||||
}
|
}
|
||||||
|
|
||||||
public TitaniasBoon(final TitaniasBoon card) {
|
public TitaniasBoon(final TitaniasBoon card) {
|
||||||
|
|
Loading…
Reference in a new issue