My personal screeps.com scripts, various branches/tags for various states.

role.builder.js 938B

123456789101112131415161718192021222324252627282930313233
  1. var roleBuilder = {
  2. /** @param {Creep} creep **/
  3. run: function(creep) {
  4. if(creep.memory.building && creep.carry.energy == 0) {
  5. creep.memory.building = false;
  6. creep.say('harvesting');
  7. }
  8. if(!creep.memory.building && creep.carry.energy == creep.carryCapacity) {
  9. creep.memory.building = true;
  10. creep.say('building');
  11. }
  12. if(creep.memory.building) {
  13. var targets = creep.room.find(FIND_CONSTRUCTION_SITES);
  14. if(targets.length) {
  15. if(creep.build(targets[0]) == ERR_NOT_IN_RANGE) {
  16. creep.moveTo(targets[0]);
  17. }
  18. }
  19. }
  20. else {
  21. var sources = creep.room.find(FIND_SOURCES);
  22. if(creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) {
  23. creep.moveTo(sources[0]);
  24. }
  25. }
  26. }
  27. };
  28. module.exports = roleBuilder;