package magic.model.action; import magic.model.MagicCard; import magic.model.MagicGame; import magic.model.MagicPlayer; public class ScryComplAction extends MagicAction { private final MagicPlayer player; private final MagicCard card; private int index; private final boolean down; public ScryComplAction(final MagicPlayer aPlayer, final MagicCard aCard, final boolean aDown) { player = aPlayer; card = aCard; down = aDown; } @Override public void doAction(final MagicGame game) { index = player.getLibrary().indexOf(card); if (index < 0) { throw new RuntimeException(card + " not in " + player + "'s library"); } player.getLibrary().removeCard(card); if (down) { player.getLibrary().addToBottom(card); } else { player.getLibrary().addToTop(card); } } @Override public void undoAction(final MagicGame game) { if (down) { player.getLibrary().removeCardAtBottom(); } else { player.getLibrary().removeCardAtTop(); } player.getLibrary().add(index, card); } }