package magic.model.action;
import java.util.Arrays;
import java.util.List;
import magic.model.MagicCard;
import magic.model.MagicGame;
import magic.model.MagicLocationType;
import magic.model.MagicPlayer;
public class ReturnCardAction extends MagicAction {
private final MagicPlayer controller;
private final MagicCard card;
private final MagicLocationType from;
private final List<? extends MagicPermanentAction> modifications;
public ReturnCardAction(final MagicLocationType aFrom, final MagicCard aCard, final MagicPlayer aController, final List<? extends MagicPermanentAction> aModifications) {
card = aCard;
controller = aController;
from = aFrom;
modifications = aModifications;
}
public ReturnCardAction(final MagicLocationType aFrom, final MagicCard aCard, final MagicPlayer aController, final MagicPermanentAction... aModifications) {
this(aFrom, aCard, aController, Arrays.asList(aModifications));
}
@Override
public void doAction(final MagicGame game) {
if (card.isIn(from) && card.isPermanentCard()) {
game.doAction(new RemoveCardAction(card,from));
game.doAction(new PlayCardAction(card,controller,modifications));
}
}
@Override
public void undoAction(final MagicGame game) {}
}