private static void UnlimitSmoothCamera()
        {
            var scssc = Resources.FindObjectsOfTypeAll <SmoothCameraSmoothnessSettingsController>().FirstOrDefault();

            if (scssc == null)
            {
                return;
            }
            var fovSettings = scssc.transform?.parent?.Find("FieldOfView");

            if (fovSettings == null)
            {
                return;
            }
            var fflsvc = fovSettings.GetComponent <FormattedFloatListSettingsValueController>();

            if (fflsvc == null)
            {
                return;
            }
            var fs = ReflectionUtil.GetPrivateField <float[]>(fflsvc, "_values")?.ToList();

            if (fs == null)
            {
                return;
            }
            for (var f = fs[fs.Count - 1] + 5; f <= 200; f += 5)
            {
                fs.Add(f);
            }
            ReflectionUtil.SetPrivateField(fflsvc, "_values", fs.ToArray());
        }
        private static void OnDidFinishEvent(MainMenuViewController mmvc, MainMenuViewController.MenuButton _)
        {
            var sldvc = Resources.FindObjectsOfTypeAll <StandardLevelDetailViewController>().FirstOrDefault();
            var ldvc  = Resources.FindObjectsOfTypeAll <StandardLevelDetailView>().FirstOrDefault();

            if (!sldvc || !ldvc)
            {
                return;
            }
            var bcscc = ReflectionUtil.GetPrivateField <BeatmapCharacteristicSegmentedControlController>(ldvc, "_beatmapCharacteristicSegmentedControlController");
            var bdscc = ReflectionUtil.GetPrivateField <BeatmapDifficultySegmentedControlController>(ldvc, "_beatmapDifficultySegmentedControlController");

            if (!bcscc || !bdscc)
            {
                return;
            }
            sldvc.didPresentContentEvent += (sldvcController, type) => {
                bcscc.didSelectBeatmapCharacteristicEvent += (controlController, so) => { RefreshButtonsBackgrounds <TextSegmentedControlCellNew>(bdscc); };
                RefreshButtonsBackgrounds <IconSegmentedControlCell>(bcscc);
                RefreshButtonsBackgrounds <TextSegmentedControlCellNew>(bdscc);
            };
            var coverImage           = ReflectionUtil.GetPrivateField <RawImage>(ldvc, "_coverImage");
            var levelInfo            = coverImage.transform.parent;
            var playerStatsContainer = ReflectionUtil.GetPrivateField <GameObject>(ldvc, "_playerStatsContainer");
            var pscLayout            = playerStatsContainer.GetComponent <LayoutElement>();
            var playContainer        = bdscc.transform.parent;
            var levelInfoLayout      = levelInfo.GetComponent <LayoutElement>();

            if (!coverImage || !levelInfo || !playerStatsContainer || !pscLayout || !playContainer || !levelInfoLayout)
            {
                return;
            }
            coverImage.transform.localPosition = new Vector3(0, 0, coverImage.transform.localPosition.z);
            coverImage.transform.localScale    = Vector3.one;
            coverImage.GetComponent <RectTransform>().sizeDelta        = new Vector2(11, 11);
            coverImage.GetComponent <RectTransform>().anchorMin        = new Vector2(0, 0);
            coverImage.GetComponent <RectTransform>().anchorMax        = new Vector2(1, 1);
            coverImage.GetComponent <RectTransform>().anchoredPosition = new Vector2(1.5f, 0);
            coverImage.uvRect = new Rect(0, 0, 1, 1);
            playContainer.SetParent(levelInfo);
            playContainer.localPosition = new Vector3(-1, -52);
            playContainer.GetComponent <Image>().enabled = false;
            pscLayout.transform.SetParent(levelInfo);
            pscLayout.transform.localPosition = new Vector3(0, -10);
            levelInfoLayout.preferredHeight   = 60;
            mmvc.didFinishEvent -= OnDidFinishEvent;
        }
 private static void RefreshButtonsBackgrounds <T>(Component bdscc) where T : SegmentedControlCell
 {
     if (!bdscc)
     {
         return;
     }
     foreach (Transform child in bdscc.transform)
     {
         var controlCell = child.GetComponent <T>();
         if (!controlCell)
         {
             continue;
         }
         var bg = ReflectionUtil.GetPrivateField <Image>(controlCell, "_bgImage");
         if (!bg)
         {
             bg = controlCell.GetComponent <Image>();
         }
         if (bg)
         {
             new UnityTask(ChangeColor(controlCell, bg, Float4.ToColor(config.Value.ButtonColor)));
         }
     }
 }