diff --git a/Mage.Sets/src/mage/cards/r/ReaperKing.java b/Mage.Sets/src/mage/cards/r/ReaperKing.java index 39d871b5e16..8b243a0b19e 100644 --- a/Mage.Sets/src/mage/cards/r/ReaperKing.java +++ b/Mage.Sets/src/mage/cards/r/ReaperKing.java @@ -60,7 +60,7 @@ public class ReaperKing extends CardImpl { public ReaperKing(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{2/W}{2/U}{2/B}{2/R}{2/G}"); addSuperType(SuperType.LEGENDARY); - this.subtype.add("Scarecrow"); + this.subtype.add(SubType.SCARECROW); this.power = new MageInt(6); this.toughness = new MageInt(6); diff --git a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java index f040a8f2cd2..f5e8f766ca8 100644 --- a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java +++ b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostsImpl.java @@ -37,6 +37,7 @@ import mage.abilities.costs.VariableCost; import mage.abilities.costs.common.PayLifeCost; import mage.abilities.mana.ManaOptions; import mage.constants.ColoredManaSymbol; +import mage.constants.ManaType; import mage.constants.Outcome; import mage.filter.Filter; import mage.game.Game; @@ -293,16 +294,16 @@ public class ManaCostsImpl extends ArrayList implements M } // Mono Hybrid mana costs - // First try only to pay colored mana with the pool + // First try only to pay colored mana or conditional colored mana with the pool for (ManaCost cost : this) { if (!cost.isPaid() && cost instanceof MonoHybridManaCost) { - if (((cost.containsColor(ColoredManaSymbol.W)) && pool.getWhite() > 0) - || ((cost.containsColor(ColoredManaSymbol.B)) && pool.getBlack() > 0) - || ((cost.containsColor(ColoredManaSymbol.R)) && pool.getRed() > 0) - || ((cost.containsColor(ColoredManaSymbol.G)) && pool.getGreen() > 0) - || ((cost.containsColor(ColoredManaSymbol.U)) && pool.getBlue() > 0)) { + if (((cost.containsColor(ColoredManaSymbol.W)) && (pool.getWhite() > 0 || pool.ConditionalManaHasManaType(ManaType.WHITE))) + || ((cost.containsColor(ColoredManaSymbol.B)) && (pool.getBlack() > 0 || pool.ConditionalManaHasManaType(ManaType.BLACK))) + || ((cost.containsColor(ColoredManaSymbol.R)) && (pool.getRed() > 0 || pool.ConditionalManaHasManaType(ManaType.RED))) + || ((cost.containsColor(ColoredManaSymbol.G)) && (pool.getGreen() > 0 || pool.ConditionalManaHasManaType(ManaType.GREEN))) + || ((cost.containsColor(ColoredManaSymbol.U)) && (pool.getBlue() > 0) || pool.ConditionalManaHasManaType(ManaType.BLUE))) { cost.assignPayment(game, ability, pool, costToPay); - if (pool.isEmpty()) { + if (pool.isEmpty() && pool.getConditionalMana().isEmpty()) { return; } } diff --git a/Mage/src/main/java/mage/players/ManaPool.java b/Mage/src/main/java/mage/players/ManaPool.java index 1ffeeffc40e..e55444bf3de 100644 --- a/Mage/src/main/java/mage/players/ManaPool.java +++ b/Mage/src/main/java/mage/players/ManaPool.java @@ -414,6 +414,17 @@ public class ManaPool implements Serializable { return conditionalMana; } + public boolean ConditionalManaHasManaType(ManaType manaType) { + for (ManaPoolItem item : manaItems) { + if (item.isConditional()) { + if (item.getConditionalMana().get(manaType) > 0) { + return true; + } + } + } + return false; + } + public int count() { int x = 0; for (ManaPoolItem item : manaItems) {