diff --git a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java index 8a20215b795..fd03094ea76 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PumpAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/PumpAi.java @@ -3,6 +3,7 @@ package forge.ai.ability; import java.util.Arrays; import java.util.List; +import com.google.common.base.Predicates; import org.apache.commons.lang3.StringUtils; import com.google.common.base.Predicate; @@ -461,6 +462,22 @@ public class PumpAi extends PumpAiBase { } } + // Detain and similar effects: don't target noncreature permanents that don't have + // any activated abilities. + if ("HIDDEN CARDNAME can't attack or block. & HIDDEN CARDNAME's activated abilities can't be activated.".equals(sa.getParam("KW"))) { + list = CardLists.filter(list, Predicates.or(CardPredicates.Presets.CREATURES, new Predicate() { + @Override + public boolean apply(Card card) { + for (SpellAbility sa: card.getSpellAbilities()) { + if (sa.isAbility()) { + return true; + } + } + return false; + } + })); + } + if (list.isEmpty()) { if (ComputerUtil.activateForCost(sa, ai)) { return pumpMandatoryTarget(ai, sa);