From 40b1f89c8fd647f917a39aad3cbb09d10356735e Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Wed, 16 Oct 2019 01:25:33 +0000 Subject: [PATCH] Resolve "ReduceCost with MinMana does reduce to 0, but shouldn't" --- .../src/main/java/forge/game/cost/CostAdjustment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java index 6e178003a76..dc24242bdba 100644 --- a/forge-game/src/main/java/forge/game/cost/CostAdjustment.java +++ b/forge-game/src/main/java/forge/game/cost/CostAdjustment.java @@ -192,7 +192,7 @@ public class CostAdjustment { } for (final StaticAbility stAb : reduceAbilities) { - sumGeneric += applyReduceCostAbility(stAb, sa, cost); + sumGeneric += applyReduceCostAbility(stAb, sa, cost, sumGeneric); } // need to reduce generic extra because of 2 hybrid mana cost.decreaseGenericMana(sumGeneric); @@ -360,7 +360,7 @@ public class CostAdjustment { * @param manaCost * a ManaCost */ - private static int applyReduceCostAbility(final StaticAbility staticAbility, final SpellAbility sa, final ManaCostBeingPaid manaCost) { + private static int applyReduceCostAbility(final StaticAbility staticAbility, final SpellAbility sa, final ManaCostBeingPaid manaCost, int sumReduced) { //Can't reduce zero cost if (manaCost.toString().equals("{0}")) { return 0; @@ -393,7 +393,7 @@ public class CostAdjustment { minMana = Integer.valueOf(staticAbility.getParam("MinMana")); } - final int maxReduction = Math.max(0, manaCost.getConvertedManaCost() - minMana); + final int maxReduction = Math.max(0, manaCost.getConvertedManaCost() - minMana - sumReduced); if (maxReduction > 0) { return Math.min(value, maxReduction); }