screeps-bot-hurricane/src/Tasks/Upgrade.ts

31 lines
814 B
TypeScript

import profiler from "screeps-profiler";
import { TaskData, TaskStatus, TaskType } from "./Task";
export const Upgrade
= (target: StructureController): TaskData => ({
target,
targetPos: target.pos,
type: TaskType.Upgrade,
options: {},
data: {},
});
export const runUpgrade = profiler.registerFN(
function (creep: Creep): TaskStatus {
const task = creep.task;
if (task == null) {
return TaskStatus.DONE;
}
if (creep.store.energy === 0) {
return TaskStatus.DONE;
}
const target = task.target as StructureController | null;
if (target == null
|| creep.upgradeController(target) === ERR_NOT_IN_RANGE) {
creep.travelTo(task.targetPos);
}
return TaskStatus.IN_PROGRESS;
}, "Tasks.Upgrade.run") as (creep: Creep) => TaskStatus;