Advertisement
Guest User

Untitled

a guest
Jul 20th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.56 KB | None | 0 0
  1. var roleHarvester = {
  2.  
  3. /** @param {Creep} creep **/
  4. run: function(creep) {
  5.  
  6. switch(creep.memory.State)
  7. {
  8. case "Harvesting":
  9. {
  10. if(creep.carry.energy < creep.carryCapacity)
  11. {
  12. var source = creep.pos.NearestSource();
  13. if(creep.harvest(source) == ERR_NOT_IN_RANGE)
  14. {
  15. creep.moveTo(source);
  16. }
  17.  
  18. }
  19. else
  20. {
  21. creep.memory.State = "DroppingOffResources";
  22. }
  23. break;
  24. }
  25. case "DroppingOffResources":
  26. {
  27. if (creep.carry.energy == 0)
  28. {
  29. creep.memory.State = "Harvesting";
  30. }
  31. if(creep.transfer(Game.spawns['Spawn1'], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE)
  32. {
  33. creep.moveTo(Game.spawns['Spawn1']);
  34. }
  35. if(creep.transfer(creep.pos.findNearestFillableExtension(), RESOURCE_ENERGY) == ERR_NOT_IN_RANGE)
  36. {
  37. creep.moveTo(creep.pos.findNearestFillableExtension());
  38. break;
  39. }
  40. if ( creep.room.energyAvailable == creep.room.energyCapacityAvailable)
  41. {
  42. creep.memory.State = "Repairing";
  43. }
  44.  
  45. break;
  46. }
  47. case "Building":
  48. {
  49. if (creep.carry.energy == 0)
  50. {
  51. creep.memory.State = "Harvesting";
  52. }
  53. var currentTarget = creep.pos.findClosestByRange(FIND_CONSTRUCTION_SITES);
  54. if (currentTarget)
  55. {
  56. var result = creep.build(currentTarget);
  57. creep.room.visual.line(creep.pos, currentTarget.pos,{color: 'red'});
  58. var Percent = (currentTarget.progress/currentTarget.progressTotal)*100;
  59. var Stringer = 'Building - ' + Percent + '%';
  60. creep.room.visual.text(Stringer,currentTarget.pos.x+1,currentTarget.pos.y,{align: 'left'});
  61. if(result == ERR_NOT_IN_RANGE)
  62. {
  63. creep.moveTo(currentTarget);
  64. creep.say('Building.');
  65. }
  66. }
  67. else
  68. {
  69. creep.memory.State = "Upgrading";
  70. }
  71. break;
  72. }
  73. case "Repairing":
  74. {
  75. var RepairTarget = creep.pos.NearestRepairableStructure();
  76. if (RepairTarget)
  77. {
  78. var Result = creep.repair(RepairTarget);
  79. var Percent = (RepairTarget.hits/RepairTarget.hitsMax)*100;
  80. var Stringer = 'Repairing - ' + Percent + '%';
  81. creep.room.visual.text(Stringer,RepairTarget.pos.x+1,RepairTarget.pos.y,{align: 'left'});
  82. if (Result == ERR_NOT_IN_RANGE)
  83. {
  84. creep.moveTo(RepairTarget);
  85. creep.room.visual.line(creep.pos,RepairTarget.pos,{color: 'red'});
  86. creep.say('crm');
  87. return;
  88. }
  89. if (Result == 0)
  90. {
  91. creep.say('Repairing');
  92. return;
  93. }
  94. }
  95. else
  96. {
  97. creep.memory.State = "Building";
  98. }
  99. break;
  100. }
  101. case "Fortifying":
  102. {
  103. break;
  104. }
  105. case "Upgrading":
  106. {
  107. if (creep.carry.energy == 0)
  108. {
  109. creep.memory.State = "Harvesting";
  110. }
  111. if(creep.upgradeController(creep.room.controller) == ERR_NOT_IN_RANGE) {
  112. creep.moveTo(creep.room.controller);
  113. creep.say('Moving.');
  114. }
  115. else
  116. {
  117. creep.say("Upgrading.");
  118. }
  119. break;
  120. }
  121. default:
  122. {
  123. creep.memory.State = "Harvesting";
  124. break;
  125. }
  126. }
  127.  
  128.  
  129. }
  130.  
  131. };
  132.  
  133. module.exports = roleHarvester;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement