diff --git a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java index 1b48fc05bf7..e663cf86c8d 100644 --- a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java +++ b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java @@ -586,26 +586,14 @@ public class DeckgenUtil { gen = new CardThemedCommanderDeckBuilder(commander, selectedPartner,preSelectedCards,forAi,format); }else{ cardDb = FModel.getMagicDb().getCommonCards(); - ColorSet colorID; - colorID = commander.getRules().getColorIdentity(); - List comColors = new ArrayList(2); - if (colorID.hasWhite()) { comColors.add("White"); } - if (colorID.hasBlue()) { comColors.add("Blue"); } - if (colorID.hasBlack()) { comColors.add("Black"); } - if (colorID.hasRed()) { comColors.add("Red"); } - if (colorID.hasGreen()) { comColors.add("Green"); } - - if(comColors.size()==1){ - gen = new DeckGeneratorMonoColor(cardDb, format, comColors.get(0)); - }else if(comColors.size()==2){ - gen = new DeckGenerator2Color(cardDb, format, comColors.get(0), comColors.get(1)); - }else if(comColors.size()==3){ - gen = new DeckGenerator3Color(cardDb, format, comColors.get(0), comColors.get(1), comColors.get(2)); - }else if(comColors.size()==4){ - gen = new DeckGenerator4Color(cardDb, format, comColors.get(0), comColors.get(1), comColors.get(2), comColors.get(3)); - }else if(comColors.size()==5){ - gen = new DeckGenerator5Color(cardDb, format); - } + //shuffle first 400 random cards + Iterable colorList = Iterables.filter(format.getCardPool(cardDb).getAllCards(), + Predicates.compose(Predicates.or(new CardThemedDeckBuilder.MatchColorIdentity(commander.getRules().getColorIdentity()), + DeckGeneratorBase.COLORLESS_CARDS), PaperCard.FN_GET_RULES)); + List cardList = Lists.newArrayList(colorList); + Collections.shuffle(cardList, new Random()); + List shortList = cardList.subList(1, 400); + gen = new CardThemedCommanderDeckBuilder(commander, selectedPartner,shortList,forAi,format); }