- AI support implementation

This commit is contained in:
Michael Kamensky
2021-09-21 07:34:28 +03:00
parent 071fbbf41c
commit 6ab610507c

View File

@@ -1,11 +1,8 @@
package forge.ai.ability;
import forge.ai.AiController;
import forge.ai.AiPlayDecision;
import forge.ai.ComputerUtilCost;
import forge.ai.PlayerControllerAi;
import forge.ai.SpellAbilityAi;
import forge.ai.SpellApiToAi;
import forge.ai.*;
import forge.card.mana.ManaCost;
import forge.game.mana.ManaCostBeingPaid;
import forge.game.player.Player;
import forge.game.spellability.AbilitySub;
import forge.game.spellability.SpellAbility;
@@ -47,6 +44,19 @@ public class ImmediateTriggerAi extends SpellAbilityAi {
sa.setXManaCostPaid(ComputerUtilCost.getMaxXValue(sa, ai));
}
if ("NumTimes".equals(sa.getParam("Announce"))) { // e.g. the Adversary cycle
ManaCost mkCost = sa.getPayCosts().getTotalMana();
ManaCost mCost = ManaCost.ZERO;
for (int i = 0; i < 10; i++) {
mCost = ManaCost.combine(mCost, mkCost);
ManaCostBeingPaid mcbp = new ManaCostBeingPaid(mCost);
if (!ComputerUtilMana.canPayManaCost(mcbp, sa, ai)) {
sa.getHostCard().setSVar("NumTimes", "Number$" + i);
break;
}
}
}
AiController aic = ((PlayerControllerAi)ai.getController()).getAi();
trigsa.setActivatingPlayer(ai);