From 553cec6d60a1902c908d45b912bdf0f56e2e31cd Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Sat, 19 May 2018 22:25:01 +0100 Subject: [PATCH] Brawl deck generators make use of new colourless rules for basic lands --- .../forge/limited/CardThemedDeckBuilder.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java index 12eac3c607f..cc36a2884a4 100644 --- a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java @@ -83,7 +83,7 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { * Cards to build the deck from. */ public CardThemedDeckBuilder(PaperCard keyCard0, PaperCard secondKeyCard0, final List dList, GameFormat format, boolean isForAI, DeckFormat deckFormat) { - super(new DeckGenPool(FModel.getMagicDb().getCommonCards().getUniqueCards()), DeckFormat.Constructed, format.getFilterPrinted()); + super(new DeckGenPool(FModel.getMagicDb().getCommonCards().getUniqueCards()), deckFormat, format.getFilterPrinted()); this.availableList = dList; keyCard=keyCard0; secondKeyCard=secondKeyCard0; @@ -281,9 +281,7 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { System.out.println("Lands needed : " + landsNeeded); System.out.println("Post Lands : " + deckList.size()); } - if (keyCard.getRules().getColorIdentity().isColorless()&&landsNeeded>0){ - addWastesIfRequired(); - } + addWastesIfRequired(); fixDeckSize(); if (logToConsole) { System.out.println("Post Size fix : " + deckList.size()); @@ -682,14 +680,15 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { * Only adds wastes if present in the card pool but if present adds them all */ private void addWastesIfRequired(){ - if(colors.isColorless()) { - PaperCard waste = FModel.getMagicDb().getCommonCards().getUniqueByName("Wastes"); + PaperCard waste = FModel.getMagicDb().getCommonCards().getUniqueByName("Wastes"); + if(colors.isColorless()&& keyCard.getRules().getColorIdentity().isColorless() + && format.isLegalCard(waste)) { while (landsNeeded > 0) { deckList.add(waste); landsNeeded--; + aiPlayables.remove(waste); + rankedColorList.remove(waste); } - aiPlayables.remove(waste); - rankedColorList.remove(waste); } } @@ -703,6 +702,11 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { */ private int[] calculateLandNeeds() { final int[] clrCnts = { 0,0,0,0,0 }; + //Brawl allows colourless commanders to have any number of one basic land to fill out the deck.. + if (format.equals(DeckFormat.Brawl) && keyCard.getRules().getColorIdentity().isColorless()){ + clrCnts[MyRandom.getRandom().nextInt(5)] = 1; + return clrCnts; + } // count each card color using mana costs for (final PaperCard cp : deckList) { final ManaCost mc = cp.getRules().getManaCost();