diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java b/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java index 33202f960e9..7f4111ae9c8 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtilMana.java @@ -334,6 +334,9 @@ public class ComputerUtilMana { if (test) { refundMana(manaSpentToPay, ai, sa); } + else { + manaSpentToPay.clear(); //prevent mana spent to pay sticking around such that it can cause an improper refund later + } handleOfferingsAI(sa, test, cost.isPaid()); return true; } @@ -461,6 +464,9 @@ public class ComputerUtilMana { if (test) { refundMana(manaSpentToPay, ai, sa); } + else { + manaSpentToPay.clear(); //prevent mana spent to pay sticking around such that it can cause an improper refund later + } sa.getHostCard().setColorsPaid(cost.getColorsPaid()); // if (sa instanceof Spell_Permanent) // should probably add this sa.getHostCard().setSunburstValue(cost.getSunburst()); diff --git a/forge-game/src/main/java/forge/game/mana/ManaPool.java b/forge-game/src/main/java/forge/game/mana/ManaPool.java index e7253bb8648..393bf19ea06 100644 --- a/forge-game/src/main/java/forge/game/mana/ManaPool.java +++ b/forge-game/src/main/java/forge/game/mana/ManaPool.java @@ -231,8 +231,9 @@ public class ManaPool implements Iterable { paidAbs.add(saPayment); // assumes some part on the mana produced by the ability will get used for (final Mana mana : abManaPart.getLastManaProduced()) { - if( tryPayCostWithMana(saPaidFor, manaCost, mana) ) + if (tryPayCostWithMana(saPaidFor, manaCost, mana)) { saPaidFor.getPayingMana().add(0, mana); + } } }