From a8a16968d3362700bc7d2cf2812d7e6fd364652e Mon Sep 17 00:00:00 2001 From: Alex Vasile <48962821+Alex-Vasile@users.noreply.github.com> Date: Mon, 4 Jul 2022 22:20:54 -0400 Subject: [PATCH] [AKH] Fix game slowdown from Cascading Cataracts. Closes #7649. (#9068) --- .../effects/mana/AddManaInAnyCombinationEffect.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Mage/src/main/java/mage/abilities/effects/mana/AddManaInAnyCombinationEffect.java b/Mage/src/main/java/mage/abilities/effects/mana/AddManaInAnyCombinationEffect.java index afb895ef7c8..600f6a23bf7 100644 --- a/Mage/src/main/java/mage/abilities/effects/mana/AddManaInAnyCombinationEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/mana/AddManaInAnyCombinationEffect.java @@ -93,13 +93,19 @@ public class AddManaInAnyCombinationEffect extends ManaEffect { ManaOptions allPossibleMana = new ManaOptions(); for (int i = 0; i < count; ++i) { ManaOptions currentPossibleMana = new ManaOptions(); - for (ColoredManaSymbol coloredManaSymbol : manaSymbols) { - currentPossibleMana.add(new Mana(coloredManaSymbol)); + + if (manaSymbols.size() == 5) { // If all colors available, then it's the same as any, but this is much faster + currentPossibleMana.add(new Mana(0, 0, 0, 0, 0, 0, 1, 0)); + } else { + for (ColoredManaSymbol coloredManaSymbol : manaSymbols) { + currentPossibleMana.add(new Mana(coloredManaSymbol)); + } } + allPossibleMana.addMana(currentPossibleMana); } allPossibleMana.removeDuplicated(); - return allPossibleMana.stream().collect(Collectors.toList()); + return new ArrayList<>(allPossibleMana); } else { int amountOfManaLeft = amount.calculate(game, source, this);