Sorry for the messy code, i keep adding to it to try to make it work but can't get any of my creeps to consistantly interact with storage or containers... have max energy in all locations... creeps say "bye" but never move towards or put energy in storage.
thanks
var roleHarvester = {
/** @param {Creep} creep **/
run: function(creep) {
if(creep.carry.energy < creep.carryCapacity) {
var sources = creep.room.find(FIND_SOURCES);
if(creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {
if(creep.carry.energy>0){
var targets = creep.room.find(FIND_STRUCTURES, {
filter: (structure) => {
return (structure.structureType == STRUCTURE_EXTENSION || structure.structureType == STRUCTURE_SPAWN || structure.structureType == STRUCTURE_CONTAINER || structure.structureType == STRUCTURE_TOWER||structure.structureType ==STRUCTURE_STORAGE ) &&
structure.energy < structure.energyCapacity;
}
});
if(targets.length > 0) {
if(creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
creep.moveTo(targets[0]);
}
}
}
else
{
creep.moveTo(sources[0]);
}
}
}
else {
//creep.say('hi')
var targets = creep.room.find(FIND_STRUCTURES, {
filter: (structure) => {
return (structure.structureType == STRUCTURE_EXTENSION || structure.structureType == STRUCTURE_SPAWN || structure.structureType == STRUCTURE_CONTAINER || structure.structureType == STRUCTURE_TOWER || structure.structureType==STRUCTURE_STORAGE) &&
structure.energy < structure.energyCapacity;
}
});
if(targets.length > 0) {
if(creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
creep.moveTo(targets[0]);
}
}else
{
creep.say('bye');
var targets = Game.getObjectById('583cfbe2a4a358bb5cadb920');
creep.moveTo(targets);
if(targets.energy<targets.energyCapacity) {
if(creep.transfer(targets, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE)
{
creep.moveTo(targets);
}else{
targets = Game.getObjectById('584062d3de55a3805b70708d');
if(targets.energy<targets.energyCapacity) {
if(creep.transfer(targets[0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE)
{
creep.moveTo(targets[0]);
}
}
}
}
}
}
}
};
module.exports = roleHarvester;