summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Harley2018-06-26 03:42:35 +0100
committerTom Harley2018-06-26 03:42:35 +0100
commit1ef859926918a7831c20497c77e56ebc4a360f26 (patch)
treed881149dabc5e6d17b54aee0eb736744e771868c
parentAdd range parameter to help pathfinding (diff)
downloadscreeps-ai-1ef859926918a7831c20497c77e56ebc4a360f26.tar.gz
screeps-ai-1ef859926918a7831c20497c77e56ebc4a360f26.zip

‘Enhance’ move command

-rw-r--r--src/role.harvester.js21
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);
}
}
}