Beispiel #1
0
 private bool AI_CheckNextStep(Tile start,PhysicalObject obj,bool flee)
 {
     List<int> dirs = new List<int>();
     List<int> sideways_directions = new List<int>();
     AI_Step_Build_Direction_Lists(start,obj,flee,dirs,sideways_directions);
     List<int> partially_blocked_dirs = new List<int>();
     Tile t = null;
     foreach(int i in dirs){
         t = start.TileInDirection(i);
         if(t.Is(TileType.RUBBLE)){ //other tiles might go here eventually
             partially_blocked_dirs.Add(i);
         }
         else{
             if(AI_WillingToMove(start,t,null)){
                 return true;
             }
         }
     }
     foreach(int i in partially_blocked_dirs){
         if(AI_WillingToMove(start,TileInDirection(i),null)){
             return true;
         }
     }
     return false;
 }