import pygame
import pygame_menu
import configparser


def set_difficulty(value: dict, _) -> None:
    """
    Функция сохраняет сложность временную переменную

    :param value: dict - тут лежит, всё что программа знает о сложности

    :param _: мы не знаем, что это такое, если бы мы знали, что это такое, но мы не знаем, что это такое

    :return: None
    """
    global difficulty
    difficulty = value[0][0]


def start_the_game() -> None:
    """
    Функция запуска игры

    :return: None
    """
    config = configparser.ConfigParser()  # создаю объект ConfigParser
    config.read('conf/config.ini')  # читаю файл
    config['Settings']['difficulty'] = difficulty  # перезаписываю сложность
    with open('conf/config.ini', 'w') as configfile:  # открываю файл для записи
        config.write(configfile)  # записываю
    menu.toggle()  # останавливаю меню


def test(value: dict, _):
    print(value)
    if value[0][0] == "Да":
        test = "True"
    else:
        test = "False"
    config = configparser.ConfigParser()  # создаю объект ConfigParser
    config.read('conf/config.ini')  # читаю файл
    config['Settings']['sound'] = test  # перезаписываю сложность
    with open('conf/config.ini', 'w') as configfile:  # открываю файл для записи
        config.write(configfile)  # записываю


difficulty = "Простая"  # временная переменная для сложности
pygame.init()  # запускаю pygame
surface = pygame.display.set_mode((600, 400))  # создаю полотно
mytheme = pygame_menu.themes.THEME_DARK.copy()  # создаю свою тему
mytheme.background_color = pygame_menu.baseimage.BaseImage(image_path='styles/background.jpg')
# натягиваю свой background
menu = pygame_menu.Menu('Welcome', 600, 400, theme=mytheme)  # создаю меню
menu.add.label("Сложность")  # добавляю label
menu.add.selector('', [('Простая', 1), ('Средняя', 2), ('Сложная', 3), ('Проигрывать весело', 4)],
                  onchange=set_difficulty)  # добавляю selector с выбором сложности
menu.add.selector("музыка", [("Да", 1), ("Нет", 1)], onchange=test)
menu.add.button('Play', start_the_game)  # добавляю кнопку начала игры
menu.add.button('Quit', pygame_menu.events.EXIT)  # добавляю кнопку выхода
menu.mainloop(surface)  # запускаю меню
