screeps/role.harvester.js

32 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-06-29 17:21:09 +00:00
var roleHarvester = {
/** @param {Creep} creep **/
run: function(creep) {
console.log(creep, 'running Harvest');
2016-06-29 17:21:09 +00:00
if(creep.carry.energy < creep.carryCapacity) {
var source = creep.pos.findClosestByPath(FIND_SOURCES);
if(creep.harvest(source) == ERR_NOT_IN_RANGE) {
console.log('\tmoving to', source);
2016-06-29 17:21:09 +00:00
creep.moveTo(source);
}
}
else {
var targets = creep.room.find(FIND_STRUCTURES, {
filter: (structure) => {
return (structure.structureType == STRUCTURE_EXTENSION
|| structure.structureType == STRUCTURE_SPAWN
|| structure.structureType == STRUCTURE_TOWER
) && structure.energy < structure.energyCapacity;
}
});
if(targets.length > 0) {
if(creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
console.log('\tmoving to', targets[0]);
2016-06-29 17:21:09 +00:00
creep.moveTo(targets[0]);
}
}
}
}
};
2016-06-28 20:31:39 +00:00
module.exports = roleHarvester;