# Этот файл содержит демонстрацию основных команд Ren'Py.
# Их Вы встретите фактически в каждой игре.

# Сначала идёт блок init, где объявляется многое из того, 
# что будет использовано в игре
init:

    # Здесь объявляются фоновые изображения.
    image bg washington = "washington.jpg"
    image bg whitehouse = "whitehouse.jpg"

    # И изображения персонажей.
    image eileen happy = "eileen_happy.png"
    image eileen vhappy = "eileen_vhappy.png"
    image eileen concerned = "eileen_concerned.png"
    
    # И сами персонажи.
    $ e = Character(u'Эйлин', color="#c8ffc8")


# В обычной игре дальше бы шло:
#
# label start:
#
# Но, поскольку это демонстрация, дальше пойдёт другая метка.

label demo_basics:

    e "Это демонстрация базовых возможностей движка Ren'Py. Можете нажать кнопку в правом верхнем углу, чтобы следить по скрипту."

    "На меня снизошло озарение: Ren'Py поддерживает комментирование."

    e "Ren'Py поддерживает диалоги, при условии, что Вы объявили участвующих в них персонажей. Иначе бы я с Вами не говорила."

    u"Прохожий" "В принципе, объявлять персонажа не обязательно, особенно если он произносит только реплику-другую."
    
    e "Спасибо. Однако, для удобства, тех персонажей, что говорят много, лучше объявить. Кроме того, это многое позволит сделать. Но об этом позднее..."
    
    e "Также Ren'Py поддерживает меню, позволяя игре меняться в соответствии с выбором игрока."


    menu:

        e "Будете ли Вы использовать меню в своих играх?"

        "Да.":
            
            jump about_menus_yes

        "Нет.":

            jump about_menus_no

        "Не знаю.":

            jump about_menus_unsure

label about_menus_yes:
    
    $ about_menus_choice = "yes"
    
    e "Конечно, ведь меню является основным средством взаимодействия с игрой."

    jump about_menus_done
    
label about_menus_no:

    $ about_menus_choice = "no"
    
    e "И такое возможно. Ren'Py использовался для создания ряда линейных игр. Мы называем такие игры кинетическими новеллами."

    jump about_menus_done

label about_menus_unsure:

    $ about_menus_choice = "unsure"
    
    e "Что ж, что бы Вы не решили, Ren'Py сможет это реализовать."

    jump about_menus_done


label about_menus_done:

    e "Ren'Py не был бы движком {b}визуальных{/b} новелл, не поддерживай он вывод изображений."

    scene bg whitehouse
    with dissolve
    
    e "{i}scene{/i} очищает экран и, по желанию, выводит одно изображение как фон."

    show eileen happy
    with dissolve
    
    e "{i}show{/i} показывает изображения игроку."

    show eileen vhappy
    with dissolve
    
    e "Вывод изображения с тем же ярлыком - первой частью имени - как у уже находящегося на экране, заменяет старое изображение выводимым."

    show eileen happy at right
    with dissolve
    
    e "Изображения могут быть выведены в различные места экрана и Вы можете вывести cтолько изображений, сколько пожелаете."

    hide eileen happy
    with dissolve
 
    e "{i}hide{/i} скрывает изображения, хотя с учётом того, что {i}show{/i} заменяет изображения с одинаковым ярлыком, а {i}scene{/i} очищает весь экран, нужда в этом возникает не всегда."

    scene bg washington
    show eileen happy
    with dissolve

    e "Наконец, {i}with{/i} используется для примененения эффектов перехода к выводу изображений."

    e "В принципе, Вы уже можете создавать простые игры, ограничившись использованием того, о чём мы только что говорили."

    e "Но моё описание было бы неполным, не упомяни я что Ren'Py может запоминать данные и принимать решения на их основе."

    if about_menus_choice == "yes":

        e "К примеру, я помню, что Вы решили использовать в своих играх меню."

    elif about_menus_choice == "no":

        e "К примеру, я помню, что Вы не захотели использовать в своих играх меню."

    else:

        e "К примеру, я помню, что ещё Вы не решили, будете ли применять в своих играх меню."

    e "Ren'Py позволяет использовать язык программирования Python для создания сложных вещей."
    
    e "Однако можно вполне неплохо обходиться и без него..."
    
    e "Так что, если Вы этого не желаете, учить Python Вам нужды совсем нет."

    return
