diff --git a/forge-game/src/main/java/forge/game/player/PlayerPredicates.java b/forge-game/src/main/java/forge/game/player/PlayerPredicates.java index 36375849a15..0999c1d90bf 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerPredicates.java +++ b/forge-game/src/main/java/forge/game/player/PlayerPredicates.java @@ -7,6 +7,7 @@ import com.google.common.base.Predicates; import forge.game.card.Card; import forge.game.card.CardLists; +import forge.game.card.CounterType; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; @@ -43,6 +44,29 @@ public final class PlayerPredicates { return Predicates.not(isCardInPlay(cardName)); } + + public static final Predicate hasCounters() { + return new Predicate() { + @Override + public boolean apply(final Player p) { + return p.hasCounters(); + } + }; + } + + public static final Predicate hasCounter(final CounterType type) { + return hasCounter(type, 1); + } + + public static final Predicate hasCounter(final CounterType type, final int n) { + return new Predicate() { + @Override + public boolean apply(final Player p) { + return p.getCounters(type) >= n; + } + }; + } + public static final Comparator compareByZoneSize(final ZoneType zone) { return new Comparator() { @Override