package magic.model.action;
import magic.model.MagicCard;
import magic.model.MagicCardList;
import magic.model.MagicGame;
import magic.model.MagicLocationType;
import magic.model.MagicPlayer;
public class ReturnExiledAction extends MagicAction {
private MagicCardList oldExiledUEOT;
@Override
public void doAction(final MagicGame game) {
final MagicCardList exiledUEOT = game.getExiledUntilEndOfTurn();
oldExiledUEOT = new MagicCardList(exiledUEOT);
for (final MagicCard card : exiledUEOT) {
if (card.isInExile() && card.isPermanentCard()) {
final MagicPlayer owner = card.getOwner();
game.doAction(new RemoveCardAction(card,MagicLocationType.Exile));
game.doAction(new PlayCardAction(card,owner));
game.logMessage(
owner,
"Return "+card.getName()+" to the battlefield under its owner's control (end of turn)."
);
}
}
exiledUEOT.clear();
}
@Override
public void undoAction(final MagicGame game) {
game.getExiledUntilEndOfTurn().addAll(oldExiledUEOT);
}
}