From 1c120c5f41610846f029801df72789b4c90e667f Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 15 Feb 2013 00:25:01 +0100 Subject: [PATCH] Added missing target handling of TargetDefender to ComputerPlayer. --- .../java/mage/player/ai/ComputerPlayer.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index 64418e03f7c..34cc9af28d2 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -542,6 +542,28 @@ public class ComputerPlayer> extends PlayerImpl i //if (!target.isRequired()) return false; } + if (target instanceof TargetDefender) { + // TODO: Improve, now planeswalker is always chosen if it exits + List targets ; + targets = game.getBattlefield().getActivePermanents(new FilterPlaneswalkerPermanent(), opponentId, game); + if (targets != null && !targets.isEmpty()) { + for (Permanent planeswalker: targets) { + if (target.canTarget(planeswalker.getId(), source, game)) { + target.addTarget(planeswalker.getId(), source, game); + } + if (target.isChosen()) { + return true; + } + } + } + if (!target.isChosen()) { + if (target.canTarget(opponentId, source, game)) { + target.addTarget(opponentId, source, game); + } + } + return target.isChosen(); + } + throw new IllegalStateException("Target wasn't handled. class:" + target.getClass().toString()); }