module.exports = { begin(creep){}, tick(creep){ const source = Game.getObjectById(creep.memory.job.source); if(!creep.pos.isNearTo(source)) { creep.moveTo(source); return; } if(creep.memory.aboveContainer) { creep.harvest(source); return; } if(creep.memory.container) { moveToContainer(creep); return; } if(!(Game.time%100)) scanForContainer(creep, source); creep.harvest(source); } } function moveToContainer(creep){ const container = Game.getObjectById(creep.memory.container); if(container.pos.x === creep.pos.x && container.pos.y === creep.pos.y) creep.memory.aboveContainer = true; else creep.moveTo(container); } function scanForContainer(creep, source){ const container = source.pos.findInRange(FIND_STRUCTURES, 1, { filter:{structureType:STRUCTURE_CONTAINER} })[0]; if(container) creep.memory.container = container.id; }