package magic.model.action; import magic.model.MagicGame; import magic.model.MagicPlayer; import magic.model.choice.MagicBuilderManaCost; public class PayDelayedCostsAction extends MagicAction { private final MagicPlayer player; private MagicBuilderManaCost oldBuilderCost; public PayDelayedCostsAction(final MagicPlayer aPlayer) { player = aPlayer; } /** * The actual mana activations are never done for speed reasons. * This can have side effects in decision making (e.g. pain mana). */ @Override public void doAction(final MagicGame game) { oldBuilderCost = player.getBuilderCost(); player.setBuilderCost(MagicBuilderManaCost.ZERO_COST); } @Override public void undoAction(final MagicGame game) { player.setBuilderCost(oldBuilderCost); } }