import { EPROTONOSUPPORT } from "constants"; export function move(creep: Creep) { let to: Point; let endDist: number; let opts:MoveToOpts|undefined; if (!creep.memory.move) return; // Initialization of memory for use. if (creep.memory.move.args) { to = creep.memory.move.args.to; let fdst = creep.memory.move.args.fDist endDist = (fdst) ? fdst : 0; opts = creep.memory.move.args.opts; delete creep.memory.move.args; } else if (creep.memory.move.mem) { to = creep.memory.move.mem.to; endDist = creep.memory.move.mem.fDist; opts = creep.memory.move.mem.opts; } else { return; } //Now we move. let err = creep.moveTo(to.x, to.y); switch(err) { case ERR_NO_PATH: case ERR_NO_BODYPART: creep.memory.state = (creep.memory.retState)?creep.memory.retState:'no_state'; creep.memory.retState = undefined; delete creep.memory.move.mem; break; } if(creep.pos.inRangeTo(to.x, to.y, endDist)) { creep.memory.state = (creep.memory.retState)?creep.memory.retState:'no_state'; creep.memory.retState = undefined; delete creep.memory.move.mem; return; } // Something to save the state of this state. creep.memory.move.mem = { to: to, fDist: endDist, opts: opts }; }