2020-10-26 16:15:52 +08:00
|
|
|
/* eslint-disable no-undef */
|
|
|
|
|
/* eslint-disable camelcase */
|
|
|
|
|
const path = require("path");
|
2020-10-24 15:24:24 +08:00
|
|
|
|
|
|
|
|
function harvester_job(creep) {
|
2020-10-26 16:45:02 +08:00
|
|
|
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);
|
2020-10-24 15:24:24 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function picker_job(creep) {
|
2020-10-26 16:45:02 +08:00
|
|
|
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);
|
|
|
|
|
}
|
2020-10-24 15:24:24 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function change_status() {
|
2020-10-26 16:45:02 +08:00
|
|
|
if (
|
|
|
|
|
_(Game.creeps)
|
|
|
|
|
.filter({ memory: { role: "transfer" } })
|
|
|
|
|
.size() > 0
|
|
|
|
|
) {
|
|
|
|
|
return "picker";
|
|
|
|
|
}
|
|
|
|
|
return "harvester";
|
2020-10-26 16:15:52 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = {
|
2020-10-26 16:45:02 +08:00
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
},
|
2020-10-26 16:15:52 +08:00
|
|
|
};
|