From 3d6a7a25f2cdf17b52f1520d521ecbc19ed27642 Mon Sep 17 00:00:00 2001 From: Sloth Date: Sun, 1 Mar 2015 09:30:36 +0000 Subject: [PATCH] - Improved AI using Knight of the Reliquary. --- forge-ai/src/main/java/forge/ai/ComputerUtil.java | 3 ++- forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java | 8 ++++++++ forge-ai/src/main/java/forge/ai/ability/DiscardAi.java | 2 +- forge-ai/src/main/java/forge/ai/ability/DrawAi.java | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index bb0400801ed..519a82d8738 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -859,7 +859,8 @@ public class ComputerUtil { && sa.getPayCosts().hasTapCost() && (ph.getPhase().isBefore(PhaseType.COMBAT_DECLARE_BLOCKERS) || !ph.getNextTurn().equals(sa.getActivatingPlayer())) - && !sa.getHostCard().hasSVar("EndOfTurnLeavePlay")); + && !sa.getHostCard().hasSVar("EndOfTurnLeavePlay") + && !sa.hasParam("ActivationPhases")); } //returns true if it's better to wait until blockers are declared). diff --git a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java index f8e3e2f9f0a..17b3e9c09dd 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChangeZoneAi.java @@ -295,6 +295,10 @@ public class ChangeZoneAi extends SpellAbilityAi { } } } + + if (ComputerUtil.playImmediately(ai, sa)) { + return true; + } // don't use fetching to top of library/graveyard before main2 if (ai.getGame().getPhaseHandler().getPhase().isBefore(PhaseType.MAIN2) @@ -308,6 +312,10 @@ public class ChangeZoneAi extends SpellAbilityAi { } } + if (ComputerUtil.waitForBlocking(sa)) { + return false; + } + final AbilitySub subAb = sa.getSubAbility(); return subAb == null || SpellApiToAi.Converter.get(subAb.getApi()).chkDrawbackWithSubs(ai, subAb); } diff --git a/forge-ai/src/main/java/forge/ai/ability/DiscardAi.java b/forge-ai/src/main/java/forge/ai/ability/DiscardAi.java index ab4b43f25e1..25a388cfd42 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DiscardAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DiscardAi.java @@ -99,7 +99,7 @@ public class DiscardAi extends SpellAbilityAi { } // Don't tap creatures that may be able to block - if (ComputerUtil.waitForBlocking(sa) && !sa.hasParam("ActivationPhases")) { + if (ComputerUtil.waitForBlocking(sa)) { return false; } diff --git a/forge-ai/src/main/java/forge/ai/ability/DrawAi.java b/forge-ai/src/main/java/forge/ai/ability/DrawAi.java index 5288f72ca75..d8675d6148f 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DrawAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DrawAi.java @@ -121,7 +121,7 @@ public class DrawAi extends SpellAbilityAi { } // Don't tap creatures that may be able to block - if (ComputerUtil.waitForBlocking(sa) && !sa.hasParam("ActivationPhases")) { + if (ComputerUtil.waitForBlocking(sa)) { return false; }