47 lines
1.1 KiB
JavaScript
47 lines
1.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 && typeof role.run === 'function'){
|
|
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) {
|
|
var newName = role + Game.time;
|
|
roleMap[role].spawn(spawn);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = { runRole, spawnCreeps, creepCounts};
|