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

init:
    python:
        # Глобально меняем шрифт, используемый при выводе текста курсивом
        # Нужно для улучшения вида курсива.
        config.font_replacement_map["DejaVuSans.ttf", False, True] = ("DejaVuSans-Oblique.ttf", False, False)
    
    # Регистрируем sfont.
    $ renpy.register_sfont('new_sfont', 22,
                           filename="new_sfont.png",
                           spacewidth=6)

    # Объявим пресонажа, использующего sfont.
    $ esfont = Character("Eileen",
                         color="#c8ffc8",
                         what_font="new_sfont")

    # Замедленный вывод.
    $ eslow = Character(u"Айлин",
                        color="#c8ffc8",
                        what_slow_cps=20)

    # Текст с контуром.
    $ eoutline = Character(u"Айлин",
                           color="#c8ffc8",
                           what_outlines=[ (1, "#282") ])
    
    # Используемый в режиме субтитров.
    $ esubtitle = Character(None,
                            what_size=28,
                            what_outlines=[(3, "#0008", 2, 2), (3, "#282", 0, 0)],
                            what_layout="subtitle",
                            what_xalign=0.5,
                            what_text_align=0.5,
                            window_background=None,
                            window_yminimum=0,
                            window_xfill=False,
                            window_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 = правое.

    # Розовый стиль, который мы используем как новый текстовый тэг.
    $ style.pink = Style(style.default)
    $ style.pink.color = "#ffc0c0"
    
label demo_text:
    
    e "Ren'Py даёт немало контроля над тем, как выглядит текст."

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

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

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

    e "Они позволяют приостановить{w} вывод текста, при желании {p}с переходом на новую строку."

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

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

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

    e "Также есть свойства стиля {i}bold{/i}, {i}italic{/i}, {s}strikethrough{/s} и {i}underline{/i}, которые можно применить к любому тексту."
    
    e "{a=define_hyperlink}Гиперссылки{/a} позволяют создавать \"кнопки\" текстовыми средствами."

    e "Вы можете создать свои текстовые теги, {=pink}использующие определённый Вами стиль.{/=pink}"
    
    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 "Есть ещё пара изменений вида текста, не соотносящихся с текстовыми тэгами."

    eoutline "Свойство Outlines персонажа позволяет выводить контуры вокруг текста."

    eoutline "Можно выводить более чем один контур, каждый со своим цветом и сдвигом."

    esubtitle "Так, сейчас демонстрируется текст с двумя контурами вокруг белых букв."

    esubtitle "Нижний -- полупрозрачный чёрный с небольшим сдвигом, а верхний - зелёный."
    
    esubtitle "Скрывая окно и изменив способ отображения, нам удалось создать ощущение субтитров."

    esubtitle "Это может довольно интересно смотреться в игре..."
    
    ##  e "Дальнейшее непереводимо по техническим причинам."
    ##  show eileen concerned
    ##  e "Мои глубочайшие извинения."
    ##  show eileen happy
        
    ##  esfont "For even more control, Ren'Py supports SFonts, image files containing font information."
    
    ##  esfont "SFonts let you use fonts you otherwise couldn't, and apply special effects to fonts using your favorite image editor."

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


    return

        
label define_hyperlink:

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

    return
