From 4f20eb8a1a361da3e209e53d1f157668bead8c30 Mon Sep 17 00:00:00 2001 From: excessum Date: Sun, 14 Sep 2014 13:00:22 +0000 Subject: [PATCH] - AI should not regenerate creatures affected by burn spells with "can't be regenerated" --- forge-ai/src/main/java/forge/ai/ComputerUtil.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 40d1edbbef2..a9875b02a83 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -1355,6 +1355,17 @@ public class ComputerUtil { // If PredictDamage is >= Lethal Damage final int dmg = AbilityUtils.calculateAmount(topStack.getHostCard(), topStack.getParam("NumDmg"), topStack); + final SpellAbility sub = topStack.getSubAbility(); + boolean noRegen = false; + if (sub.getApi() == ApiType.Pump) { + final List keywords = sub.hasParam("KW") ? Arrays.asList(sub.getParam("KW").split(" & ")) : new ArrayList(); + for (String kw : keywords) { + if (kw.contains("can't be regenerated")) { + noRegen = true; + break; + } + } + } for (final Object o : objects) { if (o instanceof Card) { final Card c = (Card) o; @@ -1370,7 +1381,8 @@ public class ComputerUtil { } // don't use it on creatures that can't be regenerated - if ((saviourApi == ApiType.Regenerate || saviourApi == ApiType.RegenerateAll) && !c.canBeShielded()) { + if ((saviourApi == ApiType.Regenerate || saviourApi == ApiType.RegenerateAll) && + (!c.canBeShielded() || noRegen)) { continue; }