diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index a793adb3d21..3857ac5b5ef 100644 --- a/forge-core/src/main/java/forge/deck/DeckFormat.java +++ b/forge-core/src/main/java/forge/deck/DeckFormat.java @@ -344,6 +344,22 @@ public enum DeckFormat { }; } + public Predicate hasLegalCardsPredicate() { + return new Predicate() { + @Override + public boolean apply(Deck deck) { + if (cardPoolFilter != null) { + for (final Entry cp : deck.getAllCardsInASinglePool()) { + if (!cardPoolFilter.apply(cp.getKey().getRules())) { + return false; + } + } + } + return true; + } + }; + } + public Predicate isLegalCardPredicate() { return new Predicate() { @Override diff --git a/forge-gui/src/main/java/forge/deck/DeckProxy.java b/forge-gui/src/main/java/forge/deck/DeckProxy.java index 541124fcd83..5af7126e667 100644 --- a/forge-gui/src/main/java/forge/deck/DeckProxy.java +++ b/forge-gui/src/main/java/forge/deck/DeckProxy.java @@ -10,6 +10,7 @@ import org.apache.commons.lang3.StringUtils; import com.google.common.base.Function; import com.google.common.base.Predicate; +import com.google.common.base.Predicates; import com.google.common.collect.Iterables; import forge.StaticData; @@ -351,8 +352,17 @@ public class DeckProxy implements InventoryItem { } public static Iterable getAllTinyLeadersDecks() { + return getAllTinyLeadersDecks(null); + } + public static Iterable getAllTinyLeadersDecks(Predicate filter) { final List result = new ArrayList(); - addDecksRecursivelly("Tiny Leaders", GameType.TinyLeaders, result, "", FModel.getDecks().getCommander(), DeckFormat.TinyLeaders.isLegalDeckPredicate()); + if (filter == null) { + filter = DeckFormat.TinyLeaders.hasLegalCardsPredicate(); + } + else { + filter = Predicates.and(DeckFormat.TinyLeaders.hasLegalCardsPredicate(), filter); + } + addDecksRecursivelly("Tiny Leaders", GameType.TinyLeaders, result, "", FModel.getDecks().getCommander(), filter); return result; } diff --git a/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java b/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java index 84f90883d57..8217f971362 100644 --- a/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java +++ b/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java @@ -114,7 +114,7 @@ public class RandomDeckGenerator extends DeckProxy implements Comparable