package magic.model.action;
import magic.model.MagicGame;
import magic.model.MagicPayedCost;
import magic.model.MagicPlayer;
import magic.model.event.MagicActivationPriority;
import magic.model.phase.MagicPhase;
import magic.model.phase.MagicStep;
public class MarkerAction extends MagicAction {
private MagicPlayer oldTurnPlayer;
private MagicPhase oldPhase;
private MagicStep oldStep;
private int oldTurn;
private int oldMainPhaseCount;
private int oldScore;
private int oldLandsPlayed;
private boolean oldCreatureDiedThisTurn;
private boolean oldPriorityPassed;
private int oldPriorityPassedCount;
private boolean oldStateCheckRequired;
private MagicPayedCost oldPayedCost;
private int oldSpellsCast1;
private int oldSpellsCast2;
private int oldNonCreatureSpellsCast1;
private int oldNonCreatureSpellsCast2;
private int oldSpellsCastLastTurn1;
private int oldSpellsCastLastTurn2;
private MagicActivationPriority oldActivationPriority1;
private MagicActivationPriority oldActivationPriority2;
@Override
public void doAction(final MagicGame game) {
oldTurnPlayer=game.getTurnPlayer();
oldPhase=game.getPhase();
oldStep=game.getStep();
oldTurn=game.getTurn();
oldMainPhaseCount=game.getMainPhaseCount();
oldScore=game.getScore();
oldLandsPlayed=game.getLandsPlayed();
oldCreatureDiedThisTurn = game.getCreatureDiedThisTurn();
oldPriorityPassed=game.getPriorityPassed();
oldPriorityPassedCount=game.getPriorityPassedCount();
oldStateCheckRequired=game.getStateCheckRequired();
oldPayedCost=game.getPayedCost();
final MagicPlayer player1=game.getPlayer(0);
oldActivationPriority1=player1.getActivationPriority();
player1.setActivationPriority(new MagicActivationPriority(oldActivationPriority1));
oldSpellsCast1=player1.getSpellsCast();
oldNonCreatureSpellsCast1=player1.getNonCreatureSpellsCast();
oldSpellsCastLastTurn1=player1.getSpellsCastLastTurn();
final MagicPlayer player2=game.getPlayer(1);
oldActivationPriority2=player2.getActivationPriority();
player2.setActivationPriority(new MagicActivationPriority(oldActivationPriority2));
oldSpellsCast2=player2.getSpellsCast();
oldNonCreatureSpellsCast2=player2.getNonCreatureSpellsCast();
oldSpellsCastLastTurn2=player2.getSpellsCastLastTurn();
}
@Override
public void undoAction(final MagicGame game) {
game.setTurnPlayer(oldTurnPlayer);
game.setPhase(oldPhase);
game.setStep(oldStep);
game.setTurn(oldTurn);
game.setMainPhaseCount(oldMainPhaseCount);
game.setScore(oldScore);
game.setLandsPlayed(oldLandsPlayed);
game.setCreatureDiedThisTurn(oldCreatureDiedThisTurn);
game.setPriorityPassed(oldPriorityPassed);
game.setPriorityPassedCount(oldPriorityPassedCount);
game.setStateCheckRequired(oldStateCheckRequired);
game.setPayedCost(oldPayedCost);
final MagicPlayer player1=game.getPlayer(0);
player1.setActivationPriority(oldActivationPriority1);
player1.setSpellsCast(oldSpellsCast1);
player1.setNonCreatureSpellsCast(oldNonCreatureSpellsCast1);
player1.setSpellsCastLastTurn(oldSpellsCastLastTurn1);
final MagicPlayer player2=game.getPlayer(1);
player2.setActivationPriority(oldActivationPriority2);
player2.setSpellsCast(oldSpellsCast2);
player2.setNonCreatureSpellsCast(oldNonCreatureSpellsCast2);
player2.setSpellsCastLastTurn(oldSpellsCastLastTurn2);
game.update();
}
}