screeps/main.js
2016-06-28 17:00:10 -04:00

46 lines
1.4 KiB
JavaScript

var roleHarvester = require('role.harvester');
var roleUpgrader = require('role.upgrader');
var roleBuilder = require('role.builder');
var creepsConfig = {
harvester: {
bodyParts: [WORK, CARRY, MOVE],
minimumCreeps: 4,
run: roleHarvester.run
},
builder:{
bodyParts: [WORK, CARRY, MOVE],
minimumCreeps: 2,
run: roleBuilder.run
},
upgrader: {
bodyParts: [WORK, CARRY, MOVE],
minimumCreeps: 2,
run: roleUpgrader.run
}
}
module.exports.loop = function(){
// Cleanup Creeps
for (var name in Memory.creeps){
if (!Game.creeps[name]){
delete Memory.creeps[name];
console.log("Clearning non-existing creep memory: ", name);
}
}
// Refactor some similar behavior for all roles
for (var roleName in creepsConfig){
var creepsOfKind = _.filter(Game.creeps, (creep) => creep.memory.role == roleName);
if (creepsOfKind.length < creepsConfig[roleName].minimumCreeps){
var newName = Game.spawns.Spawn1.createCreep(creepsConfig[roleName].bodyParts, undefined, {role: roleName});
console.log("Spawning new ", roleName, ": ", newName);
}
};
// Run stuff for each creep
for (var name in Game.creeps){
var creep = Game.creeps[name];
var role = creep.memory.role;
creepsConfig[role].run(creep);
}
}