Advertisement
nerfnerf123

Screeps V1

Aug 1st, 2017
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. [5:49:36 PM]Progress to stage 2: Harvesters: 2 Builders: 2 Upgraders: 1
  3. [5:49:36 PM]Structure Queue: 0
  4. [5:49:36 PM]Structure Queue: 0
  5. [5:49:36 PM]Stage: 1
  6. [5:49:36 PM]Stage: 1
  7. [5:49:37 PM]Stage: 1
  8. [5:49:37 PM]Stage: 1
  9. [5:49:37 PM]Stage: 1
  10. [5:49:37 PM]Stage: 1
  11. [5:49:38 PM]Stage: 1
  12. [5:49:38 PM]Stage: 0
  13. [5:49:38 PM]👍 UPGRADED TO STAGE 1
  14. [5:49:39 PM]Stage: 1
  15. [5:49:39 PM]Stage: 1
  16. [5:49:39 PM]Spawning new upgrader: Jeremiah
  17. [5:49:39 PM]Stage: 1
  18. [5:49:40 PM]Stage: 1
  19. [5:49:40 PM]Stage: 1
  20. [5:49:41 PM]Stage: 1
  21. [5:49:41 PM]Stage: 1
  22. [5:49:41 PM]Stage: 1
  23. [5:49:41 PM]Stage: 1
  24. [5:49:42 PM]Stage: 0
  25. [5:49:42 PM]👍 UPGRADED TO STAGE 1
  26. [5:49:42 PM]Stage: 1
  27. [5:49:43 PM]Stage: 1
  28. [5:49:43 PM]Stage: 1
  29. [5:49:43 PM]Stage: 1
  30. [5:49:43 PM]Stage: 1
  31. [5:49:44 PM]Stage: 1
  32. [5:49:44 PM]Stage: 1
  33. [5:49:44 PM]Progress to stage 2: Harvesters: 2 Builders: 2 Upgraders: 2
  34. [5:49:44 PM]Structure Queue: 0
  35. [5:49:44 PM]Structure Queue: 0
  36. [5:49:44 PM]Stage: 1
  37. [5:49:45 PM]Stage: 1
  38. [5:49:45 PM]Stage: 1
  39. [5:49:45 PM]Stage: 1
  40. [5:49:46 PM]Stage: 1
  41. [5:49:46 PM]Stage: 1
  42. [5:49:46 PM]Stage: 1
  43. [5:49:47 PM]Stage: 1
  44. [5:49:48 PM]Stage: 1
  45. [5:49:48 PM]Stage: 1
  46. [5:49:48 PM]Stage: 1
  47. [5:49:49 PM]Stage: 1
  48. [5:49:49 PM]Stage: 1
  49. [5:49:49 PM]Stage: 1
  50. [5:49:50 PM]Stage: 1
  51. [5:49:50 PM]Stage: 1
  52. [5:49:50 PM]Stage: 1
  53. [5:49:50 PM]Stage: 1
  54. [5:49:51 PM]Stage: 1
  55. [5:49:51 PM]Stage: 1
  56. [5:49:51 PM]Stage: 1
  57. [5:49:52 PM]Stage: 1
  58. [5:49:52 PM]Stage: 0
  59. [5:49:52 PM]👍 UPGRADED TO STAGE 1
  60. [5:49:53 PM]Stage: 1
  61. [5:49:53 PM]Stage: 1
  62. */
  63.  
  64. var roleHarvester = require('role.harvester');
  65. var roleUpgrader = require('role.upgrader');
  66. var roleBuilder = require('role.builder');
  67.  
  68. var stage = 0;
  69. var stageconstruct = false;
  70.  
  71. var modTime = 25; //delay between each message
  72.  
  73. module.exports.loop = function () {
  74.     // clears memory
  75.     for(var name in Memory.creeps) {
  76.         if(!Game.creeps[name]) {
  77.             delete Memory.creeps[name];
  78.             console.log('Clearing non-existing creep memory:', name);
  79.         }
  80.     }
  81.  
  82.    
  83.     // DEBUGGING
  84.     console.log("Stage: " + stage)
  85.    
  86.    
  87.     var harvesters = _.filter(Game.creeps, (creep) => creep.memory.role == 'harvester');
  88.     //console.log('Harvesters: ' + harvesters.length);
  89.     var builders = _.filter(Game.creeps, (creep) => creep.memory.role == 'builder');
  90.     //console.log('Builders: ' + builders.length);
  91.     var upgraders = _.filter(Game.creeps, (creep) => creep.memory.role == 'upgrader');
  92.     //console.log('Upgraders: ' + upgraders.length);
  93.    
  94.     switch(stage) {
  95.         case 0:
  96.             stage0();
  97.             break;
  98.         case 1:
  99.             stage1();
  100.             break;
  101.        
  102.     }
  103.    
  104.     // STAGE 0 : STARTER
  105.     function stage0() {
  106.         // HARVESTERS
  107.         if(harvesters.length < 2) { // if harvesters less than 2, make more
  108.             var newName = Game.spawns['Spawn1'].createCreep([WORK,WORK,CARRY,MOVE], undefined, {role: 'harvester'});
  109.             if(newName!=-6&&newName!=-4) {
  110.                 console.log('Spawning new harvester: ' + newName);
  111.             }
  112.         }
  113.         // BUILDERS
  114.         else if(builders.length < 1) { // if harvesters less than 2, make more
  115.             var newName = Game.spawns['Spawn1'].createCreep([WORK,CARRY,MOVE], undefined, {role: 'builder'});
  116.             if(newName!=-6&&newName!=-4) {
  117.                 console.log('Spawning new builder: ' + newName);
  118.             }
  119.         }
  120.         // UPGRADERS
  121.         else if(upgraders.length < 1) { // if harvesters less than 2, make more
  122.             var newName = Game.spawns['Spawn1'].createCreep([WORK,CARRY,MOVE], undefined, {role: 'upgrader'});
  123.             if(newName!=-6&&newName!=-4) {
  124.                 console.log('Spawning new upgrader: ' + newName);    
  125.             }
  126.         }
  127.         // PROGRESSION CHECKER
  128.         if(harvesters.length >= 2 && builders.length >= 1 && upgraders.length >= 1 && stage == 0) {
  129.             stage++;
  130.             console.log('👍 UPGRADED TO STAGE 1');
  131.         }
  132.         else {
  133.             if((Game.time%modTime)==1) {
  134.                 console.log("Progress to stage 1: Harvesters: " + harvesters.length + " Builders: " + builders.length + " Upgraders: " + upgraders.length);
  135.             }
  136.         }
  137.     }
  138.     // STAGE 0 : STARTER
  139.     function stage1() {
  140.         // HARVESTERS
  141.         if(harvesters.length < 2) { // if harvesters less than 2, make more
  142.             var newName = Game.spawns['Spawn1'].createCreep([WORK,WORK,CARRY,MOVE], undefined, {role: 'harvester'});
  143.             if(newName!=-6&&newName!=-4) {
  144.                 console.log('Spawning new harvester: ' + newName);
  145.             }
  146.         }
  147.         // BUILDERS
  148.         else if(builders.length < 2) { // if harvesters less than 2, make more
  149.             var newName = Game.spawns['Spawn1'].createCreep([WORK,CARRY,MOVE], undefined, {role: 'builder'});
  150.             if(newName!=-6&&newName!=-4) {
  151.                 console.log('Spawning new builder: ' + newName);
  152.             }
  153.         }
  154.         // UPGRADERS
  155.         else if(upgraders.length < 2) { // if harvesters less than 2, make more
  156.             var newName = Game.spawns['Spawn1'].createCreep([WORK,CARRY,MOVE], undefined, {role: 'upgrader'});
  157.             if(newName!=-6&&newName!=-4) {
  158.                 console.log('Spawning new upgrader: ' + newName);    
  159.             }
  160.         }
  161.         // CONSTRUCTION
  162.         Game.rooms.sim.createConstructionSite(24, 25, STRUCTURE_EXTENSION);
  163.        
  164.         // STRUCTURE CHECKER    
  165.         const extensions = Game.spawns['Spawn1'].room.find(FIND_MY_STRUCTURES, {filter: { structureType: STRUCTURE_EXTENSION }});
  166.        
  167.        
  168.         // PROGRESSION CHECKER
  169.         if(harvesters.length >= 2 && builders.length >= 2 && upgraders.length >= 12 && stage == 1 && extensions.length >= 2) {
  170.             stage++;
  171.             stageconstruction=false;
  172.             console.log('👍 UPGRADED TO STAGE 2');
  173.         }
  174.        
  175.         else {
  176.             if((Game.time%modTime)==1) {
  177.                 console.log("Progress to stage 2: Harvesters: " + harvesters.length + " Builders: " + builders.length + " Upgraders: " + upgraders.length);
  178.             }
  179.         }
  180.     }
  181.    
  182.    
  183.     // ASSIGNS ROLES
  184.     for(var name in Game.creeps) { // goes through every creep, reads their role, then runs according script via import
  185.         var creep = Game.creeps[name];
  186.         if(creep.memory.role == 'harvester') {
  187.             roleHarvester.run(creep);
  188.         }
  189.         if(creep.memory.role == 'upgrader') {
  190.             roleUpgrader.run(creep);
  191.         }
  192.         if(creep.memory.role == 'builder') {
  193.             roleBuilder.run(creep);
  194.         }
  195.     }
  196.    
  197.    
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement