Add a Task system
This commit is contained in:
parent
216d44ab5c
commit
3922f367a2
12 changed files with 499 additions and 28 deletions
30
src/Tasks/Upgrade.ts
Normal file
30
src/Tasks/Upgrade.ts
Normal 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");
|
||||
Loading…
Add table
Add a link
Reference in a new issue