Example #1
0
 public List<Unit> GetAllNeighborUnits(Unit unit, List<Unit> neighborUnits, bool enableOnly)
 {
     if (neighborUnits == null) {
         neighborUnits = new List<Unit>();
     }
     foreach ( Unit neighbor in unit.GetNeighborUnits(enableOnly) ) {
         if ( !neighborUnits.Contains(neighbor) ) {
             neighborUnits.Add(neighbor);
             List<Unit> nextNeighbors = this.GetAllNeighborUnits(neighbor, neighborUnits, enableOnly);
             foreach (Unit nextNeighbor in nextNeighbors) {
                 if (!neighborUnits.Contains(nextNeighbor) && nextNeighbor != unit) neighborUnits.Add (nextNeighbor);
             }
         }
     }
     return neighborUnits;
 }