From bbfa486cd7b427833b948b806886a4a19df86227 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 15 Jul 2017 04:29:27 +0000 Subject: [PATCH] - TargetRestrictions: correctly process validTgts definitions such as Zombie.attacking for the purpose of canTgtCreature. Fixes, for instance, the AI using Accursed Horde to give indestructible to opponent's attacking zombies. --- .../java/forge/game/spellability/TargetRestrictions.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java b/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java index f0d0e791760..93e7c9ef674 100644 --- a/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java +++ b/forge-game/src/main/java/forge/game/spellability/TargetRestrictions.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; +import forge.util.TextUtil; import org.apache.commons.lang3.StringUtils; import com.google.common.collect.Lists; @@ -413,10 +414,16 @@ public class TargetRestrictions { */ public final boolean canTgtCreature() { for (final String s : this.validTgts) { - if ((s.contains("Creature") || CardType.isACreatureType(s) || s.startsWith("Permanent")) + if ((s.contains("Creature") || s.startsWith("Permanent")) && !s.contains("nonCreature")) { return true; } + String[] tgtParams = TextUtil.split(s, '.'); + for (String param : tgtParams) { + if (CardType.isACreatureType(param)) { + return true; + } + } } return false; }