AiController: only do verifyTransitivity when sort failed

This commit is contained in:
Hans Mackowiak
2019-10-13 06:36:55 +00:00
committed by Michael Kamensky
parent a07158181e
commit 44bcc72662

View File

@@ -59,6 +59,7 @@ import forge.item.PaperCard;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.Expressions; import forge.util.Expressions;
import forge.util.MyRandom; import forge.util.MyRandom;
import forge.util.ComparatorUtil;
import forge.util.collect.FCollectionView; import forge.util.collect.FCollectionView;
import io.sentry.Sentry; import io.sentry.Sentry;
import io.sentry.event.BreadcrumbBuilder; import io.sentry.event.BreadcrumbBuilder;
@@ -609,8 +610,14 @@ public class AiController {
ComputerUtilAbility.getAvailableCards(game, player); ComputerUtilAbility.getAvailableCards(game, player);
List<SpellAbility> all = ComputerUtilAbility.getSpellAbilities(cards, player); List<SpellAbility> all = ComputerUtilAbility.getSpellAbilities(cards, player);
//ComparatorUtil.verifyTransitivity(saComparator, all); // FIXME: only use this for testing, it lags too much
try {
Collections.sort(all, saComparator); // put best spells first 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)) { for (final SpellAbility sa : ComputerUtilAbility.getOriginalAndAltCostAbilities(all, player)) {
ApiType saApi = sa.getApi(); ApiType saApi = sa.getApi();
@@ -1573,8 +1580,13 @@ public class AiController {
if (all == null || all.isEmpty()) if (all == null || all.isEmpty())
return null; return null;
//ComparatorUtil.verifyTransitivity(saComparator, all); // FIXME: only use this for testing, otherwise it lags too much try {
Collections.sort(all, saComparator); // put best spells first 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)) { for (final SpellAbility sa : ComputerUtilAbility.getOriginalAndAltCostAbilities(all, player)) {
// Don't add Counterspells to the "normal" playcard lookups // Don't add Counterspells to the "normal" playcard lookups