# В этом файле находится демонстрация некоторых возможностей Ren'Py
# по работе с текстом.

init:
    python:
        # Глобально меняем шрифт, используемый при выводе текста курсивом
        # Нужно для улучшения вида курсива.
        config.font_replacement_map["DejaVuSans.ttf", False, True] = ("DejaVuSans-Oblique.ttf", False, False)
        
        # Импортируем модуль asfont22
        import asfont22

        # Регистрируем sfont из asfont22 как "subfont".
        renpy.register_sfont('subfont', 22,
                             filename="asfont22.png",
                             kerns=asfont22.kerns,
                             spacewidth=4)

    # Объявим персонажей, говорящих, используя subfont.

    # Просто используя subfont.
    $ esub = Character(u"Эйлин",
                       color="#c8ffc8",
                       what_font="subfont",
                       what_black_color="#282")

    $ eslow = Character(u"Эйлин",
                        color="#c8ffc8",
                        what_slow_cps=20, who_font = "artscript.ttf")
                       
    # Используемый в режиме субтитров.
    $ esubtitle = Character(None,
                            what_font="subfont",
                            what_black_color="#282",
                            what_layout="subtitle",
                            what_xalign=0.5,
                            what_text_align=0.5,
                            window_background=None,
                            window_yminimum=0,
                            show_say_vbox_properties=dict(xalign=0.5))
    
    $ definition = Character(None,
                             what_text_align=0.5,
                             window_yfill=True,
                             window_xmargin=20,
                             window_ymargin=30)

#       what_text_align управляет выравниванием текста. 0 = левое, 0.5 = по центру, 1 = правое.
    
label demo_text:

    e "Ren'Py даёт немало контроля над тем, как выглядит текст."

    e "Текстовые тэги позволяют менять внешний вид текста, выводимого на экран."

    e "Текстовые тэги могут сделать текст {b}полужирным{/b}, {i}курсивным{/i}, или {u}подчёркнутым{/u}."

    e "Они могут сделать текст {size=+12}больше{/size} или {size=-8}меньше{/size}."
    
    #e "И даже вывести нужный текст {font=font.ttf}другим шрифтом{/font}."
    
    e "Они позволяют приостановить{w} вывод текста, при желании {p}с переходом на новую строку."

    e "Можно приостановить вывод текста на короткое время, а затем продолжить.{w=1} Вот так."
    
    eslow "Можно даже заставить его автоматически вывести следующую реплику,{nw}"

    with flashbulb
    extend " когда мы достигаем конца блока текста, да ещё и в режиме замедленного вывода."

    
#    e "Они позволяют вставлять изображения в текст{image=exclamation.png} Здорово {image=exclamation.png}"

    e "Они даже могут изменить {color=#f00}цвет{/color} {color=#ff0}выводимого{/color} {color=#0f0}на экран{/color} {color=#0ff}текста{/color}."

    e "Также есть свойства стиля {i}bold{/i}, {i}italic{/i} и {i}underline{/i}, которые можно применить к любому тексту."

    e "{a=define_hyperlink}Гиперссылки{/a} позволяют создавать \"кнопки\" текстовыми средствами."

    e "Если Вы обнаружите, что применяете тэги через слово, Вам, пожалуй, стоит обратиться к свойствам стиля."

    e "Используемые с умом, текстовые теги позволяют усилить впечатления от {b}Вашей{/b} игры."

    e "{u}Используемые{/u} же {i}без{/i} меры, {b}могут{/b} сделать {b}Вашу{/b} игру {color=#333}сложной{/color} {color=#888}для{/color} {color=#ccc}прочтения{/color}."

    e "В конце концов, большая сила требует большой ответственности."

    e "А мы стараемся дать Вам всю силу, что может потребоваться."
    
    e "Дальнейшее непереводимо по техническим причинам."
    show eileen concerned
    e "Мои глубочайшие извинения."
    show eileen happy
    
    esub "For even more control, Ren'Py supports SFonts, image files containing font information."
    
    esub "SFonts let you use fonts you otherwise couldn't, and apply special effects to fonts... like I'm doing now, applying an outline to the font."

    esubtitle "Finally, you can adjust the line breaking algorithm. The subtitle line-breaking algorithm tries to make lines even in length."

    esubtitle "Along with sfonts and the ability to change the text window, this lets us render reasonable subtitles."

    e "Что ж, это всё, что я хотела рассказать о шрифтах и текстовых тэгах."


    return

        
label define_hyperlink:

    definition "Гиперссылка - это кнопка, созданная внутри текста с помощью текстовых тэгов. Гиперссылки идеальны для пояснения значений слов, но их не следует применять вместо меню!"

    return
