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 4f86502e5d..5326ac6958 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 @@ -287,9 +287,12 @@ public class ComputerPlayer> extends PlayerImpl i targets = threats(opponentId, ((FilterCreatureOrPlayer)t.getFilter()).getCreatureFilter(), game); } for (Permanent permanent: targets) { + List alreadyTargetted = target.getTargets(); if (t.canTarget(playerId, permanent.getId(), source, game)) { - target.addTarget(permanent.getId(), source, game); - return true; + if ( alreadyTargetted != null && !alreadyTargetted.contains(permanent.getId()) ) { + target.addTarget(permanent.getId(), source, game); + return true; + } } } if (outcome.isGood()) { diff --git a/Mage.Sets/src/mage/sets/zendikar/NissasChosen.java b/Mage.Sets/src/mage/sets/zendikar/NissasChosen.java index 160b5d4996..b6f51500cd 100644 --- a/Mage.Sets/src/mage/sets/zendikar/NissasChosen.java +++ b/Mage.Sets/src/mage/sets/zendikar/NissasChosen.java @@ -37,12 +37,12 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; +import mage.cards.Card; import mage.cards.CardImpl; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.events.ZoneChangeEvent; -import mage.game.permanent.Permanent; /** * @@ -98,9 +98,9 @@ class NissasChosenEffect extends ReplacementEffectImpl { @Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { - Permanent permanent = game.getPermanent(event.getTargetId()); - if ( permanent != null && event.getTargetId().equals(source.getSourceId()) ) { - return permanent.moveToZone(Zone.LIBRARY, source.getId(), game, onTop); + Card card = game.getCard(event.getTargetId()); + if ( card != null && event.getTargetId().equals(source.getSourceId()) ) { + return card.moveToZone(Zone.LIBRARY, source.getId(), game, onTop); } return false; }