From 70bd88e2d94f968fa342007c5934bcc0a84268f0 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Thu, 29 Mar 2018 08:47:15 +0100 Subject: [PATCH] Fixed failing tests due to missing StaticData. Fixed Commander-based fully random deck generation. --- .../src/main/java/forge/deck/DeckFormat.java | 2 +- .../src/main/java/forge/deck/DeckgenUtil.java | 32 +++---------------- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index 59fadb03616..1991967ef24 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, null, StaticData.instance().getStandardPredicate()), + Brawl ( Range.is(59), Range.between(0, 15), 1, null, StaticData.instance() == null ? 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", diff --git a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java index eafb2df8c59..abd5cb732dd 100644 --- a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java +++ b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java @@ -498,40 +498,18 @@ public class DeckgenUtil { final DeckFormat format = gameType.getDeckFormat(); Predicate canPlay = forAi ? DeckGeneratorBase.AI_CAN_PLAY : DeckGeneratorBase.HUMAN_CAN_PLAY; @SuppressWarnings("unchecked") - Iterable legends = cardDb.getAllCards(Predicates.compose(Predicates.and( + Iterable legends = cardDb.getAllCards(Predicates.and(format.isLegalCardPredicate(), + Predicates.compose(Predicates.and( new Predicate() { @Override public boolean apply(CardRules rules) { return format.isLegalCommander(rules); } }, - canPlay), PaperCard.FN_GET_RULES)); + canPlay), PaperCard.FN_GET_RULES))); - do { - commander = Aggregates.random(legends); - colorID = commander.getRules().getColorIdentity(); - } while (colorID.countColors() != 2); - - 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"); } - - DeckGeneratorBase gen = null; - gen = new DeckGenerator2Color(cardDb, format, comColors.get(0), comColors.get(1)); - gen.setSingleton(true); - gen.setUseArtifacts(!FModel.getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS)); - CardPool cards = gen.getDeck(gameType.getDeckFormat().getMainRange().getMaximum(), forAi); - - // After generating card lists, build deck. - deck = new Deck("Generated " + gameType.toString() + " deck (" + commander.getName() + ")"); - deck.setDirectory("generated/commander"); - deck.getMain().addAll(cards); - deck.getOrCreate(DeckSection.Commander).add(commander); - - return deck; + commander = Aggregates.random(legends); + return generateRandomCommanderDeck(commander, format, forAi, false); } /** Generate a ramdom Commander deck. */