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'); var roleBase = require('role_base'); const roleMap = { harvester: roleHarvester, upgrader: roleUpgrader, builder: roleBuilder, repairer: roleRepairer, streltsy: roleGuard }; var creepCounts = { "harvester" : 3, "builder" : 2, "upgrader" : 2, "repairer" : 1, "streltsy" : 2 }; function runRole(creep){ const role = roleMap[creep.memory.role]; if(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) { if(typeof roleMap[role].spawn === 'function') roleMap[role].spawn(spawn); else roleBase.spawn(spawn, roleMap[role].body, roleMap[role].name); break; } } } module.exports = { runRole, spawnCreeps, creepCounts};