mirror of
https://github.com/magefree/mage.git
synced 2026-01-25 20:59:14 -08:00
[filters] added Attacking and Blocking predicates
This commit is contained in:
parent
61b5f8555e
commit
badb0ede21
15 changed files with 139 additions and 130 deletions
|
|
@ -42,7 +42,7 @@ import mage.abilities.effects.common.DamageTargetEffect;
|
|||
import mage.abilities.effects.common.continious.GainAbilitySourceEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterAttackingOrBlockingCreature;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -51,15 +51,6 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class FreewindEquenaut extends CardImpl<FreewindEquenaut> {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking or blocking creature");
|
||||
|
||||
static {
|
||||
filter.setAttacking(true);
|
||||
filter.setUseAttacking(true);
|
||||
filter.setBlocking(true);
|
||||
filter.setUseBlocking(true);
|
||||
}
|
||||
|
||||
public FreewindEquenaut(UUID ownerId) {
|
||||
super(ownerId, 9, "Freewind Equenaut", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||
this.expansionSetCode = "DIS";
|
||||
|
|
@ -74,7 +65,7 @@ public class FreewindEquenaut extends CardImpl<FreewindEquenaut> {
|
|||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new DamageTargetEffect(2),
|
||||
new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
ability.addTarget(new TargetCreaturePermanent(new FilterAttackingOrBlockingCreature()));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new ConditionalContinousEffect(
|
||||
new GainAbilitySourceEffect(ability, Duration.WhileOnBattlefield),
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ import mage.Constants.Rarity;
|
|||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterAttackingOrBlockingCreature;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -42,15 +41,6 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class DivineVerdict extends CardImpl<DivineVerdict> {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking or blocking creature");
|
||||
|
||||
static {
|
||||
filter.setAttacking(true);
|
||||
filter.setUseAttacking(true);
|
||||
filter.setBlocking(true);
|
||||
filter.setUseBlocking(true);
|
||||
}
|
||||
|
||||
public DivineVerdict(UUID ownerId) {
|
||||
super(ownerId, 8, "Divine Verdict", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{3}{W}");
|
||||
this.expansionSetCode = "M10";
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ import mage.abilities.costs.common.SacrificeSourceCost;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterAttackingOrBlockingCreature;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -48,13 +48,6 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class SoldierReplica extends CardImpl<SoldierReplica> {
|
||||
|
||||
private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking or blocking creature");
|
||||
|
||||
static {
|
||||
filter.setBlocking(true);
|
||||
filter.setAttacking(true);
|
||||
}
|
||||
|
||||
public SoldierReplica(UUID ownerId) {
|
||||
super(ownerId, 244, "Soldier Replica", Rarity.COMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
|
||||
this.expansionSetCode = "MRD";
|
||||
|
|
@ -63,7 +56,7 @@ public class SoldierReplica extends CardImpl<SoldierReplica> {
|
|||
this.toughness = new MageInt(3);
|
||||
Ability ability = new SimpleActivatedAbility(Constants.Zone.BATTLEFIELD, new DamageTargetEffect(3), new ManaCostsImpl("{1}{W}"));
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
ability.addTarget(new TargetCreaturePermanent(new FilterAttackingOrBlockingCreature()));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ import mage.Constants.Duration;
|
|||
import mage.Constants.Rarity;
|
||||
import mage.abilities.effects.common.PreventAllDamageEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterAttackingCreature;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -41,13 +41,6 @@ import mage.filter.common.FilterCreaturePermanent;
|
|||
*/
|
||||
public class HarmlessAssault extends CardImpl<HarmlessAssault> {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking creatures");
|
||||
|
||||
static {
|
||||
filter.setAttacking(true);
|
||||
filter.setUseAttacking(true);
|
||||
}
|
||||
|
||||
public HarmlessAssault(UUID ownerId) {
|
||||
super(ownerId, 24, "Harmless Assault", Rarity.COMMON,
|
||||
new CardType[] { CardType.INSTANT }, "{2}{W}{W}");
|
||||
|
|
@ -58,7 +51,7 @@ public class HarmlessAssault extends CardImpl<HarmlessAssault> {
|
|||
// Prevent all combat damage that would be dealt this turn by attacking
|
||||
// creatures.
|
||||
this.getSpellAbility().addEffect(
|
||||
new PreventAllDamageEffect(filter, Duration.EndOfTurn, true));
|
||||
new PreventAllDamageEffect(new FilterAttackingCreature(), Duration.EndOfTurn, true));
|
||||
}
|
||||
|
||||
public HarmlessAssault(final HarmlessAssault card) {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import mage.Constants.Rarity;
|
|||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.Filter.ComparisonType;
|
||||
import mage.filter.common.FilterAttackingOrBlockingCreature;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
|
@ -43,13 +44,9 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class PuncturingLight extends CardImpl<PuncturingLight> {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking or blocking creature with power 3 or less");
|
||||
private static final FilterCreaturePermanent filter = new FilterAttackingOrBlockingCreature("attacking or blocking creature with power 3 or less");
|
||||
|
||||
static {
|
||||
filter.setAttacking(true);
|
||||
filter.setUseAttacking(true);
|
||||
filter.setBlocking(true);
|
||||
filter.setUseBlocking(true);
|
||||
filter.add(new PowerPredicate(ComparisonType.LessThan, 4));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ import mage.abilities.condition.common.MetalcraftCondition;
|
|||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.SacrificeEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterAttackingCreature;
|
||||
import mage.game.Game;
|
||||
import mage.target.TargetPlayer;
|
||||
|
||||
|
|
@ -73,13 +73,7 @@ class DispenseJusticeEffect extends OneShotEffect<DispenseJusticeEffect> {
|
|||
private static final String effectText = "Target player sacrifices an attacking creature.\r\n\r\n"
|
||||
+ "Metalcraft - That player sacrifices two attacking creatures instead if you control three or more artifacts";
|
||||
|
||||
private static final FilterCreaturePermanent filter;
|
||||
|
||||
static {
|
||||
filter = new FilterCreaturePermanent();
|
||||
filter.setUseAttacking(true);
|
||||
filter.setAttacking(true);
|
||||
}
|
||||
private static final FilterAttackingCreature filter = new FilterAttackingCreature();
|
||||
|
||||
DispenseJusticeEffect ( ) {
|
||||
super(Outcome.Sacrifice);
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ import mage.abilities.costs.common.TapSourceCost;
|
|||
import mage.abilities.effects.common.continious.BoostTargetEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterAttackingOrBlockingCreature;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -48,15 +48,6 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public class AngelicPage extends CardImpl<AngelicPage> {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking or blocking creature");
|
||||
|
||||
static {
|
||||
filter.setAttacking(true);
|
||||
filter.setUseAttacking(true);
|
||||
filter.setBlocking(true);
|
||||
filter.setUseBlocking(true);
|
||||
}
|
||||
|
||||
public AngelicPage(UUID ownerId) {
|
||||
super(ownerId, 4, "Angelic Page", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
this.expansionSetCode = "USG";
|
||||
|
|
@ -70,7 +61,7 @@ public class AngelicPage extends CardImpl<AngelicPage> {
|
|||
|
||||
//{T}: Target attacking or blocking creature gets +1/+1 until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
ability.addTarget(new TargetCreaturePermanent(new FilterAttackingOrBlockingCreature()));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue