45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
const jobBuilder = require("JobBuilder");
|
|
const jobHarvester = require("JobHarvester");
|
|
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 = {
|
|
HARVESTER: 0,
|
|
MINER: 1,
|
|
SUPPLIER: 2,
|
|
UPGRADER: 3,
|
|
BUILDER: 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.HARVESTER: jobHarvester.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.HARVESTER: jobHarvester.tick(this); break;
|
|
case Role.MINER: jobMiner.tick(this); break;
|
|
case Role.SUPPLIER: jobSupplier.tick(this); break;
|
|
case Role.UPGRADER: JobUpgrader.tick(this); break;
|
|
}
|
|
}
|
|
} |