This commit is contained in:
maurer.it 2011-03-05 21:35:00 -05:00
commit 194a454f86
2 changed files with 9 additions and 6 deletions

View file

@ -287,9 +287,12 @@ public class ComputerPlayer<T extends ComputerPlayer<T>> extends PlayerImpl<T> i
targets = threats(opponentId, ((FilterCreatureOrPlayer)t.getFilter()).getCreatureFilter(), game); targets = threats(opponentId, ((FilterCreatureOrPlayer)t.getFilter()).getCreatureFilter(), game);
} }
for (Permanent permanent: targets) { for (Permanent permanent: targets) {
List<UUID> alreadyTargetted = target.getTargets();
if (t.canTarget(playerId, permanent.getId(), source, game)) { if (t.canTarget(playerId, permanent.getId(), source, game)) {
target.addTarget(permanent.getId(), source, game); if ( alreadyTargetted != null && !alreadyTargetted.contains(permanent.getId()) ) {
return true; target.addTarget(permanent.getId(), source, game);
return true;
}
} }
} }
if (outcome.isGood()) { if (outcome.isGood()) {

View file

@ -37,12 +37,12 @@ import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.ReplacementEffectImpl; import mage.abilities.effects.ReplacementEffectImpl;
import mage.cards.Card;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.game.Game; import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType; import mage.game.events.GameEvent.EventType;
import mage.game.events.ZoneChangeEvent; import mage.game.events.ZoneChangeEvent;
import mage.game.permanent.Permanent;
/** /**
* *
@ -98,9 +98,9 @@ class NissasChosenEffect extends ReplacementEffectImpl<NissasChosenEffect> {
@Override @Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) { public boolean replaceEvent(GameEvent event, Ability source, Game game) {
Permanent permanent = game.getPermanent(event.getTargetId()); Card card = game.getCard(event.getTargetId());
if ( permanent != null && event.getTargetId().equals(source.getSourceId()) ) { if ( card != null && event.getTargetId().equals(source.getSourceId()) ) {
return permanent.moveToZone(Zone.LIBRARY, source.getId(), game, onTop); return card.moveToZone(Zone.LIBRARY, source.getId(), game, onTop);
} }
return false; return false;
} }