Advertisement
Guest User

role_meleeattacker

a guest
Nov 14th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var generalfunctions = require('general.functions');
  2. var vg = require('general_var');
  3.  
  4. module.exports = {
  5.     run: function(creep) {
  6.         generalfunctions.mindedge(creep);
  7.            
  8.             var creeptargets = creep.pos.findClosestByPath(FIND_HOSTILE_CREEPS, {
  9.                     filter: (s) =>  ((s.owner == undefined || !vg.friends.includes(s.owner.username)) &&  (s.getActiveBodyparts(RANGED_ATTACK) > 0 || s.getActiveBodyparts(ATTACK) > 0) ), range: 1, maxRooms: 1});
  10.             if(creeptargets == undefined)
  11.                 var creeptargets = creep.pos.findClosestByPath(FIND_HOSTILE_CREEPS, {
  12.                     filter: (s) =>  ((s.owner == undefined || !vg.friends.includes(s.owner.username)) && s.body != [MOVE]), range: 1, maxRooms: 1});
  13.             if(creeptargets == undefined)
  14.                 var creeptargets = creep.pos.findClosestByPath(FIND_HOSTILE_CREEPS, {
  15.                     filter: (s) =>  (s.owner == undefined || !vg.friends.includes(s.owner.username)), range: 1, maxRooms: 1});
  16.             var structuretargets = creep.pos.findClosestByPath(FIND_HOSTILE_STRUCTURES, {
  17.                 filter: (s) =>  (s.structureType !== STRUCTURE_CONTROLLER  && s.structureType !== STRUCTURE_RAMPART  && !vg.friends.includes(s.owner.username)), range: 1, maxRooms: 1});
  18.             var spawns = creep.pos.findClosestByPath(FIND_HOSTILE_STRUCTURES, {
  19.                 filter: (s) =>  (s.structureType === STRUCTURE_SPAWN && !vg.friends.includes(s.owner.username)), range: 1, maxRooms: 1});
  20.             var tower = creep.pos.findClosestByPath(FIND_HOSTILE_STRUCTURES, {
  21.                 filter: (s) =>  (s.structureType === STRUCTURE_TOWER && !vg.friends.includes(s.owner.username)), range: 1, maxRooms: 1});
  22.            
  23.             if(tower) {
  24.                 creep.say('Tower!');
  25.                 if(creep.attack(tower) == ERR_NOT_IN_RANGE)
  26.                     creep.moveTo(tower, {visualizePathStyle: {stroke: '#b30000', opacity: 0.9, maxRooms: 1, range: 1}});
  27.             }
  28.             else if(creeptargets && creeptargets != '') {
  29.                 creep.say('Creeps!');
  30.                 if(creep.attack(creeptargets) == ERR_NOT_IN_RANGE)
  31.                     creep.moveTo(creeptargets, {visualizePathStyle: {stroke: '#b30000', opacity: 0.9, maxRooms: 1, range: 1}});
  32.             }
  33.             else if(creep.hits < creep.hitsMax) {
  34.                 creep.heal(creep);
  35.                 creep.say('healing me');
  36.             }
  37.             else if(spawns) {
  38.                 creep.say('Spawns!');
  39.                 if(creep.attack(spawns) == ERR_NOT_IN_RANGE)
  40.                     creep.moveTo(spawns, {visualizePathStyle: {stroke: '#b30000', opacity: 0.9, maxRooms: 1, range: 1}});
  41.             }
  42.             else if(structuretargets) {
  43.                 creep.say('Structures!');
  44.                 if(creep.attack(structuretargets) == ERR_NOT_IN_RANGE)
  45.                     creep.moveTo(structuretargets, {visualizePathStyle: {stroke: '#b30000', opacity: 0.9, maxRooms: 1, range: 1}});
  46.             }
  47.             /*else if(Game.getObjectById('5bf012d2e571e82e5ad0a588') && creep.room.name === Game.getObjectById('5bf012d2e571e82e5ad0a588').room.name) {
  48.                 creep.say('MY WALL!');
  49.                 if(creep.attack(Game.getObjectById('5bf012d2e571e82e5ad0a588')) == ERR_NOT_IN_RANGE)
  50.                     creep.moveTo(Game.getObjectById('5bf012d2e571e82e5ad0a588'), {visualizePathStyle: {stroke: '#b30000', opacity: 0.9}, range: 1});
  51.             }*/
  52.             else {
  53.                
  54.                 if(creep.hits < creep.hitsMax) {
  55.                     creep.heal(creep);
  56.                     creep.say('healing me');
  57.                 }
  58.                 else {
  59.                     var target = creep.pos.findClosestByRange(FIND_MY_CREEPS, {
  60.                         filter: (d) => (d.hits < d.hitsMax), range: 3});
  61.                     if(target) {
  62.                         if(creep.heal(target) == ERR_NOT_IN_RANGE)
  63.                             creep.rangedHeal(target);
  64.                     }
  65.                 }      
  66.                
  67.                 //creep.memory.recycle = true;
  68.                 generalfunctions.mindedgemore(creep);
  69.                 var constructionSite = creep.pos.findClosestByPath(FIND_CONSTRUCTION_SITES, {
  70.                     filter: (s) => s.owner.username != 'Kuja'});
  71.                 if(constructionSite != undefined)
  72.                     creep.moveTo(constructionSite, {maxRooms: 1});
  73.             }
  74.        
  75.     }
  76. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement