Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- curRoom.memory.spawnQueue = [];
- let creeps = curRoom.find(FIND_MY_CREEPS);
- let total = {
- harvester: 0,
- carrier: 0,
- builder: 0,
- dismantler: 0,
- fighter: 0,
- healer: 0,
- claimer: 0
- };
- if (!curRoom.find(FIND_MY_SPAWNS).length) {
- }
- curRoom.memory.spawningFull = true;
- curRoom.memory.towerFull = true;
- let structs = curRoom.find(FIND_MY_STRUCTURES);
- curRoom.memory.towers = [];
- for (let id in structs) {
- let structure = structs[id];
- if (structure.structureType === STRUCTURE_TOWER) {
- curRoom.memory.towers.push(structure.id);
- if (structure.energy < structure.energyCapacity) {curRoom.memory.towerFull = false;}
- } else if (structure.structureType == STRUCTURE_SPAWN || structure.structureType == STRUCTURE_EXTENSION) {
- if (structure.energy < structure.energyCapacity) {
- curRoom.memory.spawningFull = false;
- }
- }
- }
- for (let creepId in creeps) {
- let creep = creeps[creepId];
- switch (creep.memory.role) {
- case 'fighter':
- total.fighter++;
- break;
- case 'carrier':
- total.carrier++;
- break;
- case 'healer':
- total.healer++;
- break;
- case 'harvester':
- total.harvester++;
- break;
- case 'builder':
- total.builder++;
- break;
- case "dismantler":
- total.dismantler++;
- break;
- default:
- break;
- }
- }
- let totalNeeded = {
- harvester: total.carrier < 2 ? total.carrier+1 : 2,
- carrier: 5,
- builder: (total.carrier+total.harvester)/2,
- healer: 0,
- fighter: 0,
- dismantler: 0,
- claimer: 0 //(Game.time > 9491696 && !Game.flags.CarrotCake.room) ? 1 : 0
- };
- if (curRoom.find(FIND_HOSTILE_CREEPS).length) {
- //totalNeeded.fighter = 4;
- //totalNeeded.healer = 2;
- }
- let spawn = curRoom.find(FIND_MY_SPAWNS)[0];
- if (total.harvester === 0 && spawn !== undefined) {
- let creep = getNewCreepParts("harvester", curRoom.energyAvailable);
- if (creep !== null) {
- creep.push({role: "harvester"});
- spawn.createCreep(creep[0], creep[1], creep[3]);
- }
- }
- if (total.carrier === 0 && spawn !== undefined) {
- let creep = getNewCreepParts("carrier", curRoom.energyAvailable);
- if (creep !== null) {
- creep.push({role: "carrier"});
- spawn.createCreep(creep[0], creep[1], creep[3]);
- }
- }
- let extras = {};
- for (let i in total) {
- if (total[i] < totalNeeded[i]) {
- extras[i] = totalNeeded[i] - total[i];
- }
- }
- for (let i in extras) {
- while (extras[i] > 0) {
- let creep = getNewCreepParts(i, curRoom.energyCapacityAvailable);
- if (creep !== null) {
- creep.push({role: i});
- curRoom.memory.spawnQueue.push(creep);
- }
- extras[i]--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment