diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index 75c74c4813a..59fadb03616 100644 --- a/forge-core/src/main/java/forge/deck/DeckFormat.java +++ b/forge-core/src/main/java/forge/deck/DeckFormat.java @@ -70,7 +70,7 @@ public enum DeckFormat { } }), Pauper ( Range.is(60), Range.between(0, 10), 1), - Brawl ( Range.is(59), Range.between(0, 15), 1, StaticData.instance().getStandardPredicate(), null), + Brawl ( Range.is(59), Range.between(0, 15), 1, null, StaticData.instance().getStandardPredicate()), TinyLeaders ( Range.is(49), Range.between(0, 10), 1, new Predicate() { private final Set bannedCards = new HashSet(Arrays.asList( "Ancestral Recall", "Balance", "Black Lotus", "Black Vise", "Channel", "Chaos Orb", "Contract From Below", "Counterbalance", "Darkpact", "Demonic Attorney", "Demonic Tutor", "Earthcraft", "Edric, Spymaster of Trest", "Falling Star", @@ -124,7 +124,7 @@ public enum DeckFormat { private final static String ADVPROCLAMATION = "Advantageous Proclamation"; private final static String SOVREALM = "Sovereign's Realm"; - private DeckFormat(Range mainRange0, Range sideRange0, int maxCardCopies0, Predicate paperCardPoolFilter0, Predicate cardPoolFilter0) { + private DeckFormat(Range mainRange0, Range sideRange0, int maxCardCopies0, Predicate cardPoolFilter0, Predicate paperCardPoolFilter0) { mainRange = mainRange0; sideRange = sideRange0; maxCardCopies = maxCardCopies0; diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java index c0bd5ec42b9..4e5bfc66180 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java +++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java @@ -92,7 +92,7 @@ public class FDeckEditor extends TabPageScreen { public Deck get() { return new Deck(); } - }), Predicates.and(DeckFormat.Brawl.isLegalCardPredicate(),FModel.getFormats().getStandard().getFilterPrinted())),//include standard format requirement + }), DeckFormat.Brawl.isLegalCardPredicate()), Archenemy(new DeckController(FModel.getDecks().getScheme(), new Supplier() { @Override public Deck get() { @@ -920,21 +920,25 @@ public class FDeckEditor extends TabPageScreen { final List commanders = parentScreen.getDeck().getCommanders(); if (commanders.isEmpty()) { //if no commander set for deck, only show valid commanders - additionalFilter = DeckFormat.Commander.isLegalCommanderPredicate(); - if(editorType.equals(EditorType.Brawl)){ - //brawl commander filter - additionalFilter = Predicates.and(Predicates.compose(Predicates.or(CardRulesPredicates.Presets.IS_PLANESWALKER,Predicates.and( - CardRulesPredicates.Presets.IS_CREATURE,CardRulesPredicates.Presets.IS_LEGENDARY)), PaperCard.FN_GET_RULES), - FModel.getFormats().getStandard().getFilterPrinted()); + switch (editorType) { + case TinyLeaders: + case Commander: + additionalFilter = DeckFormat.Commander.isLegalCommanderPredicate(); + break; + case Brawl: + additionalFilter = DeckFormat.Brawl.isLegalCommanderPredicate(); } - cardManager.setCaption("Commanders"); } else { //if a commander has been set, only show cards that match its color identity - additionalFilter = DeckFormat.Commander.isLegalCardForCommanderOrLegalPartnerPredicate(commanders); - if(editorType.equals(EditorType.Brawl)){ - additionalFilter = Predicates.and(additionalFilter,FModel.getFormats().getStandard().getFilterPrinted()); + switch (editorType) { + case TinyLeaders: + case Commander: + additionalFilter = DeckFormat.Commander.isLegalCardForCommanderOrLegalPartnerPredicate(commanders); + break; + case Brawl: + additionalFilter = DeckFormat.Brawl.isLegalCardForCommanderOrLegalPartnerPredicate(commanders); } cardManager.setCaption("Cards"); } diff --git a/forge-gui/src/main/java/forge/deck/DeckProxy.java b/forge-gui/src/main/java/forge/deck/DeckProxy.java index 4069a84cb98..d120d57d496 100644 --- a/forge-gui/src/main/java/forge/deck/DeckProxy.java +++ b/forge-gui/src/main/java/forge/deck/DeckProxy.java @@ -381,12 +381,6 @@ public class DeckProxy implements InventoryItem { else { filter = Predicates.and(DeckFormat.Brawl.hasLegalCardsPredicate(), filter); } - filter = Predicates.and(new Predicate() { - @Override - public boolean apply(Deck input) { - return FModel.getFormats().getStandard().isDeckLegal(input); - } - }, filter); addDecksRecursivelly("Brawl", GameType.Brawl, result, "", FModel.getDecks().getBrawl(), filter); return result; } diff --git a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java index a7405af9450..eafb2df8c59 100644 --- a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java +++ b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java @@ -542,7 +542,7 @@ public class DeckgenUtil { PaperCard selectedPartner=null; if(isCardGen){ List> potentialCards = new ArrayList<>(); - if(format.equals(DeckFormat.Brawl)){ + if(format.equals(DeckFormat.Brawl)){//TODO: replace with actual Brawl based data potentialCards.addAll(CardRelationMatrixGenerator.cardPools.get(FModel.getFormats().getStandard().getName()).get(commander.getName())); }else { potentialCards.addAll(CardRelationMatrixGenerator.cardPools.get(DeckFormat.Commander.toString()).get(commander.getName())); diff --git a/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java b/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java index 4e209200331..7efa871b472 100644 --- a/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java +++ b/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java @@ -80,6 +80,8 @@ public class RandomDeckGenerator extends DeckProxy implements Comparable