From 1f99249d10a5c96aa138b1bafbbd5196b04cd6b1 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Tue, 14 Jan 2020 05:00:56 +0400 Subject: [PATCH] * AI: fixed rollback error while computer try to play some cards with targets from exile; --- .../main/java/mage/player/ai/ComputerPlayer.java | 16 ++++++++++++++++ 1 file changed, 16 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 bee7421c941..d357bc6636c 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 @@ -425,6 +425,22 @@ public class ComputerPlayer extends PlayerImpl implements Player { return false; } + if (target.getOriginalTarget() instanceof TargetCardInExile) { + List alreadyTargeted = target.getTargets(); + TargetCard originalTarget = (TargetCard) target.getOriginalTarget(); + List cards = game.getExile().getCards(originalTarget.getFilter(), game); + while (!cards.isEmpty()) { + Card card = pickTarget(abilityControllerId, cards, outcome, target, null, game); + if (card != null && alreadyTargeted != null && !alreadyTargeted.contains(card.getId())) { + target.add(card.getId(), game); + if (target.isChosen()) { + return true; + } + } + } + return false; + } + if (target.getOriginalTarget() instanceof TargetSource) { Set targets; targets = target.possibleTargets(sourceId, abilityControllerId, game);