package magic.model.action; import magic.model.MagicGame; import magic.model.MagicPlayer; import magic.model.MagicPlayerState; public class BecomeMonarchAction extends MagicAction { private final MagicPlayer player; private boolean setPlayer = false; private boolean clearOpponent = false; public BecomeMonarchAction(final MagicPlayer aPlayer) { player = aPlayer; } @Override public void doAction(final MagicGame game) { if (!player.isMonarch()) { if (player.getOpponent().isMonarch()) { player.getOpponent().clearState(MagicPlayerState.Monarch); clearOpponent = true; } player.setState(MagicPlayerState.Monarch); setPlayer = true; } } @Override public void undoAction(final MagicGame game) { if (setPlayer) { player.clearState(MagicPlayerState.Monarch); } if (clearOpponent) { player.getOpponent().setState(MagicPlayerState.Monarch); } } }