diff --git a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java index c0eeefb796d..3d0702cfb00 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java @@ -1146,6 +1146,7 @@ public class AttachAi extends SpellAbilityAi { final List keywords = new ArrayList<>(); boolean grantingAbilities = false; boolean grantingExtraBlock = false; + boolean grantingCantUntap = false; for (final StaticAbility stAbility : attachSource.getStaticAbilities()) { final Map stabMap = stAbility.getMapParams(); @@ -1165,6 +1166,7 @@ public class AttachAi extends SpellAbilityAi { grantingAbilities |= stabMap.containsKey("AddAbility"); grantingExtraBlock |= stabMap.containsKey("CanBlockAmount") || stabMap.containsKey("CanBlockAny"); + grantingCantUntap |= stabMap.containsKey("CantUntap"); String kws = stabMap.get("AddKeyword"); if (kws != null) { @@ -1197,6 +1199,7 @@ public class AttachAi extends SpellAbilityAi { if (totToughness + totPower < 4 && (!keywords.isEmpty() || grantingExtraBlock)) { final int pow = totPower; final boolean extraBlock = grantingExtraBlock; + final boolean cantUntap = grantingCantUntap; prefList = CardLists.filter(prefList, new Predicate() { @Override public boolean apply(final Card c) { @@ -1215,6 +1218,9 @@ public class AttachAi extends SpellAbilityAi { if (extraBlock && CombatUtil.canBlock(c, true) && !c.canBlockAny()) { return true; } + if (cantUntap && c.isTapped()) { + return true; + } return false; } });