screeps/role.builder.js

33 lines
901 B
JavaScript

var BreakException= {};
var roleBuilder = {
run: function(creep){
if(creep.memory.building && creep.carry.energy == 0){
creep.memory.building = false;
}
if (!creep.memory.building && creep.carry.energy == creep.carryCapacity){
creep.memory.building = true;
}
if (creep.memory.building){
var targets = creep.room.find(FIND_CONSTRUCTION_SITES);
var transferErrorCode = creep.build(targets[0]);
if(transferErrorCode == ERR_NOT_IN_RANGE) {
creep.moveTo(targets[0]);
}
} else {
var source = creep.pos.findClosestByPath(FIND_SOURCES);
if(creep.harvest(source) == ERR_NOT_IN_RANGE) {
console.log('\tmoving to', source);
creep.moveTo(source);
}
}
}
};
module.exports = roleBuilder;