public void CalculateUpdates(Random rng) { Vector2 variation = Vector2.Zero; foreach (SimpleLink link in Neighbors) { Tile other = (Tile)link.Target; variation += other.Wind; } variation /= Neighbors.Count; variation += VectorUtility.CreateVector(rng.NextDouble() * MathHelper.TwoPi, (float)(rng.NextDouble() * 0.5)); WindUpdate = PrevailingWind + variation; WindUpdate *= 0.5f; }