TsarBot/main.js
2025-06-03 20:21:08 -07:00

38 lines
1.2 KiB
JavaScript

var roleDispatcher = require('role.dispatcher');
var creepCounts = {"harvester" : 3, "builder" : 1, "upgrader" : 2, "repairer" : 1};
module.exports.loop = function () {
for(var name in Memory.creeps) {
if(!Game.creeps[name]) {
delete Memory.creeps[name];
}
}
for(const [role, count] of Object.entries(creepCounts)){
var roleCreeps = _.filter(Game.creeps, (creep) => creep.memory.role == role);
if(roleCreeps.length < count && !Game.spawns['Moscow'].spawning) {
var newName = role + Game.time;
Game.spawns['Moscow'].spawnCreep([WORK,CARRY,MOVE], newName,
{memory: {role: role}});
break;
}
}
if(Game.spawns['Moscow'].spawning) {
var spawningCreep = Game.creeps[Game.spawns['Moscow'].spawning.name];
Game.spawns['Moscow'].room.visual.text(
'🛠️' + spawningCreep.memory.role,
Game.spawns['Moscow'].pos.x + 1,
Game.spawns['Moscow'].pos.y,
{align: 'left', opacity: 0.8});
}
for(var name in Game.creeps) {
var creep = Game.creeps[name];
roleDispatcher.runRole(creep);
}
}