- Fixed the AI targeting nonland permanents with no activated abilities with effects like Detain.

This commit is contained in:
Agetian
2017-07-28 04:19:06 +00:00
parent 65357e1441
commit 398ae8946c

View File

@@ -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<Card>() {
@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);