Add a Task system

This commit is contained in:
uwap 2025-12-31 15:51:05 +01:00
parent 216d44ab5c
commit 3922f367a2
12 changed files with 499 additions and 28 deletions

30
src/Tasks/Upgrade.ts Normal file
View file

@ -0,0 +1,30 @@
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((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;
}, "runUpgrade");