diff --git a/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java index e31a2780e0..58e203ba61 100644 --- a/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java +++ b/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java @@ -68,7 +68,7 @@ public class GenericManaCost extends ManaCostImpl { @Override public void assignPayment(Game game, Ability ability, ManaPool pool, Cost costsToPay) { - this.assignColorless(ability, game, pool, mana, costsToPay); + this.assignGeneric(ability, game, pool, mana, costsToPay); } @Override diff --git a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java index 9946a009b2..ac02b532ab 100644 --- a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java +++ b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java @@ -151,7 +151,17 @@ public abstract class ManaCostImpl extends CostImpl implements ManaCost { return false; } - protected boolean assignColorless(Ability ability, Game game, ManaPool pool, int mana, Cost costToPay) { + protected void assignColorless(Ability ability, Game game, ManaPool pool, int mana, Cost costToPay) { + int conditionalCount = pool.getConditionalCount(ability, game, null, costToPay); + while (mana > payment.count() && (pool.count() > 0 || conditionalCount > 0)) { + if (pool.pay(ManaType.COLORLESS, ability, sourceFilter, game, costToPay)) { + this.payment.increaseColorless(); + } + break; + } + } + + protected boolean assignGeneric(Ability ability, Game game, ManaPool pool, int mana, Cost costToPay) { int conditionalCount = pool.getConditionalCount(ability, game, null, costToPay); while (mana > payment.count() && (pool.count() > 0 || conditionalCount > 0)) { if (pool.pay(ManaType.COLORLESS, ability, sourceFilter, game, costToPay)) { diff --git a/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java index edb39235e1..2e7b2a7a94 100644 --- a/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java +++ b/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java @@ -71,7 +71,7 @@ public class MonoHybridManaCost extends ManaCostImpl { @Override public void assignPayment(Game game, Ability ability, ManaPool pool, Cost costToPay) { if (!assignColored(ability, game, pool, mana, costToPay)) { - assignColorless(ability, game, pool, mana2, costToPay); + assignGeneric(ability, game, pool, mana2, costToPay); } } diff --git a/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java index 52383c43fa..b5e119a5fa 100644 --- a/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java +++ b/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java @@ -61,7 +61,7 @@ public class SnowManaCost extends ManaCostImpl { @Override public void assignPayment(Game game, Ability ability, ManaPool pool, Cost costToPay) { - this.assignColorless(ability, game, pool, 1, costToPay); + this.assignGeneric(ability, game, pool, 1, costToPay); } @Override