Fix mana restriction check for subabilities

This commit is contained in:
tool4EvEr
2021-02-27 21:00:36 +01:00
parent 08bd2df74f
commit 4226cd21d2

View File

@@ -21,6 +21,7 @@ import forge.game.card.Card;
import forge.game.mana.ManaCostBeingPaid; import forge.game.mana.ManaCostBeingPaid;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.player.PlayerView; import forge.game.player.PlayerView;
import forge.game.spellability.AbilityManaPart;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.player.HumanPlay; import forge.player.HumanPlay;
import forge.player.PlayerControllerHuman; import forge.player.PlayerControllerHuman;
@@ -330,7 +331,17 @@ public abstract class InputPayMana extends InputSyncronizedBase {
@Override @Override
public void run() { public void run() {
if (HumanPlay.playSpellAbility(getController(), chosen.getActivatingPlayer(), chosen)) { if (HumanPlay.playSpellAbility(getController(), chosen.getActivatingPlayer(), chosen)) {
if (chosen.getManaPart().meetsManaRestrictions(saPaidFor)) { final List<AbilityManaPart> 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); player.getManaPool().payManaFromAbility(saPaidFor, InputPayMana.this.manaCost, chosen);
} }
onManaAbilityPaid(); onManaAbilityPaid();