From 7330c5b54ab0a281299470f5dfad206ea7de9080 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 12 May 2017 09:55:38 +0000 Subject: [PATCH] Improved sideboard generation in card-based decks --- .../forge/limited/CardThemedDeckBuilder.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java index 1fafc2b01bf..828243406c8 100644 --- a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java @@ -22,6 +22,7 @@ import forge.model.FModel; import forge.util.MyRandom; import forge.util.PredicateString; +import java.awt.print.Paper; import java.util.*; /** @@ -238,11 +239,23 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { System.out.println("Post Size fix : " + deckList.size()); } + //Create Deck final Deck result = new Deck(generateName()); result.getMain().add(deckList); + + //Add remaining non-land colour matching cards to sideboard final CardPool cp = result.getOrCreate(DeckSection.Sideboard); - cp.add(aiPlayables); - cp.add(availableList); + Iterable potentialSideboard = Iterables.filter(aiPlayables, + Predicates.and(Predicates.compose(hasColor, PaperCard.FN_GET_RULES), + Predicates.compose(CardRulesPredicates.Presets.IS_NON_LAND, PaperCard.FN_GET_RULES))); + int i=0; + while(i<15 && potentialSideboard.iterator().hasNext()){ + PaperCard sbCard = potentialSideboard.iterator().next(); + cp.add(sbCard); + aiPlayables.remove(sbCard); + + ++i; + } if (logToConsole) { debugFinalDeck(); }