public void Draw(bool areAllLevelsUnlocked = false)
    {
        //TODO: I think this class knows too much for its own good

        bool isLocked = levelsManager.IsLevelLocked(levelIndex) && !areAllLevelsUnlocked;

        lockedImage.gameObject.SetActive(isLocked);
        starsPanel.gameObject.SetActive(!isLocked);

        if (!isLocked)
        {
            System.UInt32?savedScore = levelsManager.GetLevelSavedScore(levelIndex);
            LevelStates?  savedState = levelsManager.GetLevelSavedState(levelIndex);
            if (savedScore == null || savedState == null)
            {
                Debug.LogError("Something's wrong!");
                return;
            }
            starsPanel.sprite =
                (savedState == LevelStates.WON_ON_FIRST_TRY ? SpriteHolder.FirstTryStarsPanel : SpriteHolder.NeutralStarsPanel);
            starsPanel.SetNativeSize();
            Level level = levelsManager.GetLevel(levelIndex);
            indexText.text = levelIndex.ToString();
            // text.text = level.DisplayName + "\n SCORE " + savedScore.ToString() + "\n";
            starsImage.sprite = SpriteHolder.GetStarsSprite(level.GetNumberOfStars((int)savedScore));
        }
    }
        protected override void OnStartShowing()
        {
            UpdateProgress();
            levelText.SetText($"Level: {LevelsManager.GetLevel()}");

            holder.SetPositionY(500);
            progress.SetPositionY(-400);
        }
        private void UpdateTexts()
        {
            hpText.SetText($"xp: {HPManager.GetHP()}");
            levelText.SetText($"level: {LevelsManager.GetLevel()}");

            float hpWidth    = hpText.GetTextComponent().preferredWidth;
            float levelWidth = levelText.GetTextComponent().preferredWidth;

            float fullSize = hpWidth + knobWidth + levelWidth;

            float hpPos    = -fullSize / 2 + hpWidth / 2;
            float knobPos  = hpPos + hpWidth / 2 + knobWidth / 2;
            float levelPos = knobPos + knobWidth / 2 + levelWidth / 2;

            hpText.SetPositionX(hpPos);
            knob.SetPositionX(knobPos);
            levelText.SetPositionX(levelPos);
        }