diff --git a/forge-ai/src/main/java/forge/ai/ability/DestroyAi.java b/forge-ai/src/main/java/forge/ai/ability/DestroyAi.java index 466d7d09b25..5fa906f1581 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DestroyAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DestroyAi.java @@ -98,6 +98,9 @@ public class DestroyAi extends SpellAbilityAi { } } } + if (c.hasSVar("SacMe")) { + return false; + } //Check for undying return (!c.hasKeyword("Undying") || c.getCounters(CounterType.P1P1) > 0); } @@ -116,7 +119,7 @@ public class DestroyAi extends SpellAbilityAi { }); } - if (list.size() == 0) { + if (list.isEmpty()) { return false; } // target loop diff --git a/forge-ai/src/main/java/forge/ai/ability/SacrificeAi.java b/forge-ai/src/main/java/forge/ai/ability/SacrificeAi.java index d6bd1b82ce8..fb36b2b766d 100644 --- a/forge-ai/src/main/java/forge/ai/ability/SacrificeAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/SacrificeAi.java @@ -67,6 +67,11 @@ public class SacrificeAi extends SpellAbilityAi { List list = CardLists.getValidCards(ai.getOpponent().getCardsIn(ZoneType.Battlefield), valid.split(","), sa.getActivatingPlayer(), sa.getHostCard()); + for (Card c : list) { + if (c.hasSVar("SacMe") && Integer.parseInt(c.getSVar("SacMe")) > 3) { + return false; + } + } if (!destroy) { list = CardLists.filter(list, CardPredicates.canBeSacrificedBy(sa)); } else { @@ -76,7 +81,7 @@ public class SacrificeAi extends SpellAbilityAi { } } - if (list.size() == 0) { + if (list.isEmpty()) { return false; }