- 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.

This commit is contained in:
Agetian
2017-07-15 04:29:27 +00:00
parent 6fdf895c01
commit bbfa486cd7

View File

@@ -21,6 +21,7 @@ import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@@ -413,10 +414,16 @@ public class TargetRestrictions {
*/ */
public final boolean canTgtCreature() { public final boolean canTgtCreature() {
for (final String s : this.validTgts) { 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")) { && !s.contains("nonCreature")) {
return true; return true;
} }
String[] tgtParams = TextUtil.split(s, '.');
for (String param : tgtParams) {
if (CardType.isACreatureType(param)) {
return true;
}
}
} }
return false; return false;
} }