screep/transfer.js

35 lines
1.3 KiB
JavaScript
Raw Normal View History

2020-10-18 22:00:22 +08:00
const utils=require('utils')
2020-10-23 20:55:20 +08:00
const path=require('path')
2020-10-18 22:00:22 +08:00
// const harvester = require("./harvester");
module.exports = {
run(creep) {
if (creep.carry.energy < creep.carryCapacity) {
2020-10-23 20:55:20 +08:00
let working_target_id=creep.working_target_id
let working_target=Game.getObjectById(working_target_id)
if(!working_target){
// console.log(`${creep.name} working target vanished. Turn to unassigned.`)
return
}
let working_target_pos=working_target.pos
2020-10-18 22:00:22 +08:00
let my_pos=creep.pos;
2020-10-23 20:55:20 +08:00
if(utils.distance(working_target_pos,my_pos)>1.5){//在附近就是1或者1.414
creep.moveTo(working_target_pos);
path.visualPath(creep.pos,working_target_pos);
2020-10-18 22:00:22 +08:00
}else{
//find dropped source
2020-10-23 20:55:20 +08:00
let found=creep.room.lookForAt(LOOK_ENERGY,working_target_pos);
2020-10-18 22:00:22 +08:00
if(found.length>0){
creep.pickup(found[0])
}
}
}else{
if (creep.transfer(Game.spawns['Spawn1'], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) {
creep.moveTo(Game.spawns['Spawn1']);
2020-10-23 20:55:20 +08:00
path.visualPath(creep.pos,Game.spawns['Spawn1'].pos);
2020-10-18 22:00:22 +08:00
}
}
}
}