From 7fa461e83991b4b6cd493003371d66b0abe3443e Mon Sep 17 00:00:00 2001 From: Agetian Date: Sun, 13 Oct 2019 07:36:40 +0300 Subject: [PATCH 1/2] - Comment out the transitivity test due to lag reasons. --- forge-ai/src/main/java/forge/ai/AiController.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index 35dd572ec1d..68220e1cd9c 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -59,7 +59,6 @@ import forge.item.PaperCard; import forge.util.Aggregates; import forge.util.Expressions; import forge.util.MyRandom; -import forge.util.ComparatorUtil; import forge.util.collect.FCollectionView; import io.sentry.Sentry; import io.sentry.event.BreadcrumbBuilder; @@ -610,7 +609,7 @@ public class AiController { ComputerUtilAbility.getAvailableCards(game, player); List all = ComputerUtilAbility.getSpellAbilities(cards, player); - ComparatorUtil.verifyTransitivity(saComparator, all); + //ComparatorUtil.verifyTransitivity(saComparator, all); // FIXME: only use this for testing, it lags too much Collections.sort(all, saComparator); // put best spells first for (final SpellAbility sa : ComputerUtilAbility.getOriginalAndAltCostAbilities(all, player)) { @@ -1574,7 +1573,7 @@ public class AiController { if (all == null || all.isEmpty()) return null; - ComparatorUtil.verifyTransitivity(saComparator, all); + //ComparatorUtil.verifyTransitivity(saComparator, all); // FIXME: only use this for testing, otherwise it lags too much Collections.sort(all, saComparator); // put best spells first for (final SpellAbility sa : ComputerUtilAbility.getOriginalAndAltCostAbilities(all, player)) { From 44bcc7266216f46a6bfc65b270883295b0cf71ce Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Sun, 13 Oct 2019 06:36:55 +0000 Subject: [PATCH 2/2] AiController: only do verifyTransitivity when sort failed --- .../src/main/java/forge/ai/AiController.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/AiController.java b/forge-ai/src/main/java/forge/ai/AiController.java index 68220e1cd9c..2d0e8ac5a23 100644 --- a/forge-ai/src/main/java/forge/ai/AiController.java +++ b/forge-ai/src/main/java/forge/ai/AiController.java @@ -59,6 +59,7 @@ import forge.item.PaperCard; import forge.util.Aggregates; import forge.util.Expressions; import forge.util.MyRandom; +import forge.util.ComparatorUtil; import forge.util.collect.FCollectionView; import io.sentry.Sentry; import io.sentry.event.BreadcrumbBuilder; @@ -609,8 +610,14 @@ public class AiController { ComputerUtilAbility.getAvailableCards(game, player); List all = ComputerUtilAbility.getSpellAbilities(cards, player); - //ComparatorUtil.verifyTransitivity(saComparator, all); // FIXME: only use this for testing, it lags too much - Collections.sort(all, saComparator); // put best spells first + + try { + Collections.sort(all, saComparator); // put best spells first + } + catch (IllegalArgumentException ex) { + System.err.println(ex.getMessage()); + ComparatorUtil.verifyTransitivity(saComparator, all); + } for (final SpellAbility sa : ComputerUtilAbility.getOriginalAndAltCostAbilities(all, player)) { ApiType saApi = sa.getApi(); @@ -1573,8 +1580,13 @@ public class AiController { if (all == null || all.isEmpty()) return null; - //ComparatorUtil.verifyTransitivity(saComparator, all); // FIXME: only use this for testing, otherwise it lags too much - Collections.sort(all, saComparator); // put best spells first + try { + Collections.sort(all, saComparator); // put best spells first + } + catch (IllegalArgumentException ex) { + System.err.println(ex.getMessage()); + ComparatorUtil.verifyTransitivity(saComparator, all); + } for (final SpellAbility sa : ComputerUtilAbility.getOriginalAndAltCostAbilities(all, player)) { // Don't add Counterspells to the "normal" playcard lookups