From 5cd502059571c7c825b2a18b79044a581ee477b9 Mon Sep 17 00:00:00 2001 From: Adam Pantel Date: Sat, 23 Mar 2019 11:23:02 -0400 Subject: [PATCH 1/2] Fix draft bots running conspiracies --- forge-core/src/main/java/forge/card/CardRulesPredicates.java | 5 ++--- .../main/java/forge/deck/generation/DeckGeneratorBase.java | 2 +- .../src/main/java/forge/limited/LimitedDeckBuilder.java | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/forge-core/src/main/java/forge/card/CardRulesPredicates.java b/forge-core/src/main/java/forge/card/CardRulesPredicates.java index dba9ccad197..efc8d4add4e 100644 --- a/forge-core/src/main/java/forge/card/CardRulesPredicates.java +++ b/forge-core/src/main/java/forge/card/CardRulesPredicates.java @@ -581,12 +581,11 @@ public final class CardRulesPredicates { public static final Predicate IS_VANGUARD = CardRulesPredicates.coreType(true, CardType.CoreType.Vanguard); public static final Predicate IS_CONSPIRACY = CardRulesPredicates.coreType(true, CardType.CoreType.Conspiracy); public static final Predicate IS_NON_LAND = CardRulesPredicates.coreType(false, CardType.CoreType.Land); - public static final Predicate IS_NON_CREATURE_SPELL = Predicates.not(Predicates.or(Presets.IS_CREATURE, Presets.IS_LAND)); public static final Predicate CAN_BE_BRAWL_COMMANDER = Predicates.or(Presets.IS_PLANESWALKER, Predicates.and(Presets.IS_CREATURE, Presets.IS_LEGENDARY)); - /** The Constant IS_NONCREATURE_SPELL_FOR_GENERATOR. **/ - public static final Predicate IS_NONCREATURE_SPELL_FOR_GENERATOR = com.google.common.base.Predicates + /** The Constant IS_NON_CREATURE_SPELL. **/ + public static final Predicate IS_NON_CREATURE_SPELL = com.google.common.base.Predicates .or(Presets.IS_SORCERY, Presets.IS_INSTANT, Presets.IS_PLANESWALKER, Presets.IS_ENCHANTMENT, Predicates.and(Presets.IS_ARTIFACT, Predicates.not(Presets.IS_CREATURE))); diff --git a/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java b/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java index 8a0cda09fd5..d3f0a844019 100644 --- a/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java +++ b/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java @@ -100,7 +100,7 @@ public abstract class DeckGeneratorBase { trace.append("Creatures to add:").append(creatCnt).append("\n"); addCmcAdjusted(creatures, creatCnt, cmcLevels); - Predicate preSpells = Predicates.compose(CardRulesPredicates.Presets.IS_NONCREATURE_SPELL_FOR_GENERATOR, PaperCard.FN_GET_RULES); + Predicate preSpells = Predicates.compose(CardRulesPredicates.Presets.IS_NON_CREATURE_SPELL, PaperCard.FN_GET_RULES); final Iterable spells = Iterables.filter(cards, preSpells); final int spellCnt = (int) Math.ceil(getSpellPercentage() * size); trace.append("Spells to add:").append(spellCnt).append("\n"); diff --git a/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java b/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java index 09c2628ce62..77122cce593 100644 --- a/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java @@ -92,6 +92,7 @@ public class LimitedDeckBuilder extends DeckGeneratorBase { final Iterable conspiracies = Iterables.filter(aiPlayables, Predicates.compose(CardRulesPredicates.coreType(true, "Conspiracy"), PaperCard.FN_GET_RULES)); this.draftedConspiracies = Lists.newArrayList(conspiracies); + aiPlayables.removeAll(draftedConspiracies); findBasicLandSets(); } From 18f32a1657e9aa30c4a6bc75bd8ff3c4dd0e9a4d Mon Sep 17 00:00:00 2001 From: Adam Pantel Date: Sat, 23 Mar 2019 00:48:58 -0400 Subject: [PATCH 2/2] Fix draft duplicates bug --- .../src/main/java/forge/limited/LimitedDeckBuilder.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java b/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java index 77122cce593..28c653301de 100644 --- a/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java @@ -92,7 +92,7 @@ public class LimitedDeckBuilder extends DeckGeneratorBase { final Iterable conspiracies = Iterables.filter(aiPlayables, Predicates.compose(CardRulesPredicates.coreType(true, "Conspiracy"), PaperCard.FN_GET_RULES)); this.draftedConspiracies = Lists.newArrayList(conspiracies); - aiPlayables.removeAll(draftedConspiracies); + this.aiPlayables.removeAll(draftedConspiracies); findBasicLandSets(); } @@ -177,6 +177,7 @@ public class LimitedDeckBuilder extends DeckGeneratorBase { if (card != null) { deckList.add(card); aiPlayables.remove(card); + rankedColorList.remove(card); landsNeeded--; if (logToConsole) { System.out.println("Low CMC: " + card.getName()); @@ -291,6 +292,7 @@ public class LimitedDeckBuilder extends DeckGeneratorBase { final PaperCard c = aiPlayables.get(MyRandom.getRandom().nextInt(aiPlayables.size() - 1)); deckList.add(c); aiPlayables.remove(c); + rankedColorList.remove(c); if (logToConsole) { System.out.println(" - Added " + c.getName() + " randomly."); } @@ -298,6 +300,7 @@ public class LimitedDeckBuilder extends DeckGeneratorBase { final PaperCard c = aiPlayables.get(0); deckList.add(c); aiPlayables.remove(c); + rankedColorList.remove(c); if (logToConsole) { System.out.println(" - Added " + c.getName() + " randomly."); } @@ -522,6 +525,7 @@ public class LimitedDeckBuilder extends DeckGeneratorBase { } deckList.addAll(toAdd); aiPlayables.removeAll(toAdd); + rankedColorList.removeAll(toAdd); } }