add filter 'instant or Aura spell that targets a permanent you control'

master
melvinzhang 2017-08-20 21:17:04 +08:00
parent 5f98562699
commit 08fe11444f
1 changed files with 19 additions and 15 deletions

View File

@ -74,16 +74,6 @@ public class MagicTargetFilterFactory {
}
};
public static final MagicStackFilterImpl SPELL_OR_ABILITY_THAT_TARGETS_PERMANENTS = new MagicStackFilterImpl() {
@Override
public boolean accept(final MagicSource source, final MagicPlayer player, final MagicItemOnStack target) {
final MagicTargetChoice tchoice = target.getEvent().getTargetChoice();
return tchoice.isValid() &&
tchoice.isTargeted() &&
tchoice.getTargetFilter().acceptType(MagicTargetType.Permanent);
}
};
public static final MagicStackFilterImpl SPELL_OR_ABILITY = new MagicStackFilterImpl() {
@Override
public boolean accept(final MagicSource source, final MagicPlayer player, final MagicItemOnStack target) {
@ -133,14 +123,27 @@ public class MagicTargetFilterFactory {
}
};
public static final MagicStackFilterImpl SPELL_OR_ABILITY_THAT_TARGETS_PERMANENTS = new MagicStackFilterImpl() {
@Override
public boolean accept(final MagicSource source, final MagicPlayer player, final MagicItemOnStack target) {
return target.getTarget().isPermanent();
}
};
public static final MagicStackFilterImpl SPELL_THAT_TARGETS_PLAYER = new MagicStackFilterImpl() {
@Override
public boolean accept(final MagicSource source, final MagicPlayer player, final MagicItemOnStack target) {
final MagicTargetChoice tchoice = target.getEvent().getTargetChoice();
return target.isSpell() &&
tchoice.isValid() &&
tchoice.isTargeted() &&
tchoice.getTargetFilter().acceptType(MagicTargetType.Player);
return target.isSpell() && target.getTarget().isPlayer();
}
};
public static final MagicStackFilterImpl INSTANT_OR_AURA_THAT_TARGETS_PERMANENT_YOU_CONTROL = new MagicStackFilterImpl() {
@Override
public boolean accept(final MagicSource source,final MagicPlayer player,final MagicItemOnStack target) {
return (target.hasType(MagicType.Instant) || target.hasSubType(MagicSubType.Aura)) &&
target.isSpell() &&
target.getTarget().isPermanent() &&
target.getTarget().isFriend(player);
}
};
@ -2945,6 +2948,7 @@ public class MagicTargetFilterFactory {
add("activated or triggered ability you don't control", ACTIVATED_OR_TRIGGERED_ABILITY_OPP_CONTROL);
add("spell, activated ability, or triggered ability", SPELL_OR_ABILITY);
add("spell that targets a player", SPELL_THAT_TARGETS_PLAYER);
add("instant or Aura spell that targets a permanent you control", INSTANT_OR_AURA_THAT_TARGETS_PERMANENT_YOU_CONTROL);
add("spell with {X} in its mana cost", SPELL_WITH_X_COST);
add("noncreature spell", NONCREATURE_SPELL);
add("nonartifact spell", NONARTIFACT_SPELL);