From d2040989f9b84b06d008d999ffa50caf55e59473 Mon Sep 17 00:00:00 2001 From: Sloth Date: Sun, 3 Mar 2013 23:03:24 +0000 Subject: [PATCH] - Added AI support for Mind Grind. --- .../java/forge/card/ability/ai/DigUntilAi.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/forge/card/ability/ai/DigUntilAi.java b/src/main/java/forge/card/ability/ai/DigUntilAi.java index 9095786cc7d..eb784eac053 100644 --- a/src/main/java/forge/card/ability/ai/DigUntilAi.java +++ b/src/main/java/forge/card/ability/ai/DigUntilAi.java @@ -2,9 +2,12 @@ package forge.card.ability.ai; import java.util.Random; +import forge.Card; import forge.card.ability.SpellAbilityAi; +import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.ai.ComputerUtilMana; import forge.game.player.AIPlayer; import forge.game.player.Player; import forge.game.zone.ZoneType; @@ -14,6 +17,7 @@ public class DigUntilAi extends SpellAbilityAi { @Override protected boolean canPlayAI(AIPlayer ai, SpellAbility sa) { + Card source = sa.getSourceCard(); double chance = .4; // 40 percent chance with instant speed stuff if (SpellAbilityAi.isSorcerySpeed(sa)) { chance = .667; // 66.7% chance for sorcery speed (since it will @@ -36,6 +40,18 @@ public class DigUntilAi extends SpellAbilityAi { libraryOwner = opp; } + final String num = sa.getParam("Amount"); + if ((num != null) && num.equals("X") && source.getSVar(num).equals("Count$xPaid")) { + // Set PayX here to maximum value. + if (!(sa instanceof AbilitySub) || source.getSVar("PayX").equals("")) { + int numCards = ComputerUtilMana.determineLeftoverMana(sa, ai); + if (numCards <= 0) { + return false; + } + source.setSVar("PayX", Integer.toString(numCards)); + } + } + // return false if nothing to dig into if (libraryOwner.getCardsIn(ZoneType.Library).isEmpty()) { return false;