private Level GetLevelFromIcon(LevelSelectorIcon icon)
    {
        if (!iconsLevelsDict.ContainsKey(icon))
            return null;

        return iconsLevelsDict[icon];
    }
    public void RequestUnlockLevel(Level level)
    {
        if (!level.locked || !levelsIconsDict.ContainsKey(level))
            return;

        LevelSelectorIcon icon = levelsIconsDict[level];
        icon.SetButtonSprite(levelIconsScreen.levelUnlocked);

        level.locked = false;
        
    }
    public void RequestSelectLevel(LevelSelectorIcon levelicon)
    {
        Level level = iconsLevelsDict[levelicon];

        if (level.locked)
            return;

        foreach (Level lv in levels.levels)
        {
            lv.gameObject.SetActive(false);
        }
        levelIconsScreen.gameObject.SetActive(false);
        levels.gameObject.SetActive(true);
        level.gameObject.SetActive(true);
    }
    private void CompleteLevel(Level level)
    {
        level.completed = true;
        nDirkams += level.dirkams;
        dirkams.text = "Dirkams: " + nDirkams.ToString();
        if (level.completeButton)
            level.completeButton.interactable = false;
        foreach(Level lv in level.levelsUnlocked)
        {
            RequestUnlockLevel(lv);
        }
        LevelSelectorIcon icon = levelsIconsDict[level];
        icon.SetButtonSprite(levelIconsScreen.levelCompleted);

        if (CheckAllMandatoryCompleted())
        {
            ToCompletitionScreen();
        }
        else
        {
            BackToLevelSelection();
        }
    }