Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Main Module ---
  2. var harvestScript = require('roleHarvester');
  3. var upgradeScript = require('upgrader');
  4. var buildScript = require('builder');
  5. var defenseScript = require('soldier');
  6. var fixScript = require('repair');
  7. var wallScript = require('wallmaster');
  8.  
  9. module.exports.loop = function () {
  10.     //Clear dead memory
  11.     for (let name in Memory.creeps) {
  12.         if (Game.creeps[name] == undefined){
  13.             console.log('Dead creeps found, cleaning up...')
  14.             delete Memory.creeps[name]
  15.         }
  16.     }
  17.     //Run Role Modules, Call a different script depending on role in memory
  18.     for(let name in Game.creeps) {
  19.         var creep = Game.creeps[name];
  20.         if (creep.memory.role == 'harvester') {
  21.             harvestScript.run(creep);
  22.         }
  23.         else if (creep.memory.role == 'upgrader') {
  24.             upgradeScript.run(creep);
  25.         }
  26.         else if (creep.memory.role == 'builder'){
  27.             buildScript.run(creep);
  28.         }
  29.         else if (creep.memory.role == 'fixer'){
  30.             fixScript.run(creep);
  31.         }
  32.         else if (creep.memory.role == 'wall'){
  33.             wallScript.run(creep);
  34.         }
  35.     }
  36.     //Check for every combination of Roles and IDs, maintain populations
  37.     var harID0 = _.sum(Game.creeps, (c) =>c.memory.role == 'harvester' && c.memory.ID == 0)
  38.     var harID1 = _.sum(Game.creeps, (c) =>c.memory.role == 'harvester' && c.memory.ID == 1)
  39.     var upID0 = _.sum(Game.creeps, (c) =>c.memory.role == 'upgrader' && c.memory.ID == 0)
  40.     var buildID1 = _.sum(Game.creeps, (c) =>c.memory.role == 'builder' && c.memory.ID == 1)
  41.     var buildID0 = _.sum(Game.creeps, (c) =>c.memory.role == 'builder' && c.memory.ID == 0)
  42.     var fixID0 = _.sum(Game.creeps, (c) =>c.memory.role == 'fixer' && c.memory.ID == 0)
  43.     var wallID1 = _.sum(Game.creeps, (c) =>c.memory.role == 'wall' && c.memory.ID == 1)
  44.     if (harID0 < 3){
  45.         Game.spawns.Spawn1.createCreep([WORK,WORK,WORK,CARRY,CARRY,MOVE,MOVE,MOVE], 'harvester' + Game.time, {role: 'harvester', ID: 0})
  46.     }
  47.     else if (harID1 < 2){
  48.         Game.spawns.Spawn1.createCreep([WORK,WORK,WORK,CARRY,CARRY,MOVE,MOVE,MOVE], 'harvester' + Game.time, {role: 'harvester', ID: 1})
  49.     }
  50.     else if (upID0 < 5){
  51.         Game.spawns.Spawn1.createCreep([WORK,WORK,WORK,CARRY,CARRY,MOVE,MOVE,MOVE], 'upgrader' + Game.time, {role: 'upgrader', ID: 0, upgrading: false})
  52.     }
  53.     else if (buildID1 < 1){
  54.         Game.spawns.Spawn1.createCreep([WORK,WORK,WORK,CARRY,CARRY,MOVE,MOVE,MOVE], 'builder' + Game.time, {role: 'builder', ID: 1, building: false})
  55.     }
  56.     else if (buildID0 < 1){
  57.         Game.spawns.Spawn1.createCreep([WORK,WORK,WORK,CARRY,CARRY,MOVE,MOVE,MOVE], 'builder' + Game.time, {role: 'builder', ID: 0, building: false})
  58.     }
  59.     else if (fixID0 < 1){
  60.         Game.spawns.Spawn1.createCreep([WORK,WORK,WORK,CARRY,CARRY,MOVE,MOVE,MOVE], 'fixer' + Game.time, {role: 'fixer', ID: 0, fixing: false})
  61.     }
  62.     else if (wallID1 < 1){
  63.         Game.spawns.Spawn1.createCreep([WORK,WORK,WORK,CARRY,CARRY,MOVE,MOVE,MOVE], 'wallMaster' + Game.time, {role: 'wall', ID: 1, fixing: false})
  64.     }
  65. }
  66. //Builder module---
  67. module.exports = {
  68.     run: function(creep) {
  69.         if (creep.carry.energy == creep.carryCapacity){
  70.             creep.memory.building = true
  71.             creep.say('Building')
  72.         }
  73.         else if (creep.carry.energy == 0){
  74.             creep.memory.building = false
  75.             creep.say('Collecting')
  76.         }
  77.         if (creep.memory.building == true){
  78.             var buildSite = creep.pos.findClosestByPath(FIND_CONSTRUCTION_SITES);
  79.             if (creep.build(buildSite) == ERR_NOT_IN_RANGE){
  80.                 creep.moveTo(buildSite)
  81.             }
  82.         }
  83.         else if (creep.memory.ID == 0 && creep.memory.building == false){
  84.             var source = creep.pos.findClosestByPath(FIND_SOURCES);
  85.             if (creep.harvest(source) == ERR_NOT_IN_RANGE){
  86.                 creep.moveTo(source);
  87.             }
  88.         }
  89.         else if (creep.memory.ID == 1 && creep.memory.building == false){
  90.             var farSource = creep.pos.findClosestByPath(FIND_SOURCES)
  91.             if (creep.harvest(farSource) == ERR_NOT_IN_RANGE){
  92.                 creep.moveTo(44,29);
  93.             }
  94.         }
  95.     }
  96. };
  97. //Repair module---
  98. module.exports = {
  99.     run: function(creep) {
  100.         if (creep.carry.energy == creep.carryCapacity){
  101.             creep.memory.fixing = true
  102.             creep.say('Repairing')
  103.         }
  104.         else if (creep.carry.energy == 0){
  105.             creep.memory.fixing = false
  106.             creep.say('Collecting')
  107.         }
  108.         if (creep.memory.fixing == true){
  109.             var repairSite = creep.pos.findClosestByPath(FIND_STRUCTURES, {
  110.                 filter: (s) => s.hits < s.hitsMax && s.structureType != STRUCTURE_WALL
  111.             });
  112.             if (creep.repair(repairSite) == ERR_NOT_IN_RANGE){
  113.                 creep.moveTo(repairSite)
  114.             }
  115.         }
  116.         else if (creep.memory.ID == 0 && creep.memory.fixing == false){
  117.             var source = creep.pos.findClosestByPath(FIND_SOURCES);
  118.             if (creep.harvest(source) == ERR_NOT_IN_RANGE){
  119.                 creep.moveTo(source);
  120.             }
  121.         }
  122.         else if (creep.memory.ID == 1 && creep.memory.fixing == false){
  123.             var farSource = creep.pos.findClosestByPath(FIND_SOURCES)
  124.             if (creep.harvest(farSource) == ERR_NOT_IN_RANGE){
  125.                 creep.moveTo(44,29);
  126.             }
  127.         }
  128.     }
  129. };
  130. //Harvester module ---
  131. module.exports = {
  132.     run: function(creep) {
  133.         if (creep.carryCapacity == creep.carry.energy){
  134.             var container = creep.pos.findClosestByPath(FIND_MY_STRUCTURES, {
  135.                 filter: (s) => s.energy < s.energyCapacity
  136.             });
  137.             if (container != undefined){
  138.                 if (creep.transfer(container, RESOURCE_ENERGY) == ERR_NOT_IN_RANGE){
  139.                     creep.moveTo(container);
  140.                 }
  141.             }
  142.         }
  143.         else if (creep.memory.ID == 0){
  144.             var source = creep.pos.findClosestByPath(FIND_SOURCES);
  145.             if (creep.harvest(source) == ERR_NOT_IN_RANGE){
  146.                 creep.moveTo(source);
  147.             }
  148.         }
  149.         else if (creep.memory.ID == 1){
  150.             var farSource = creep.pos.findClosestByPath(FIND_SOURCES)
  151.             if (creep.harvest(farSource) == ERR_NOT_IN_RANGE){
  152.                 creep.moveTo(44,29);
  153.             }
  154.         }
  155.     }
  156. };
  157. //Upgrader module ---
  158. module.exports = {
  159.     run: function(creep) {
  160.         if (creep.carry.energy == creep.carryCapacity){
  161.             creep.memory.upgrading = true
  162.             creep.say('Upgrading')
  163.         }
  164.         else if (creep.carry.energy == 0){
  165.             creep.memory.upgrading = false
  166.             creep.say('Collecting')
  167.         }
  168.         if (creep.memory.upgrading == true){
  169.             if (creep.upgradeController(creep.room.controller) == ERR_NOT_IN_RANGE){
  170.                 creep.moveTo(creep.room.controller);
  171.             }
  172.         }
  173.         else if (creep.memory.ID == 0 && creep.memory.upgrading == false){
  174.             var source = creep.pos.findClosestByPath(FIND_SOURCES);
  175.             if (creep.harvest(source) == ERR_NOT_IN_RANGE){
  176.                 creep.moveTo(source);
  177.             }
  178.         }
  179.         else if (creep.memory.ID == 1 && creep.memory.upgrading == false){
  180.             var farSource = creep.pos.findClosestByPath(FIND_SOURCES)
  181.             if (creep.harvest(farSource) == ERR_NOT_IN_RANGE){
  182.                 creep.moveTo(44,29);
  183.             }
  184.         }
  185.     }
  186. };
  187. // Wall fortifier module ---
  188. module.exports = {
  189.     run: function(creep) {
  190.         if (creep.carry.energy == creep.carryCapacity){
  191.             creep.memory.fixing = true
  192.             creep.say('Repairing Walls')
  193.         }
  194.         else if (creep.carry.energy == 0){
  195.             creep.memory.fixing = false
  196.             creep.say('Collecting')
  197.         }
  198.         if (creep.memory.fixing == true){
  199.             var repairSite = creep.pos.findClosestByPath(FIND_STRUCTURES, {
  200.                 filter: (s) => s.structureType == STRUCTURE_WALL && s.hits < 300000
  201.             });
  202.             if (creep.repair(repairSite) == ERR_NOT_IN_RANGE){
  203.                 creep.moveTo(repairSite)
  204.             }
  205.         }
  206.         else if (creep.memory.ID == 0 && creep.memory.fixing == false){
  207.             var source = creep.pos.findClosestByPath(FIND_SOURCES);
  208.             if (creep.harvest(source) == ERR_NOT_IN_RANGE){
  209.                 creep.moveTo(source);
  210.             }
  211.         }
  212.         else if (creep.memory.ID == 1 && creep.memory.fixing == false){
  213.             var farSource = creep.pos.findClosestByPath(FIND_SOURCES)
  214.             if (creep.harvest(farSource) == ERR_NOT_IN_RANGE){
  215.                 creep.moveTo(44,29);
  216.             }
  217.         }
  218.     }
  219. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement