0ad/binaries/data/mods/public/simulation/ai/qbot/housing.js

30 lines
1013 B
JavaScript

// Decides when to a new house needs to be built
var HousingManager = function() {
};
HousingManager.prototype.buildMoreHouses = function(gameState, queues) {
// temporary 'remaining population space' based check, need to do
// predictive in future
if (gameState.getPopulationLimit() - gameState.getPopulation() < 20
&& gameState.getPopulationLimit() < gameState.getPopulationMax()) {
var numConstructing = gameState.countEntitiesByType(gameState.applyCiv("foundation|structures/{civ}_house"));
var numPlanned = queues.house.totalLength();
var additional = Math.ceil((20 - (gameState.getPopulationLimit() - gameState.getPopulation())) / 10)
- numConstructing - numPlanned;
for ( var i = 0; i < additional; i++) {
queues.house.addItem(new BuildingConstructionPlan(gameState, "structures/{civ}_house"));
}
}
};
HousingManager.prototype.update = function(gameState, queues) {
Engine.ProfileStart("housing update");
this.buildMoreHouses(gameState, queues);
Engine.ProfileStop();
};