TsarBot/role_dispatcher.js

45 lines
1 KiB
JavaScript

var roleHarvester = require('role_harvester');
var roleUpgrader = require('role_upgrader');
var roleBuilder = require('role_builder');
var roleRepairer = require('role_repairer');
var roleGuard = require('role_guard');
const roleMap = {
harvester: roleHarvester,
upgrader: roleUpgrader,
builder: roleBuilder,
repairer: roleRepairer,
streltsy: roleGuard
};
var creepCounts = {
"harvester" : 3,
"builder" : 1,
"upgrader" : 2,
"repairer" : 1,
"streltsy" : 2
};
function runRole(creep){
const role = roleMap[creep.memory.role];
if(role !== 'undefined'){
role.run(creep);
} else {
console.log('Unknown or undefined role: ' + creep.memory.role);
}
}
function spawnCreeps(spawn){
for(const [role, count] of Object.entries(creepCounts)){
var roleCreeps = _.filter(Game.creeps, (creep) => creep.memory.role == role);
if(roleCreeps.length < count && !spawn.spawning) {
roleMap[role].spawn(spawn);
break;
}
}
}
module.exports = { runRole, spawnCreeps, creepCounts};