Files
screeps/CreepClass.js
2023-08-31 19:04:10 +02:00

45 lines
1.3 KiB
JavaScript

const jobBuilder = require("JobBuilder");
const jobCleaner = require("JobCleaner");
const jobMiner = require("JobMiner");
const jobSupplier = require("JobSupplier");
const jobUpgrader = require("JobUpgrader");
module.exports = {
setup: function () {
Creep.prototype = _Creep.prototype;
global.Role = Role;
}
}
const Role = {
BUILDER: 0,
CLEANER: 1,
MINER: 2,
SUPPLIER: 3,
UPGRADER: 4
}
class _Creep extends Creep {
begin(){
if(!this.memory.job) this.memory.job = { role: Role.HARVESTER };
switch (this.memory.job.role) {
case Role.BUILDER: jobBuilder.begin(this); break;
case Role.CLEANER: jobCleaner.begin(this); break;
case Role.MINER: jobMiner.begin(this); break;
case Role.SUPPLIER: jobSupplier.begin(this); break;
case Role.UPGRADER: jobUpgrader.begin(this); break;
}
this.memory.init = true;
}
tick(){
if(!this.memory.init) this.begin();
switch (this.memory.job.role) {
case Role.BUILDER: jobBuilder.tick(this); break;
case Role.CLEANER: jobCleaner.tick(this); break;
case Role.MINER: jobMiner.tick(this); break;
case Role.SUPPLIER: jobSupplier.tick(this); break;
case Role.UPGRADER: jobUpgrader.tick(this); break;
}
}
}