diff --git a/forge-ai/src/main/java/forge/ai/ability/PumpAiBase.java b/forge-ai/src/main/java/forge/ai/ability/PumpAiBase.java index 96be4d067c9..82449e065fe 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PumpAiBase.java +++ b/forge-ai/src/main/java/forge/ai/ability/PumpAiBase.java @@ -88,7 +88,11 @@ public abstract class PumpAiBase extends SpellAbilityAi { List attackers = CardLists.filter(ai.getCardsIn(ZoneType.Battlefield), new Predicate() { @Override public boolean apply(final Card c) { - return (c.isCreature() && CombatUtil.canAttack(c, human)); + if (c.equals(sa.getHostCard()) && sa.getPayCosts() != null && sa.getPayCosts().hasTapCost() + && !combat.isAttacking(c)) { + return false; + } + return (c.isCreature() && CombatUtil.canAttack(c, human) || combat.isAttacking(c)); } }); if (!CombatUtil.canBlockAtLeastOne(card, attackers)) { @@ -104,7 +108,11 @@ public abstract class PumpAiBase extends SpellAbilityAi { List attackers = CardLists.filter(ai.getCardsIn(ZoneType.Battlefield), new Predicate() { @Override public boolean apply(final Card c) { - return (c.isCreature() && CombatUtil.canAttack(c, human)); + if (c.equals(sa.getHostCard()) && sa.getPayCosts() != null && sa.getPayCosts().hasTapCost() + && !combat.isAttacking(c)) { + return false; + } + return (c.isCreature() && CombatUtil.canAttack(c, human) || combat.isAttacking(c)); } }); if (!CombatUtil.canBlockAtLeastOne(card, attackers)) {