diff --git a/forge-ai/src/main/java/forge/ai/ability/DigUntilAi.java b/forge-ai/src/main/java/forge/ai/ability/DigUntilAi.java index 61f7323299a..2397f6cba9d 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DigUntilAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DigUntilAi.java @@ -6,6 +6,7 @@ import forge.ai.SpellAbilityAi; import forge.game.card.Card; import forge.game.card.CardLists; import forge.game.card.CardPredicates; +import forge.game.phase.PhaseType; import forge.game.player.Player; import forge.game.player.PlayerActionConfirmMode; import forge.game.spellability.AbilitySub; @@ -27,6 +28,12 @@ public class DigUntilAi extends SpellAbilityAi { chance = .667; // 66.7% chance for sorcery speed (since it will // never activate EOT) } + // if we don't use anything now, we wasted our opportunity. + if ((ai.getGame().getPhaseHandler().is(PhaseType.END_OF_TURN)) + && (!ai.getGame().getPhaseHandler().isPlayerTurn(ai))) { + chance = 1; + } + final Random r = MyRandom.getRandom(); final boolean randomReturn = r.nextFloat() <= Math.pow(chance, sa.getActivationsThisTurn() + 1); @@ -44,7 +51,13 @@ public class DigUntilAi extends SpellAbilityAi { if ("Land.Basic".equals(sa.getParam("Valid")) && !CardLists.filter(ai.getCardsIn(ZoneType.Hand), CardPredicates.Presets.LANDS_PRODUCING_MANA).isEmpty()) { // We already have a mana-producing land in hand, so bail - return false; + // until opponent's end of turn phase! + // But we still want more (and want to fill grave) if nothing better to do then + // This is important for Replenish/Living Death type decks + if (!((ai.getGame().getPhaseHandler().is(PhaseType.END_OF_TURN)) + && (!ai.getGame().getPhaseHandler().isPlayerTurn(ai)))) { + return false; + } } }