diff options
author | Tom Harley | 2018-06-26 03:42:35 +0100 |
---|---|---|
committer | Tom Harley | 2018-06-26 03:42:35 +0100 |
commit | 1ef859926918a7831c20497c77e56ebc4a360f26 (patch) | |
tree | d881149dabc5e6d17b54aee0eb736744e771868c | |
parent | Add range parameter to help pathfinding (diff) | |
download | screeps-ai-1ef859926918a7831c20497c77e56ebc4a360f26.tar.gz screeps-ai-1ef859926918a7831c20497c77e56ebc4a360f26.zip |
‘Enhance’ move command
-rw-r--r-- | src/role.harvester.js | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/role.harvester.js b/src/role.harvester.js index e372ba4..5d37dce 100644 --- a/src/role.harvester.js +++ b/src/role.harvester.js @@ -1,15 +1,32 @@ +const move = (creep, x, y) => { + if (y === undefined) return move(creep, x.pos.x, x.pos.y); + switch (creep.moveTo(x, y)) { + case 0: + return true; + case -2: + console.log(creep + " could not move to " + x + ", " + y); + for (i = -1; i <= 1; ++i) { + for (j = -1; j <= 1; ++j) { + if (creep.moveTo(x + i, y + j)) return true; + } + } + default: + return false; + } +} + module.exports = { run: (creep) => { if (creep.carry.energy < creep.carryCapacity) { // just use the first sourrce for now const source = creep.room.find(FIND_SOURCES)[0]; if (creep.harvest(source) == ERR_NOT_IN_RANGE) { - creep.moveTo(source, { range: 1 }); + move(creep, source); } } else { const spawn = Game.spawns['Initial']; if (creep.transfer(spawn, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) { - creep.moveTo(spawn, { range: 1 }); + move(creep, spawn); } } } |