# Здесь содержится код, реализующий выбор раздела демонстрации.
# Применяется немного UI кода, так что это может быть несколько
# сложным для неподготовленного пользователя.

init:
    python:
        demos_main = [
            ("demo_basics", u"Основы", "5.6.3"),
            ("demo_experience", u"Взаимодействие игрока с игрой", "5.6.3"), 
            ("demo_transitions", u"Эффекты перехода", "5.6.6"),
            ("demo_movement", u"Позиции и Перемещения", "6.7.0"),
            ("demo_animation", u"Анимация", "6.2.0"),
            ("demo_multimedia", u"Мультимедийные возможности", "5.6.3"),
            ("demo_imageops", u"Операции над изображениями", "6.5.0"),
            ("demo_ui", u"Взаимодействие с игроком", "6.5.0"),
            ("demo_text", u"Шрифты и текстовые тэги", "6.6.2"),
            ("demo_character", u"Персонажи", "6.2.0"),  
            ("demo_advanced", u"Продвинутые возможности", "6.7.0"),
            ]

        # Меняется на это при выборе продвинутых возможностей
        demos_advanced = [
            ("demo_layers", u"Слои и продвинутое отображение", "5.6.5"),
            ("demo_nvlmode", u"Режим NVL", "6.4.0"),
            ("demo_dynamic", u"Динамические визуальные объекты", "5.6.3"),
            ("demo_minigame", u"Поддержка мини-игр", "6.3.2"),
            ("demo_random", u"Генерация случайных чисел и т.д.", "6.5.0"),
            ("demo_persistent", u"Долговременные Данные", "6.7.0"),
            ]
        
        def demos_show(demos_info, nevermind):

            renpy.choice_for_skipping()
            
            ui.vbox(xpos=250, ypos=225, yanchor=0.5)

            for label, name, ver in demos_info:
                ui.button(style='button',
                          clicked=ui.returns(label),
                          xminimum=530,
                          left_padding=20)
                ui.hbox()
                ui.text(name, style='button_text', size=22, minwidth=440)
                ui.text(ver, style='button_text', size=22)
                ui.close()

            ui.text(" ")

            ui.button(style='button',
                      clicked=ui.returns(False),
                      xminimum=530,
                      left_padding=20)

            ui.text(nevermind, style='button_text', size=22, minwidth=450)

            ui.close()

            rfd = renpy.roll_forward_info()        
            store.result = ui.interact(roll_forward=rfd)
            renpy.checkpoint(store.result)
            
        
label demos:

    # Первый раз здесь?
    $ demo_first_time = True
    
    show eileen happy at left
    with move

label demo_repeat:
    
    # Скрываем кнопку вызова редактора.
    $ show_editor_button = False
    
    python hide:

        if demo_first_time:
            e(u"О чём бы Вы хотели узнать?", interact=False)
        else:
            e(u"Есть ещё что-нибудь, о чём бы Вы хотели узнать?", interact=False)

        store.demo_first_time = False
            
        demos_show(demos_main, u"На сегодня хватит.")
        
    # Показываем кнопку вызова редактора.
    $ show_editor_button = True

    # Если result = False, значит игрок нажал на кнопку "На сегодня хватит."
    # и нам следует вернуться в основной скрипт.
    if result == False:

        show eileen happy at center
        with move

        return

    # Если result = demo_advanced, просто вызываем его без
    # переустановки экрана.
    elif result == "demo_advanced":

        call demo_advanced from _call_demo_advanced_1

        jump demo_repeat
        
    else:

        show eileen happy
        with move
                
        # Иначе вызываем результат.
        call expression result from _call_result_1

        show eileen happy at left
        with move
        
        # И снова показываем меню.
        jump demo_repeat


label demo_advanced:
    
    # Скрываем кнопку вызова редактора.
    $ show_editor_button = False
    
    python hide:

        e(u"О какой из продвинутых возможностей Вы бы хотели узнать?", interact=False)

        demos_show(demos_advanced, u"Неважно.")
        
    # Возвращаем Эйлин обратно в центр экрана, если, конечно,
    # не уходим в демонстрации продвинутых возможностей.

    # Показываем кнопку вызова редактора.
    $ show_editor_button = True

    # Если result = False, значит игрок нажал на кнопку "На сегодня хватит."
    # и нам следует вернуться в основной скрипт.
    if result == False:
        
        return

    else:

        show eileen happy
        with move
                
        # Иначе вызываем результат.
        call expression result from _call_result_2

        show eileen happy at left
        with move
        
        # И снова показываем меню.
        jump demo_advanced


    
