From ae59c0f3858c92dff5effc3103af1e57672a830d Mon Sep 17 00:00:00 2001 From: Hanmac Date: Tue, 1 Nov 2016 08:53:16 +0000 Subject: [PATCH] PlayerPredicates: add new class like CardPredicates but for Players --- .gitattributes | 1 + .../forge/game/player/PlayerPredicates.java | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 forge-game/src/main/java/forge/game/player/PlayerPredicates.java diff --git a/.gitattributes b/.gitattributes index 2f9a7a239a4..087c1b6deb9 100644 --- a/.gitattributes +++ b/.gitattributes @@ -611,6 +611,7 @@ forge-game/src/main/java/forge/game/player/Player.java svneol=native#text/plain forge-game/src/main/java/forge/game/player/PlayerActionConfirmMode.java -text forge-game/src/main/java/forge/game/player/PlayerController.java -text forge-game/src/main/java/forge/game/player/PlayerOutcome.java -text +forge-game/src/main/java/forge/game/player/PlayerPredicates.java -text svneol=unset#text/plain forge-game/src/main/java/forge/game/player/PlayerStatistics.java -text forge-game/src/main/java/forge/game/player/PlayerView.java -text forge-game/src/main/java/forge/game/player/RegisteredPlayer.java -text diff --git a/forge-game/src/main/java/forge/game/player/PlayerPredicates.java b/forge-game/src/main/java/forge/game/player/PlayerPredicates.java new file mode 100644 index 00000000000..bfd25e4417e --- /dev/null +++ b/forge-game/src/main/java/forge/game/player/PlayerPredicates.java @@ -0,0 +1,29 @@ +package forge.game.player; + +import java.util.Comparator; + +import com.google.common.base.Predicate; + +import forge.game.spellability.SpellAbility; +import forge.game.zone.ZoneType; + +public final class PlayerPredicates { + + public static final Predicate isTargetableBy(final SpellAbility source) { + return new Predicate() { + @Override + public boolean apply(final Player p) { + return p.canBeTargetedBy(source); + } + }; + } + + public static final Comparator compareByZoneSize(final ZoneType zone) { + return new Comparator() { + @Override + public int compare(Player arg0, Player arg1) { + return Integer.compare(arg0.getCardsIn(zone).size(), arg1.getCardsIn(zone).size()); + } + }; + } +}