CursedFlames

Untitled

Apr 22nd, 2016
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. curRoom.memory.spawnQueue = [];
  2.             let creeps = curRoom.find(FIND_MY_CREEPS);
  3.             let total = {
  4.                 harvester: 0,
  5.                 carrier: 0,
  6.                 builder: 0,
  7.                 dismantler: 0,
  8.                 fighter: 0,
  9.                 healer: 0,
  10.                 claimer: 0
  11.             };
  12.             if (!curRoom.find(FIND_MY_SPAWNS).length) {
  13.                
  14.             }
  15.             curRoom.memory.spawningFull = true;
  16.             curRoom.memory.towerFull = true;
  17.             let structs = curRoom.find(FIND_MY_STRUCTURES);
  18.             curRoom.memory.towers = [];
  19.             for (let id in structs) {
  20.                 let structure = structs[id];
  21.                 if (structure.structureType === STRUCTURE_TOWER) {
  22.                     curRoom.memory.towers.push(structure.id);
  23.                     if (structure.energy < structure.energyCapacity) {curRoom.memory.towerFull = false;}
  24.                 } else if (structure.structureType == STRUCTURE_SPAWN || structure.structureType == STRUCTURE_EXTENSION) {
  25.                     if (structure.energy < structure.energyCapacity) {
  26.                         curRoom.memory.spawningFull = false;
  27.                     }
  28.                 }
  29.             }
  30.             for (let creepId in creeps) {
  31.                 let creep = creeps[creepId];
  32.                 switch (creep.memory.role) {
  33.                     case 'fighter':
  34.                         total.fighter++;
  35.                         break;
  36.                     case 'carrier':
  37.                         total.carrier++;
  38.                         break;
  39.                     case 'healer':
  40.                         total.healer++;
  41.                         break;
  42.                     case 'harvester':
  43.                         total.harvester++;
  44.                         break;
  45.                     case 'builder':
  46.                         total.builder++;
  47.                         break;
  48.                     case "dismantler":
  49.                         total.dismantler++;
  50.                         break;
  51.                     default:
  52.                         break;
  53.                 }
  54.             }
  55.             let totalNeeded = {
  56.                 harvester: total.carrier < 2 ? total.carrier+1 : 2,
  57.                 carrier: 5,
  58.                 builder: (total.carrier+total.harvester)/2,
  59.                 healer: 0,
  60.                 fighter: 0,
  61.                 dismantler: 0,
  62.                 claimer: 0 //(Game.time > 9491696 && !Game.flags.CarrotCake.room) ? 1 : 0
  63.             };
  64.             if (curRoom.find(FIND_HOSTILE_CREEPS).length) {
  65.                 //totalNeeded.fighter = 4;
  66.                 //totalNeeded.healer = 2;
  67.             }
  68.             let spawn = curRoom.find(FIND_MY_SPAWNS)[0];
  69.             if (total.harvester === 0 && spawn !== undefined) {
  70.                 let creep = getNewCreepParts("harvester", curRoom.energyAvailable);
  71.                 if (creep !== null) {
  72.                     creep.push({role: "harvester"});
  73.                     spawn.createCreep(creep[0], creep[1], creep[3]);
  74.                 }
  75.             }
  76.             if (total.carrier === 0 && spawn !== undefined) {
  77.                 let creep = getNewCreepParts("carrier", curRoom.energyAvailable);
  78.                 if (creep !== null) {
  79.                     creep.push({role: "carrier"});
  80.                     spawn.createCreep(creep[0], creep[1], creep[3]);
  81.                 }
  82.             }
  83.             let extras = {};
  84.             for (let i in total) {
  85.                 if (total[i] < totalNeeded[i]) {
  86.                     extras[i] = totalNeeded[i] - total[i];
  87.                 }
  88.             }
  89.             for (let i in extras) {
  90.                 while (extras[i] > 0) {
  91.                     let creep = getNewCreepParts(i, curRoom.energyCapacityAvailable);
  92.                     if (creep !== null) {
  93.                         creep.push({role: i});
  94.                         curRoom.memory.spawnQueue.push(creep);
  95.                     }
  96.                     extras[i]--;
  97.                 }
  98.             }
Advertisement
Add Comment
Please, Sign In to add comment