From 7df721a863c917e20fffc48ad6d92f3ca8a9eaaf Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 20 Apr 2018 18:04:54 +0100 Subject: [PATCH 1/4] Fix for colourless brawl commanders --- .../main/java/forge/limited/CardThemedDeckBuilder.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java index 1cc024b89ef..af3df242278 100644 --- a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java @@ -749,8 +749,9 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { @Override public boolean apply(PaperCard card) { return format.isLegalCard(card) - &&!card.getRules().getManaCost().isPureGeneric() - && colors.containsAllColorsFrom(card.getRules().getColorIdentity().getColor()) + &&((!card.getRules().getManaCost().isPureGeneric() + && colors.containsAllColorsFrom(card.getRules().getColorIdentity().getColor()))|| + card.getRules().getManaCost().isPureGeneric()) && !deckListNames.contains(card.getName()) &&!card.getRules().getAiHints().getRemAIDecks() &&!card.getRules().getAiHints().getRemRandomDecks() @@ -765,7 +766,9 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { if (secondKeyCard != null) { possibleList.removeAll(StaticData.instance().getCommonCards().getAllCards(secondKeyCard.getName())); } - List randomPool = CardRanker.rankCardsInDeck(possibleList).subList(0,new Float(possibleList.size()*0.25).intValue()); + //reduce pool to more powerful cards to use as filler + int poolSize = new Float(possibleList.size()*0.25).intValue(); + List randomPool = CardRanker.rankCardsInDeck(possibleList).subList(0,poolSize); Collections.shuffle(randomPool); Iterator iRandomPool=randomPool.iterator(); for(int i=0;i Date: Fri, 20 Apr 2018 18:23:59 +0100 Subject: [PATCH 2/4] Fixed deck generation performance issue --- .../java/forge/limited/CardThemedDeckBuilder.java | 11 +++-------- 1 file changed, 3 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 af3df242278..c81224dd136 100644 --- a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java @@ -529,9 +529,7 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { if (secondKeyCard != null) { possibleList.removeAll(StaticData.instance().getCommonCards().getAllCards(secondKeyCard.getName())); } - List randomPool = CardRanker.rankCardsInDeck(possibleList).subList(0,new Float(possibleList.size()*0.25).intValue()); - Collections.shuffle(randomPool, MyRandom.getRandom()); - Iterator iRandomPool=randomPool.iterator(); + Iterator iRandomPool=possibleList.iterator(); while (deckList.size() < targetSize) { if (logToConsole) { System.out.println("WARNING: Fixing deck size, currently " + deckList.size() + " cards."); @@ -766,11 +764,8 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { if (secondKeyCard != null) { possibleList.removeAll(StaticData.instance().getCommonCards().getAllCards(secondKeyCard.getName())); } - //reduce pool to more powerful cards to use as filler - int poolSize = new Float(possibleList.size()*0.25).intValue(); - List randomPool = CardRanker.rankCardsInDeck(possibleList).subList(0,poolSize); - Collections.shuffle(randomPool); - Iterator iRandomPool=randomPool.iterator(); + Collections.shuffle(possibleList); + Iterator iRandomPool=possibleList.iterator(); for(int i=0;i Date: Fri, 20 Apr 2018 19:11:52 +0100 Subject: [PATCH 3/4] Generic mana fix for deck generation --- .../main/java/forge/limited/CardThemedDeckBuilder.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java index c81224dd136..5bb759054cf 100644 --- a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java @@ -513,8 +513,7 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { @Override public boolean apply(PaperCard card) { return format.isLegalCard(card) - && !card.getRules().getManaCost().isPureGeneric() - && colors.containsAllColorsFrom(card.getRules().getColorIdentity().getColor()) + && card.getRules().getColorIdentity().hasNoColorsExcept(colors) && !deckListNames.contains(card.getName()) && !card.getRules().getAiHints().getRemAIDecks() && !card.getRules().getAiHints().getRemRandomDecks() @@ -747,9 +746,8 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { @Override public boolean apply(PaperCard card) { return format.isLegalCard(card) - &&((!card.getRules().getManaCost().isPureGeneric() - && colors.containsAllColorsFrom(card.getRules().getColorIdentity().getColor()))|| - card.getRules().getManaCost().isPureGeneric()) + && card.getRules().getColorIdentity().hasNoColorsExcept(colors) + && colors.containsAllColorsFrom(card.getRules().getColorIdentity().getColor()) && !deckListNames.contains(card.getName()) &&!card.getRules().getAiHints().getRemAIDecks() &&!card.getRules().getAiHints().getRemRandomDecks() From a60f5d166052897b569d12145c8981b8d64b6b28 Mon Sep 17 00:00:00 2001 From: austinio7116 Date: Fri, 20 Apr 2018 19:13:35 +0100 Subject: [PATCH 4/4] Fixed deck generation performance issue --- forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java | 1 - 1 file changed, 1 deletion(-) diff --git a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java index 5bb759054cf..f1234ebe960 100644 --- a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java @@ -747,7 +747,6 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { public boolean apply(PaperCard card) { return format.isLegalCard(card) && card.getRules().getColorIdentity().hasNoColorsExcept(colors) - && colors.containsAllColorsFrom(card.getRules().getColorIdentity().getColor()) && !deckListNames.contains(card.getName()) &&!card.getRules().getAiHints().getRemAIDecks() &&!card.getRules().getAiHints().getRemRandomDecks()