Advertisement
nevrdid

pastFind_dynamic

Dec 14th, 2016
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. var pathFind = {
  3.      
  4.     run : function (creep){
  5.        
  6.         var Goal = Game.getObjectById(creep.memory.targetId);
  7.         if(Goal === null){
  8.             return "";
  9.         }
  10.         else{
  11.             goal = Goal.pos;
  12.         };
  13.        
  14.        
  15.        
  16.         if(creep.room.name !== Goal.room.name){
  17.            
  18.             /**if(creep.memory.route === undefined){
  19.                 creep.memory.
  20.                 **/
  21.                 var route = Game.map.findRoute(creep.room,goal,{
  22.                     routeCallback(roomName){
  23.                         if(Memory.whiteList[roomName] === "Closed" ){
  24.                             return Infinity
  25.                         }
  26.                         return 1
  27.                     }
  28.                 });
  29.                 /**
  30.                 creep.memory.routeSteep = 0;
  31.             }
  32.             else{
  33.                 goal = creep.pos.findClosestByPath(creep.memory.route[creep.memory.routeSteep].exit);
  34.                 if(creep.room !=creep.memory.oldRoom && creep.room != creep.memory.route[creep.memory.routeSteep-1]){
  35.                     creep.memory.routeSteep +=1;
  36.                 }
  37.             }
  38.             **/
  39.             if(route.length){
  40.                 goal =  creep.pos.findClosestByPath(route[0].exit);
  41.             }
  42.            
  43.            
  44.         }
  45.         /**
  46.         else{
  47.             delete creep.memory.route;
  48.         }
  49.         **/
  50.         creep.memory.oldRoom = creep.room;
  51.            
  52.         var ret = creep.room.findPath(creep.pos, goal, {ignoreCreeps: true});
  53.        
  54.         if(ret[0] != undefined){
  55.             let R = 0;
  56.             while(R < ret.length ){
  57.                
  58.                 if(creep.room.lookForAt(LOOK_CREEPS,ret[R].x,ret[R].y).length){
  59.                    
  60.                     ret = creep.room.findPath(creep.pos, goal, {ignoreCreeps: false});
  61.                      
  62.                     break;
  63.                 }
  64.                 R++
  65.             }
  66.             return ret;
  67.            
  68.         }
  69.         else{
  70.             ret = creep.room.findPath(creep.pos, goal, {ignoreCreeps: true});
  71.             if(ret[0] != undefined){
  72.                 return ret;
  73.             }
  74.         }
  75.        
  76.        
  77.         return "";
  78.     }
  79.  };
  80.  
  81.  module.exports = pathFind;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement