public GameArea GetAIRoutewayEndPoints(Architecture a, bool nowater)
 {
     GameArea area = new GameArea();
     if (!this.IsFriendly(a.BelongedFaction))
     {
         foreach (Point point in this.ContactArea.Area)
         {
             if (a.IsRoutewayPossible(point) && (!nowater || (base.Scenario.GetTerrainKindByPosition(point) != TerrainKind.水域)))
             {
                 area.AddPoint(point);
             }
         }
     }
     if (area.Count == 0)
     {
         foreach (Point point in this.GetRoutewayStartArea().Area)
         {
             if (a.IsRoutewayPossible(point) && (!nowater || (base.Scenario.GetTerrainKindByPosition(point) != TerrainKind.水域)))
             {
                 area.AddPoint(point);
             }
         }
     }
     if (area.Count == 0)
     {
         foreach (Point point in this.LongViewArea.Area)
         {
             if (a.IsRoutewayPossible(point))
             {
                 area.AddPoint(point);
             }
         }
     }
     return area;
 }