mirror of
https://github.com/correl/mage.git
synced 2024-12-26 03:00:11 +00:00
[refactor] removed constructor from FitlerControlledPermanent
This commit is contained in:
parent
cf8c69e000
commit
26676b9ab5
5 changed files with 24 additions and 15 deletions
|
@ -46,6 +46,7 @@ import mage.constants.Zone;
|
|||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AbilityPredicate;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
@ -54,10 +55,13 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class JaggedScarArchers extends CardImpl<JaggedScarArchers> {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with flying");
|
||||
private static final FilterCreaturePermanent flyingCreatureFilter = new FilterCreaturePermanent("creature with flying");
|
||||
private static final FilterControlledPermanent controlledElvesFilter = new FilterControlledPermanent("Elves you control");
|
||||
static {
|
||||
filter.add(new AbilityPredicate(FlyingAbility.class));
|
||||
flyingCreatureFilter.add(new AbilityPredicate(FlyingAbility.class));
|
||||
controlledElvesFilter.add(new SubtypePredicate("Elf"));
|
||||
}
|
||||
|
||||
public JaggedScarArchers(UUID ownerId) {
|
||||
super(ownerId, 222, "Jagged-Scar Archers", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{G}{G}");
|
||||
this.expansionSetCode = "LRW";
|
||||
|
@ -69,10 +73,10 @@ public class JaggedScarArchers extends CardImpl<JaggedScarArchers> {
|
|||
this.toughness = new MageInt(0);
|
||||
|
||||
// Jagged-Scar Archers's power and toughness are each equal to the number of Elves you control.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledPermanent("Elf", "Elves you control")), Duration.EndOfGame)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(controlledElvesFilter), Duration.EndOfGame)));
|
||||
// {tap}: Jagged-Scar Archers deals damage equal to its power to target creature with flying.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
ability.addTarget(new TargetCreaturePermanent(flyingCreatureFilter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ import mage.cards.CardImpl;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -41,6 +42,12 @@ import mage.filter.common.FilterControlledPermanent;
|
|||
*/
|
||||
public class MerrowCommerce extends CardImpl<MerrowCommerce> {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Merfolk you control");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Merfolk"));
|
||||
}
|
||||
|
||||
public MerrowCommerce(UUID ownerId) {
|
||||
super(ownerId, 72, "Merrow Commerce", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
|
||||
this.expansionSetCode = "LRW";
|
||||
|
@ -50,7 +57,7 @@ public class MerrowCommerce extends CardImpl<MerrowCommerce> {
|
|||
this.color.setBlue(true);
|
||||
|
||||
// At the beginning of your end step, untap all Merfolk you control.
|
||||
this.addAbility(new BeginningOfYourEndStepTriggeredAbility(new UntapAllControllerEffect(new FilterControlledPermanent("Merfolk", "Merfolk you control"), "untap all Merfolk you control"), false));
|
||||
this.addAbility(new BeginningOfYourEndStepTriggeredAbility(new UntapAllControllerEffect(filter, "untap all Merfolk you control"), false));
|
||||
}
|
||||
|
||||
public MerrowCommerce(final MerrowCommerce card) {
|
||||
|
|
|
@ -38,6 +38,7 @@ import mage.cards.CardImpl;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Rarity;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
/**
|
||||
|
@ -46,6 +47,12 @@ import mage.target.common.TargetControlledPermanent;
|
|||
*/
|
||||
public class WanderwineProphets extends CardImpl<WanderwineProphets> {
|
||||
|
||||
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Merfolk");
|
||||
|
||||
static {
|
||||
filter.add(new SubtypePredicate("Merfolk"));
|
||||
}
|
||||
|
||||
public WanderwineProphets(UUID ownerId) {
|
||||
super(ownerId, 95, "Wanderwine Prophets", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{U}{U}");
|
||||
this.expansionSetCode = "LRW";
|
||||
|
@ -60,7 +67,7 @@ public class WanderwineProphets extends CardImpl<WanderwineProphets> {
|
|||
this.addAbility(new ChampionAbility(this, "Merfolk"));
|
||||
// Whenever Wanderwine Prophets deals combat damage to a player, you may sacrifice a Merfolk. If you do, take an extra turn after this one.
|
||||
Ability ability = new DealsCombatDamageToAPlayerTriggeredAbility(new AddExtraTurnControllerEffect(), true);
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(1, 1, new FilterControlledPermanent("Merfolk", "Merfolk"), true)));
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(1, 1, filter, true)));
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -47,7 +47,6 @@ import mage.constants.Zone;
|
|||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetCreatureOrPlayer;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -30,7 +30,6 @@ package mage.filter.common;
|
|||
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.predicate.mageobject.SubtypePredicate;
|
||||
import mage.filter.predicate.permanent.ControllerPredicate;
|
||||
|
||||
/**
|
||||
|
@ -48,13 +47,6 @@ public class FilterControlledPermanent extends FilterPermanent {
|
|||
this.add(new ControllerPredicate(TargetController.YOU));
|
||||
}
|
||||
|
||||
public FilterControlledPermanent(String subtype, String name) {
|
||||
super(name);
|
||||
this.add(new SubtypePredicate(subtype));
|
||||
this.add(new ControllerPredicate(TargetController.YOU));
|
||||
}
|
||||
|
||||
|
||||
public FilterControlledPermanent(final FilterControlledPermanent filter) {
|
||||
super(filter);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue