package magic.model.action;
import magic.model.MagicGame;
import magic.model.MagicPermanent;
import magic.model.MagicPermanentState;
public class CleanupPermanentAction extends MagicAction {
private final MagicPermanent permanent;
private int oldAbilityPlayedThisTurn;
private int oldDamage;
private int oldPreventDamage;
private int oldStateFlags;
public CleanupPermanentAction(final MagicPermanent aPermanent) {
permanent = aPermanent;
}
@Override
public void doAction(final MagicGame game) {
oldAbilityPlayedThisTurn=permanent.getAbilityPlayedThisTurn();
permanent.setAbilityPlayedThisTurn(0);
oldStateFlags=permanent.getStateFlags();
permanent.setStateFlags(oldStateFlags & MagicPermanentState.CLEANUP_MASK);
oldDamage=permanent.getDamage();
permanent.setDamage(0);
oldPreventDamage=permanent.getPreventDamage();
permanent.setPreventDamage(0);
}
@Override
public void undoAction(final MagicGame game) {
permanent.setAbilityPlayedThisTurn(oldAbilityPlayedThisTurn);
permanent.setDamage(oldDamage);
permanent.setPreventDamage(oldPreventDamage);
permanent.setStateFlags(oldStateFlags);
}
}