if (settlement.canBuild(currentProduction)) {
if (currentProduction instanceof SettlementImprovementType) {
Executor.getInstance().execute(new AddSettlementImprovementCommand(settlement, (SettlementImprovementType) currentProduction));
settlement.removeFromProductionQueue(0);
StringBuffer messageText = new StringBuffer("City of " + settlement.getName() + " has completed " + currentProduction);
SettlementImprovementCompletedMessage message = new SettlementImprovementCompletedMessage();
message.setSubject("Building complete");
message.setText(messageText);
message.setTurnSent(realm.getNumberOfTurns());
message.setSettlement(settlement);
message.setSettlementImprovementType((SettlementImprovementType) currentProduction);
message.setNextProduction(settlement.getCurrentProduction());
settlement.getPlayer().addMessage(message);
} else if (currentProduction instanceof UnitType) {
if (((UnitType) currentProduction).getAbility("BuildCity") != null) {
int cityFoundingPopulation = Integer.parseInt(realm.getProperty("city_founding_population"));
if (settlement.getPopulation() < cityFoundingPopulation) {
StringBuffer messageText = new StringBuffer("Not enough population for unit");
DefaultMessage message = new DefaultMessage();
message.setText(messageText);
message.setTurnSent(realm.getNumberOfTurns());
settlement.getPlayer().addMessage(message);
return;
}
settlement.setPopulation(settlement.getPopulation() - cityFoundingPopulation);
}