From 4226cd21d2641792de7d83232b87b343fe40f12f Mon Sep 17 00:00:00 2001 From: tool4EvEr Date: Sat, 27 Feb 2021 21:00:36 +0100 Subject: [PATCH] Fix mana restriction check for subabilities --- .../main/java/forge/match/input/InputPayMana.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/forge-gui/src/main/java/forge/match/input/InputPayMana.java b/forge-gui/src/main/java/forge/match/input/InputPayMana.java index ae52ec69690..88178afd1e9 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPayMana.java +++ b/forge-gui/src/main/java/forge/match/input/InputPayMana.java @@ -21,6 +21,7 @@ import forge.game.card.Card; import forge.game.mana.ManaCostBeingPaid; import forge.game.player.Player; import forge.game.player.PlayerView; +import forge.game.spellability.AbilityManaPart; import forge.game.spellability.SpellAbility; import forge.player.HumanPlay; import forge.player.PlayerControllerHuman; @@ -330,7 +331,17 @@ public abstract class InputPayMana extends InputSyncronizedBase { @Override public void run() { if (HumanPlay.playSpellAbility(getController(), chosen.getActivatingPlayer(), chosen)) { - if (chosen.getManaPart().meetsManaRestrictions(saPaidFor)) { + final List manaAbilities = chosen.getAllManaParts(); + boolean restrictionsMet = true; + + for (AbilityManaPart sa : manaAbilities) { + if (!sa.meetsManaRestrictions(saPaidFor)) { + restrictionsMet = false; + break; + } + } + + if (restrictionsMet) { player.getManaPool().payManaFromAbility(saPaidFor, InputPayMana.this.manaCost, chosen); } onManaAbilityPaid();