diff --git a/Assets/HexMap.cs b/Assets/HexMap.cs
index 7d54343..7bbd2b3 100644
--- a/Assets/HexMap.cs
+++ b/Assets/HexMap.cs
@@ -202,13 +202,26 @@ public void UpdateHexVisuals()
}
}
+ ///
+ /// Pick hexes around a center one within a given range.
+ /// If range = 0 returns only the centerHex.
+ ///
+ /// The center hex
+ /// The maximum distance between a selected hex and the centerHex
+ /// An unordered array of hexes containing all the selected ones
public Hex[] GetHexesWithinRangeOf(Hex centerHex, int range)
{
+ if(centerHex == null || range < 0)
+ {
+ Debug.LogError("HexMap::GetHexesWithinRangeOf cannot be called with centerHex = " + centerHex + " and range = " + range);
+ return new Hex[] { };
+ }
+
List results = new List();
- for (int dx = -range; dx < range-1; dx++)
+ for (int dx = -range; dx <= range; dx++)
{
- for (int dy = Mathf.Max(-range+1, -dx-range); dy < Mathf.Min(range, -dx+range-1); dy++)
+ for (int dy = Mathf.Max(-range, -dx-range); dy <= Mathf.Min(range, -dx+range); dy++)
{
results.Add( GetHexAt(centerHex.Q + dx, centerHex.R + dy) );
}
diff --git a/Assets/HexMap_Continent.cs b/Assets/HexMap_Continent.cs
index c9ac66b..93b6b3c 100644
--- a/Assets/HexMap_Continent.cs
+++ b/Assets/HexMap_Continent.cs
@@ -28,7 +28,6 @@ override public void GenerateMap()
ElevateArea(x, y, range);
}
-
}
// Add lumpiness Perlin Noise?
@@ -88,7 +87,7 @@ void ElevateArea(int q, int r, int range, float centerHeight = .8f)
{
//if(h.Elevation < 0)
//h.Elevation = 0;
-
+
h.Elevation = centerHeight * Mathf.Lerp( 1f, 0.25f, Mathf.Pow(Hex.Distance(centerHex, h) / range,2f) );
}
}