mirror of
https://github.com/magefree/mage.git
synced 2025-12-24 12:31:59 -08:00
refactored TappedPredicate to use single enum for both conditions
This commit is contained in:
parent
59f02ad17a
commit
a673ebffc5
282 changed files with 307 additions and 513 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue