public static HashSet <HexCoord> NeighborHexagons(HexCoord coord, int range = 1) { var ret = new HashSet <HexCoord>(); if (range < 1) { return(ret); } for (int i = 0; i < DeltaCoords.Length; i++) { HexCoord c = coord.Add(DeltaCoords[i]); ret.Add(c); if (range > 1) { ret.UnionWith(NeighborHexagons(c, range - 1)); } } return(ret); }