Package com.jcloisterzone.event

Source Code of com.jcloisterzone.event.TowerIncreasedEvent

package com.jcloisterzone.event;

import com.jcloisterzone.Player;
import com.jcloisterzone.board.Position;
import com.jcloisterzone.board.Tile;
import com.jcloisterzone.game.Game;
import com.jcloisterzone.game.capability.TowerCapability;

public class TowerIncreasedEvent extends PlayEvent implements Undoable {

    private final int captureRange;
    private final Position position;

    public TowerIncreasedEvent(Player triggeringplayer, Position position, int captureRange) {
        super(triggeringplayer, null);
        this.captureRange = captureRange;
        this.position = position;
    }

    public int getCaptureRange() {
        return captureRange;
    }

    public Position getPosition() {
        return position;
    }

    @Override
    public void undo(Game game) {
        Tile tile = game.getBoard().get(position);
        assert tile.getTower().getHeight() > 0;
        tile.getTower().setHeight(tile.getTower().getHeight() - 1);

        TowerCapability cap = game.getCapability(TowerCapability.class);
        cap.setLastIncreasedTower(null);
        cap.setTowerPieces(getTriggeringPlayer(), cap.getTowerPieces(getTriggeringPlayer()) + 1);
    }
}
TOP

Related Classes of com.jcloisterzone.event.TowerIncreasedEvent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.