private IEnumerator SaveSlotButton_AnimateToSlotState(On.UnityEngine.UI.SaveSlotButton.orig_AnimateToSlotState orig, SaveSlotButton self, SlotState nextState)
        {
            yield return(orig(self, nextState));

            //probably a better way to wait for the transition to end but good enough TM
            yield return(new WaitForSeconds(0.8f));

            string filepath = Application.persistentDataPath + GetLockFilename((int)self.saveSlot);

            if (File.Exists(filepath))
            {
                self.clearSaveButton.alpha        = 0;
                self.clearSaveButton.interactable = false;
                self.clearSaveButton.gameObject.SetActive(false);
                self.StartCoroutine(_uim.FadeOutCanvasGroup(self.clearSaveButton));
            }

            yield break;
        }
        public void Update()
        {
            if (scene != Constants.MENU_SCENE)
            {
                return;
            }

            float t = Time.realtimeSinceStartup;

            if (_uim.menuState != MainMenuState.SAVE_PROFILES)
            {
                MoreSaves.PageLabel.CrossFadeAlpha(0, 0.25f, false);

                return;
            }

            _ih = _ih ? _ih : _uim.GetAttr <UIManager, InputHandler>("ih");

            HeroActions heroActions = _ih.inputActions;

            bool updateSaves = false;

            bool holdingLeft  = heroActions.paneLeft.IsPressed;
            bool holdingRight = heroActions.paneRight.IsPressed;
            bool pressedDN    = heroActions.dreamNail.WasPressed;

            if (pressedDN)
            {
                if (_selectedSaveSlot != null)
                {
                    string filepath = Application.persistentDataPath + GetLockFilename((int)_selectedSaveSlot.saveSlot);
                    if (File.Exists(filepath))
                    {
                        _selectedSaveSlot.StartCoroutine(_uim.FadeInCanvasGroup(_selectedSaveSlot.clearSaveButton));
                        File.Delete(filepath);
                    }
                    else
                    {
                        _selectedSaveSlot.StartCoroutine(_uim.FadeOutCanvasGroup(_selectedSaveSlot.clearSaveButton));
                        FileStream fs = File.Create(filepath);
                        fs.Close();
                    }
                }
            }

            if (heroActions.paneRight.WasPressed && t - _lastInput > 0.05f)
            {
                _firstInput = t;
                _queueRight++;
            }

            if (heroActions.paneLeft.WasPressed && t - _lastInput > 0.05f)
            {
                _firstInput = t;
                _queueLeft++;
            }

            if (_queueRight == 0 && holdingRight && t - _firstInput > INPUT_WINDOW)
            {
                _queueRight = 1;
            }
            if (_queueLeft == 0 && holdingLeft && t - _firstInput > INPUT_WINDOW)
            {
                _queueLeft = 1;
            }

            if (_pagesHidden || !_pagesHidden && t - _lastPageTransition > TRANSISTION_TIME)
            {
                if (_queueRight > 0 && t - _lastInput > INPUT_WINDOW / 2)
                {
                    _lastInput    = t;
                    _currentPage += _queueRight;
                    _queueRight   = 0;
                    updateSaves   = true;
                }

                if (_queueLeft > 0 && t - _lastInput > INPUT_WINDOW / 2)
                {
                    _lastInput    = t;
                    _currentPage -= _queueLeft;
                    _queueLeft    = 0;
                    updateSaves   = true;
                }

                _currentPage %= _maxPages;

                if (_currentPage < 0)
                {
                    _currentPage = _maxPages - 1;
                }

                MoreSaves.PageLabel.text = $"Page {_currentPage + 1}/{_maxPages}";
            }

            if (!_pagesHidden && updateSaves && t - _lastPageTransition > TRANSISTION_TIME)
            {
                _lastPageTransition = t;
                _pagesHidden        = true;
                HideAllSaves();
            }

            if (_pagesHidden && t - _lastInput > INPUT_WINDOW && t - _lastPageTransition > TRANSISTION_TIME)
            {
                _lastPageTransition = t;
                _pagesHidden        = false;
                ShowAllSaves();
            }

            if (t - _lastPageTransition < TRANSISTION_TIME * 2)
            {
                return;
            }

            if (_pagesHidden || Slots.All(x => x.state != HIDDEN))
            {
                MoreSaves.PageLabel.CrossFadeAlpha(1, 0.25f, false);
            }
            else
            {
                MoreSaves.PageLabel.CrossFadeAlpha(0, 0.25f, false);
            }
        }