/* eslint-disable no-undef */ /* eslint-disable camelcase */ const path = require("path"); function harvester_job(creep) { if (creep.carry.energy < creep.carryCapacity) { const { working_target_id } = creep; const working_target = Game.getObjectById(working_target_id); if (creep.harvest(working_target) === ERR_NOT_IN_RANGE) { creep.moveTo(working_target); path.visualPath(creep.pos, working_target.pos); } } else if ( creep.transfer(Game.spawns.Spawn1, RESOURCE_ENERGY) === ERR_NOT_IN_RANGE ) { creep.moveTo(Game.spawns.Spawn1); path.visualPath(creep.pos, Game.spawns.Spawn1.pos); } } function picker_job(creep) { if (Game.spawns.Spawn1.store.getFreeCapacity(RESOURCE_ENERGY) === 0) { creep.say("SB"); return; } const { working_target_id } = creep; if (!working_target_id) { creep.say("SB"); } const working_target = Game.getObjectById(working_target_id); const Re_code = creep.harvest(working_target); if (Re_code === ERR_NOT_IN_RANGE) { creep.moveTo(working_target); } else if (OK === Re_code) { creep.harvest(working_target); creep.drop(RESOURCE_ENERGY); } } function change_status() { if ( _(Game.creeps) .filter({ memory: { role: "transfer" } }) .size() > 0 ) { return "picker"; } return "harvester"; } module.exports = { run(creep) { const status = change_status(); switch (status) { case "harvester": creep.say("hv"); harvester_job(creep); break; case "picker": creep.say("pc"); picker_job(creep); break; default: break; } }, };