public static Position GetRandomPassablePosition(this IZone zone) { Position position; bool isPassable; do { position = zone.GetRandomIslandPosition(); isPassable = zone.Terrain.IsPassable(position); } while (!isPassable); return(position); }