Screeps/screeps.com/testing-sim/manage_creeps.js

51 lines
1.2 KiB
JavaScript
Raw Normal View History

/*
*
*/
var creepBuilds = require("./creep_builds");
var settings = require("./settings");
var misc = require("./misc");
var spawnCreeps = settings.getSpawnCreeps();
var creepGoalAmount = settings.getCreepGoalAmount();
var creepManager = {
run: function() {
//spawn desired creeps
if (spawnCreeps) {
for (let role in creepGoalAmount) {
let roleCreepsAmount = (_.filter(Game.creeps, (creep) => creep.memory.role == role)).length;
if (roleCreepsAmount < creepGoalAmount[role]) {
spawnCreep(role, roleCreepsAmount);
}
}
}
//run creeps by role
for (let creep in Game.creeps) {
let creepName = Game.creeps[creep];
let role = creepName.memory.role;
let roleObject = creepBuilds.getRoleObject(role);
roleObject.run(creepName);
}
}
};
module.exports = creepManager;
function spawnCreep(role, existing) {
let newCreepName = role + "_Spheal_" + existing;
let newCreepBuild = creepBuilds.getBuildsDict()[role];
Game.spawns.Spawn1.spawnCreep(newCreepBuild, newCreepName, { memory: { role: role } });
if (!Game.spawns.Spawn1.spawning) {
misc.displayMessage(Game.spawns.Spawn1, "Spawning next: " + newCreepName);
} else {
misc.displayMessage(Game.spawns.Spawn1, "Spawning Creep");
}
}