2016-06-28 20:31:39 +00:00
|
|
|
var roleHarvester = {
|
|
|
|
|
|
|
|
/** @param {Creep} creep **/
|
|
|
|
run: function(creep) {
|
2016-06-28 23:38:52 +00:00
|
|
|
console.log(creep, "running Harvest");
|
2016-06-28 20:31:39 +00:00
|
|
|
if(creep.carry.energy < creep.carryCapacity) {
|
2016-06-29 01:28:33 +00:00
|
|
|
var source = creep.pos.findClosestByPath(FIND_SOURCES);
|
|
|
|
if(creep.harvest(source) == ERR_NOT_IN_RANGE) {
|
|
|
|
console.log("\tmoving to", source);
|
|
|
|
creep.moveTo(source);
|
2016-06-28 20:31:39 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
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) {
|
2016-06-28 23:38:52 +00:00
|
|
|
console.log("\tmoving to", targets[0]);
|
2016-06-28 20:31:39 +00:00
|
|
|
creep.moveTo(targets[0]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = roleHarvester;
|