diff --git a/forge-ai/src/main/java/forge/ai/ability/DamageDealAi.java b/forge-ai/src/main/java/forge/ai/ability/DamageDealAi.java index 9e0b2bf2b21..f59492e8ad3 100644 --- a/forge-ai/src/main/java/forge/ai/ability/DamageDealAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/DamageDealAi.java @@ -11,6 +11,7 @@ import forge.game.card.Card; import forge.game.card.CardCollection; import forge.game.card.CardLists; import forge.game.card.CardPredicates; +import forge.game.card.CounterType; import forge.game.cost.Cost; import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseType; @@ -70,6 +71,21 @@ public class DamageDealAi extends DamageAiBase { List wolves = CardLists.getValidCards(ai.getCardsIn(ZoneType.Battlefield), "Creature.Wolf+untapped+YouCtrl+Other", ai, source); dmg = Aggregates.sum(wolves, CardPredicates.Accessors.fnGetNetPower); } + + if (source.getName().equals("Sorin, Grim Nemesis")) { + int loyalty = source.getCounters(CounterType.LOYALTY); + for (; loyalty > 0; loyalty--) { + if (this.damageTargetAI(ai, sa, loyalty, false)) { + dmg = ComputerUtilCombat.getEnoughDamageToKill(sa.getTargetCard(), loyalty, source, false, false); + if (dmg > loyalty) { + continue; // in case the calculation gets messed up somewhere + } + source.setSVar("ChosenX", "Number$" + dmg); + return true; + } + } + return false; + } if (dmg <= 0) { return false;