Add FixedTarget support back to ExileTargetForSourceEffect and ReturnToHandTargetEffect

This commit is contained in:
LoneFox 2016-01-07 10:34:36 +02:00
parent 160b4377ae
commit a54c791976
2 changed files with 28 additions and 6 deletions

View file

@ -40,6 +40,7 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.Target;
import mage.target.targetpointer.FirstTargetPointer;
import mage.util.CardUtil;
/**
@ -67,6 +68,7 @@ public class ExileTargetForSourceEffect extends OneShotEffect {
MageObject sourceObject = source.getSourceObject(game);
if (controller != null && sourceObject != null) {
Set<Card> cards = new LinkedHashSet<>();
if (source.getTargets().size() > 1 && targetPointer instanceof FirstTargetPointer) {
for (Target target : source.getTargets()) {
for (UUID targetId : target.getTargets()) {
MageObject mageObject = game.getObject(targetId);
@ -75,6 +77,15 @@ public class ExileTargetForSourceEffect extends OneShotEffect {
}
}
}
}
else {
for (UUID targetId : targetPointer.getTargets(game, source)) {
MageObject mageObject = game.getObject(targetId);
if (mageObject != null) {
cards.add((Card) mageObject);
}
}
}
UUID exileId = CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter());
return controller.moveCardsToExile(cards, source, game, true, exileId, sourceObject.getIdName());
}

View file

@ -40,6 +40,7 @@ import mage.constants.Zone;
import mage.game.Game;
import mage.players.Player;
import mage.target.Target;
import mage.target.targetpointer.FirstTargetPointer;
import mage.util.CardUtil;
/**
@ -75,6 +76,7 @@ public class ReturnToHandTargetEffect extends OneShotEffect {
return false;
}
Set<Card> cards = new LinkedHashSet<>();
if (source.getTargets().size() > 1 && targetPointer instanceof FirstTargetPointer) {
for (Target target : source.getTargets()) {
for (UUID targetId : target.getTargets()) {
MageObject mageObject = game.getObject(targetId);
@ -83,6 +85,15 @@ public class ReturnToHandTargetEffect extends OneShotEffect {
}
}
}
}
else {
for (UUID targetId : targetPointer.getTargets(game, source)) {
MageObject mageObject = game.getObject(targetId);
if (mageObject != null) {
cards.add((Card) mageObject);
}
}
}
return controller.moveCards(cards, Zone.HAND, source, game);
}