From bb48bd22a35e7187bb3a86cda5b3348dddf66a72 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sun, 15 Oct 2017 14:05:43 +0000 Subject: [PATCH] - Slight further improvement to PlayAi for Hideaway (might also consider improving for untargeted sorceries or sorceries with available legal targets, but that's iffy). --- forge-ai/src/main/java/forge/ai/ability/PlayAi.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/PlayAi.java b/forge-ai/src/main/java/forge/ai/ability/PlayAi.java index d3d5a4c761b..ef020ecbff1 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PlayAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PlayAi.java @@ -3,6 +3,7 @@ package forge.ai.ability; import com.google.common.base.Predicate; import forge.ai.*; import forge.card.CardStateName; +import forge.card.CardTypeView; import forge.game.Game; import forge.game.ability.AbilityUtils; import forge.game.card.Card; @@ -54,7 +55,17 @@ public class PlayAi extends SpellAbilityAi { if ("ReplaySpell".equals(logic)) { return ComputerUtil.targetPlayableSpellCard(ai, cards, sa, sa.hasParam("WithoutManaCost")); } - + + if (source != null && source.hasKeyword("Hideaway") && source.hasRemembered()) { + // AI is not very good at playing non-permanent spells this way, at least yet + // (might be possible to enable it for Sorceries in Main1/Main2 if target is available, + // but definitely not for most Instants) + Card rem = (Card) source.getFirstRemembered(); + CardTypeView t = rem.getState(CardStateName.Original).getType(); + + return t.isPermanent() && !t.isLand(); + } + return true; }