refactored TappedPredicate to use single enum for both conditions

This commit is contained in:
Evan Kranzler 2021-05-11 09:33:45 -04:00
parent 59f02ad17a
commit a673ebffc5
282 changed files with 307 additions and 513 deletions

View file

@ -20,7 +20,7 @@ public class UntapLandsEffect extends OneShotEffect {
private static final FilterLandPermanent filter = new FilterLandPermanent("land(s) to untap");
static {
filter.add(TappedPredicate.instance);
filter.add(TappedPredicate.TAPPED);
}
private final int amount;
private final boolean upTo;

View file

@ -16,7 +16,6 @@ import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.SharesColorWithSourcePredicate;
import mage.filter.predicate.permanent.TappedPredicate;
import mage.game.Game;
@ -52,7 +51,7 @@ public class ConspireAbility extends StaticAbility implements OptionalAdditional
protected static final String CONSPIRE_ACTIVATION_KEY = "ConspireActivation";
static {
filter.add(Predicates.not(TappedPredicate.instance));
filter.add(TappedPredicate.UNTAPPED);
filter.add(new SharesColorWithSourcePredicate());
filter.add(CardType.CREATURE.getPredicate());
}

View file

@ -73,7 +73,7 @@ public class ConvokeAbility extends SimpleStaticAbility implements AlternateMana
private static final FilterControlledCreaturePermanent filterUntapped = new FilterControlledCreaturePermanent();
static {
filterUntapped.add(Predicates.not(TappedPredicate.instance));
filterUntapped.add(TappedPredicate.UNTAPPED);
}
public ConvokeAbility() {
@ -112,7 +112,7 @@ public class ConvokeAbility extends SimpleStaticAbility implements AlternateMana
// create filter for possible creatures to tap
FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent();
filter.add(Predicates.not(TappedPredicate.instance));
filter.add(TappedPredicate.UNTAPPED);
if (unpaid.getMana().getGeneric() == 0) {
List<ColorPredicate> colorPredicates = new ArrayList<>();
if (unpaid.getMana().getBlack() > 0) {

View file

@ -14,7 +14,6 @@ import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.permanent.TappedPredicate;
import mage.game.Game;
import mage.game.events.GameEvent;
@ -61,7 +60,7 @@ class CrewCost extends CostImpl {
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("untapped creature you control");
static {
filter.add(Predicates.not(TappedPredicate.instance));
filter.add(TappedPredicate.UNTAPPED);
}
private final int value;

View file

@ -17,7 +17,6 @@ import mage.constants.ManaType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.common.FilterControlledArtifactPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.permanent.TappedPredicate;
import mage.game.Game;
import mage.game.permanent.Permanent;
@ -48,7 +47,7 @@ public class ImproviseAbility extends SimpleStaticAbility implements AlternateMa
private static final FilterControlledArtifactPermanent filterUntapped = new FilterControlledArtifactPermanent("untapped artifact you control");
static {
filterUntapped.add(Predicates.not(TappedPredicate.instance));
filterUntapped.add(TappedPredicate.UNTAPPED);
}
private static final DynamicValue untappedCount = new PermanentsOnBattlefieldCount(filterUntapped);

View file

@ -27,7 +27,7 @@ public class FilterCreatureForAttack extends FilterCreaturePermanent {
super(name);
this.add(Predicates.not(AttackingPredicate.instance));
this.add(Predicates.not(BlockingPredicate.instance));
this.add(Predicates.not(TappedPredicate.instance));
this.add(TappedPredicate.UNTAPPED);
this.add(Predicates.not(new AbilityPredicate(DefenderAbility.class)));
this.add(new CanTapPredicate());
}

View file

@ -2,7 +2,6 @@
package mage.filter.common;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.permanent.TappedPredicate;
/**
@ -18,7 +17,7 @@ public class FilterCreatureForCombat extends FilterCreatureForCombatBase {
public FilterCreatureForCombat(String name) {
super(name);
this.add(Predicates.not(TappedPredicate.instance));
this.add(TappedPredicate.UNTAPPED);
}
public FilterCreatureForCombat(final FilterCreatureForCombat filter) {

View file

@ -2,7 +2,6 @@
package mage.filter.common;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.permanent.TappedPredicate;
/**
@ -17,7 +16,7 @@ public class FilterUntappedCreature extends FilterCreaturePermanent {
public FilterUntappedCreature(String name) {
super(name);
this.add(Predicates.not(TappedPredicate.instance));
this.add(TappedPredicate.UNTAPPED);
}
public FilterUntappedCreature(final FilterUntappedCreature filter) {

View file

@ -1,4 +1,3 @@
package mage.filter.predicate.permanent;
import mage.filter.predicate.Predicate;
@ -9,11 +8,17 @@ import mage.game.permanent.Permanent;
* @author North
*/
public enum TappedPredicate implements Predicate<Permanent> {
instance;
TAPPED(true), UNTAPPED(false);
private final boolean value;
TappedPredicate(boolean value) {
this.value = value;
}
@Override
public boolean apply(Permanent input, Game game) {
return input.isTapped();
return input.isTapped() == value;
}
@Override

View file

@ -1,22 +0,0 @@
package mage.filter.predicate.permanent;
import mage.filter.predicate.Predicate;
import mage.game.Game;
import mage.game.permanent.Permanent;
/**
* @author TheElk801
*/
public enum UntappedPredicate implements Predicate<Permanent> {
instance;
@Override
public boolean apply(Permanent input, Game game) {
return !input.isTapped();
}
@Override
public String toString() {
return "Untapped";
}
}