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};