Removed the harvester. Introduced the cleaner (not active yet) spawners use full room capacity now.
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
const math = require("Math");
|
||||
|
||||
module.exports = {
|
||||
setup: function () { StructureSpawn.prototype = _StructureSpawn.prototype; }
|
||||
}
|
||||
@@ -14,7 +16,7 @@ class _StructureSpawn extends StructureSpawn {
|
||||
const job = this.room.memory.vacancies.pop();
|
||||
if(job){
|
||||
const name = getJobName(job.role);
|
||||
const body = getBodyByJob(job.role);
|
||||
const body = getBodyByJob(job.role, this.room.energyAvailable);
|
||||
if(this.createCreep(job, name, body) != OK) this.room.memory.vacancies.push(job);
|
||||
}
|
||||
}
|
||||
@@ -31,19 +33,32 @@ class _StructureSpawn extends StructureSpawn {
|
||||
function getJobName(role){
|
||||
switch (role) {
|
||||
case Role.BUILDER: return "Bob";
|
||||
case Role.HARVESTER: return "Harvy";
|
||||
case Role.MINER: return "minny";
|
||||
case Role.SUPPLIER: return "Sully";
|
||||
case Role.UPGRADER: return "Uppa";
|
||||
}
|
||||
}
|
||||
|
||||
function getBodyByJob(role){
|
||||
switch (role) {
|
||||
case Role.BUILDER:
|
||||
case Role.HARVESTER: return [WORK, CARRY, CARRY, MOVE, MOVE];
|
||||
case Role.UPGRADER: return [WORK, WORK, CARRY, MOVE];
|
||||
case Role.MINER: return [WORK, WORK, MOVE, MOVE];
|
||||
case Role.SUPPLIER: return [CARRY, CARRY, CARRY, MOVE, MOVE, MOVE]
|
||||
function getBodyByJob(role, energyAvailability){
|
||||
const body = [];
|
||||
switch (role) {
|
||||
case Role.UPGRADER: body.push(CARRY); body.push(MOVE); energyAvailability -= 100; break;
|
||||
case Role.MINER: body.push(MOVE); energyAvailability -= 50; break;
|
||||
}
|
||||
|
||||
var unitEnergyCost = 0;
|
||||
while(unitEnergyCost <= energyAvailability) {
|
||||
switch (role) {
|
||||
case Role.BUILDER: body.push(WORK); body.push(CARRY); body.push(MOVE); unitEnergyCost = 200; break;
|
||||
case Role.UPGRADER:
|
||||
case Role.MINER:
|
||||
body.push(WORK); unitEnergyCost = 100;
|
||||
if(role === Role.MINER && body.length > 5) energyAvailability = -1;
|
||||
break;
|
||||
case Role.SUPPLIER: body.push(CARRY); body.push(MOVE); unitEnergyCost = 100; break;
|
||||
default: energyAvailability = -1; break;
|
||||
}
|
||||
energyAvailability -= unitEnergyCost;
|
||||
}
|
||||
return body;
|
||||
}
|
||||
Reference in New Issue
Block a user