SWAG98

screeps ranged-assasult unit script

Mar 4th, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var roleRangedAttack = {
  2.     run:function(creep){
  3.         if(creep.ticksToLive<800 && creep.memory.renew){
  4.             var spawn = Game.rooms[creep.memory.home].find(FIND_MY_SPAWNS)[0];
  5.             creep.moveTo(spawn, {visualizePathStyle: {stroke: '#ff00ff'}});
  6.             if(creep.memory.status !== "renewing"){
  7.                 creep.memory['status'] = 'renewing'
  8.                 creep.say('🔄 renew');
  9.             }
  10.         } else {
  11.             if(creep.memory['status']==="renewing" && creep.ticksToLive<1200){return};
  12.             var target = creep.pos.findInRange(FIND_HOSTILE_CREEPS,3);
  13.             if(target.length === 0){
  14.                 var target = creep.pos.findClosestByPath(FIND_HOSTILE_CREEPS);
  15.                 if(target){
  16.                     creep.moveTo(target,{visualizePathStyle: {stroke: '#ff0000'}});
  17.                     if(creep.memory.status !== "engaging"){
  18.                         creep.say("⚔ engaging");
  19.                         creep.memory.status = 'engaging';
  20.                     }
  21.                     creep.memory.status = 'engaging';
  22.                 } else{
  23.                     target = creep.room.find(FIND_HOSTILE_CONSTRUCTION_SITES);
  24.                     if(target){
  25.                         target = creep.pos.findInRange(FIND_HOSTILE_CONSTRUCTION_SITES,3);
  26.                         if(target){
  27.                             creep.rangedAttack(target[0]);
  28.                         } else {
  29.                             creep.moveTo(creep.pos.findClosestByPath(FIND_HOSTILE_CONSTRUCTION_SITES));
  30.                         }
  31.                     } else {
  32.                         target = creep.room.find(FIND_HOSTILE_STRUCTURES);
  33.                         if(target){
  34.                             target = creep.pos.findInRange(FIND_HOSTILE_STRUCTURES,3);
  35.                             if(target){
  36.                                 creep.rangedAttack(target[0]);
  37.                             } else {
  38.                                 creep.moveTo(creep.pos.findClosestByPath(FIND_HOSTILE_STRUCTURES));
  39.                             }
  40.                         } else {
  41.                             if(creep.memory.status !== "idle"){
  42.                                 creep.memory.status = 'idle';
  43.                                 creep.say('❄ Idle');
  44.                             }
  45.                             creep.moveTo(Game.flags["Mil-Field"],{visualizePathStyle: {stroke: '#ffff00'}})
  46.                         }
  47.                     }
  48.                 }
  49.             } else {
  50.                 if(creep.rangedAttack(target[0]) !== ERR_NOT_IN_RANGE){
  51.                     if(creep.memory.status !== "attacking"){
  52.                         creep.say("⚔ attacking");
  53.                         creep.memory.status = 'attacking';
  54.                     }
  55.                 }
  56.             }
  57.         }
  58.     }
  59. }
  60. module.exports = roleRangedAttack;
Advertisement
Add Comment
Please, Sign In to add comment