TsarBot/role/builder.js

33 lines
917 B
JavaScript

var energyUtils = require('../utils/energy');
var roleBase = require('base');
class roleBuilder extends roleBase{
/** @param {Creep} creep **/
constructor(){
super()
this.name = 'Builder';
}
run(creep) {
if(creep.memory.building && creep.store[RESOURCE_ENERGY] == 0) {
creep.memory.building = false;
}
if(!creep.memory.building && creep.store.getFreeCapacity() == 0) {
creep.memory.building = true;
}
if(creep.memory.building) {
var targets = creep.room.find(FIND_CONSTRUCTION_SITES);
if(targets.length) {
if(creep.build(targets[0]) == ERR_NOT_IN_RANGE) {
creep.moveTo(targets[0], {visualizePathStyle: {stroke: '#ffffff'}});
}
}
}
else {
energyUtils.gatherEnergy(creep);
}
}
};
module.exports = roleBuilder;