XColor fixes

This commit is contained in:
tool4EvEr
2023-02-20 15:59:53 +01:00
parent 57c6a338d8
commit 6c5436a69e
11 changed files with 35 additions and 13 deletions

View File

@@ -1354,7 +1354,10 @@ public class ComputerUtilMana {
manaToAdd = 1;
}
String xColor = sa.getParamOrDefault("XColor", "1");
String xColor = sa.getXColor();
if (xColor == null) {
xColor = "1";
}
if (card.hasKeyword("Spend only colored mana on X. No more than one mana of each color may be spent this way.")) {
xColor = "WUBRGX";
}

View File

@@ -23,6 +23,7 @@ import forge.ai.ComputerUtilMana;
import forge.ai.PlayerControllerAi;
import forge.ai.SpecialCardAi;
import forge.ai.SpellAbilityAi;
import forge.card.MagicColor;
import forge.card.mana.ManaCost;
import forge.game.Game;
import forge.game.GameEntity;
@@ -1011,7 +1012,7 @@ public class DamageDealAi extends DamageAiBase {
Player opponent = ai.getWeakestOpponent();
// TODO: somehow account for the possible cost reduction?
int dmg = ComputerUtilMana.determineLeftoverMana(sa, ai, saTgt.getParam("XColor"), false);
int dmg = ComputerUtilMana.determineLeftoverMana(sa, ai, MagicColor.toShortString(saTgt.getParam("XColor")), false);
while (!ComputerUtilMana.canPayManaCost(sa, ai, dmg, false) && dmg > 0) {
// TODO: ideally should never get here, currently put here as a precaution for complex mana base cases where the miscalculation might occur. Will remove later if it proves to never trigger.