From 2d12c8faace1d9682181fb3740ea2b672a971885 Mon Sep 17 00:00:00 2001 From: Sloth Date: Wed, 6 Aug 2014 09:18:47 +0000 Subject: [PATCH] - Fixed AI not using the first ability of Vraska the Unseen. --- forge-ai/src/main/java/forge/ai/SpellAbilityAi.java | 5 +++-- forge-ai/src/main/java/forge/ai/ability/AnimateAi.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/SpellAbilityAi.java b/forge-ai/src/main/java/forge/ai/SpellAbilityAi.java index 016086fdc87..b3d1b2e1ccf 100644 --- a/forge-ai/src/main/java/forge/ai/SpellAbilityAi.java +++ b/forge-ai/src/main/java/forge/ai/SpellAbilityAi.java @@ -87,8 +87,9 @@ public abstract class SpellAbilityAi extends SaTargetRoutines { * @return a boolean. */ protected static boolean isSorcerySpeed(final SpellAbility sa) { - return ( sa.isSpell() && sa.getHostCard().isSorcery() ) - || ( sa.isAbility() && sa.getRestrictions().isSorcerySpeed() ); + return (sa.isSpell() && sa.getHostCard().isSorcery()) + || (sa.isAbility() && sa.getRestrictions().isSorcerySpeed()) + || (sa.getRestrictions().isPwAbility() && !sa.getHostCard().hasKeyword("CARDNAME's loyalty abilities can be activated at instant speed.")); } /** diff --git a/forge-ai/src/main/java/forge/ai/ability/AnimateAi.java b/forge-ai/src/main/java/forge/ai/ability/AnimateAi.java index ce0cf444b1b..a0937a6dc98 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AnimateAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AnimateAi.java @@ -85,7 +85,7 @@ public class AnimateAi extends SpellAbilityAi { } } } - + // don't use instant speed animate abilities outside computers // Combat_Begin step if (!ph.is(PhaseType.COMBAT_BEGIN) @@ -100,7 +100,8 @@ public class AnimateAi extends SpellAbilityAi { if (ph.isPlayerTurn(aiPlayer) && aiPlayer.getLife() < 6 && opponent.getLife() > 6 - && Iterables.any(opponent.getCardsIn(ZoneType.Battlefield), CardPredicates.Presets.CREATURES)) { + && Iterables.any(opponent.getCardsIn(ZoneType.Battlefield), CardPredicates.Presets.CREATURES) + && !sa.hasParam("AILogic")) { return false; }