Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var roleRangedAttack = {
- run:function(creep){
- if(creep.ticksToLive<800 && creep.memory.renew){
- var spawn = Game.rooms[creep.memory.home].find(FIND_MY_SPAWNS)[0];
- creep.moveTo(spawn, {visualizePathStyle: {stroke: '#ff00ff'}});
- if(creep.memory.status !== "renewing"){
- creep.memory['status'] = 'renewing'
- creep.say('🔄 renew');
- }
- } else {
- if(creep.memory['status']==="renewing" && creep.ticksToLive<1200){return};
- var target = creep.pos.findInRange(FIND_HOSTILE_CREEPS,3);
- if(target.length === 0){
- var target = creep.pos.findClosestByPath(FIND_HOSTILE_CREEPS);
- if(target){
- creep.moveTo(target,{visualizePathStyle: {stroke: '#ff0000'}});
- if(creep.memory.status !== "engaging"){
- creep.say("⚔ engaging");
- creep.memory.status = 'engaging';
- }
- creep.memory.status = 'engaging';
- } else{
- target = creep.room.find(FIND_HOSTILE_CONSTRUCTION_SITES);
- if(target){
- target = creep.pos.findInRange(FIND_HOSTILE_CONSTRUCTION_SITES,3);
- if(target){
- creep.rangedAttack(target[0]);
- } else {
- creep.moveTo(creep.pos.findClosestByPath(FIND_HOSTILE_CONSTRUCTION_SITES));
- }
- } else {
- target = creep.room.find(FIND_HOSTILE_STRUCTURES);
- if(target){
- target = creep.pos.findInRange(FIND_HOSTILE_STRUCTURES,3);
- if(target){
- creep.rangedAttack(target[0]);
- } else {
- creep.moveTo(creep.pos.findClosestByPath(FIND_HOSTILE_STRUCTURES));
- }
- } else {
- if(creep.memory.status !== "idle"){
- creep.memory.status = 'idle';
- creep.say('❄ Idle');
- }
- creep.moveTo(Game.flags["Mil-Field"],{visualizePathStyle: {stroke: '#ffff00'}})
- }
- }
- }
- } else {
- if(creep.rangedAttack(target[0]) !== ERR_NOT_IN_RANGE){
- if(creep.memory.status !== "attacking"){
- creep.say("⚔ attacking");
- creep.memory.status = 'attacking';
- }
- }
- }
- }
- }
- }
- module.exports = roleRangedAttack;
Advertisement
Add Comment
Please, Sign In to add comment