public void payForBuilding(Colony colony) {
        if (!requireOurTurn()) return;

        if (!colony.canPayToFinishBuilding()) {
            gui.errorMessage("notEnoughGold");
            return;
        }
        int price = colony.getPriceForBuilding();
        if (!gui.showConfirmDialog(null,
                StringTemplate.template("payForBuilding.text")
                .addAmount("%amount%", price),
                "payForBuilding.yes", "payForBuilding.no")) {
            return;
        }

        ColonyWas colonyWas = new ColonyWas(colony);
        if (askServer().payForBuilding(colony)
            && colony.getPriceForBuilding() == 0) {
            colonyWas.fireChanges();
            gui.updateMenuBar();
        }
    }