From d46b4a72489c1066af3afae678b27ef07d605668 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 18 Aug 2014 23:52:35 +0200 Subject: [PATCH] Fixed a bug of computer player handling TargetCreatureOrPlayerAmount. --- .../main/java/mage/player/ai/ComputerPlayer.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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 fb4a36620ef..99da072ad6e 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 @@ -692,7 +692,7 @@ public class ComputerPlayer extends PlayerImpl implements Player { } UUID opponentId = game.getOpponents(playerId).iterator().next(); if (target instanceof TargetCreatureOrPlayerAmount) { - if (game.getPlayer(opponentId).getLife() <= target.getAmountRemaining()) { + if (outcome.equals(Outcome.Damage) && game.getPlayer(opponentId).getLife() <= target.getAmountRemaining()) { target.addTarget(opponentId, target.getAmountRemaining(), source, game); return true; } @@ -711,6 +711,17 @@ public class ComputerPlayer extends PlayerImpl implements Player { } } } + if (outcome.isGood() && target.canTarget(playerId, playerId, source, game)) { + target.addTarget(opponentId, target.getAmountRemaining(), source, game); + return true; + } else if (target.canTarget(playerId, opponentId, source, game)){ + // no permanent target so take opponent + target.addTarget(opponentId, target.getAmountRemaining(), source, game); + return true; + } else if (target.canTarget(playerId, playerId, source, game)) { + target.addTarget(opponentId, target.getAmountRemaining(), source, game); + return true; + } } return false; }