# Этот файл содержит код, демонстрирующий работу DynamicDisplayable,
# позволяющего части экрана меняться без внешнего воздействия.

init:
    python:

        # Эта функция проведёт отсчёт установленной продолжительности. 
        # Текст будет белым, пока не останется 5 секунд, затем красным до 0.0, 
        # а потом, когда время истекло, будет мигать 0.0. 
        
        def countdown(st, at, length=0.0):

            remaining = length - st

            if remaining > 5.0:
                return Text("%.1f" % remaining, color="#fff", size=72), .1
            elif remaining > 0.0:
                return Text("%.1f" % remaining, color="#f00", size=72), .1
            else:
                return anim.Blink(Text("0.0", color="#f00", size=72)), None

    # Показать отсчёт в течение 10 секунд.
    image countdown = DynamicDisplayable(countdown, length=10.0)


label demo_dynamic:

    e "Функция {i}DynamicDisplayable{/i} позволяет менять то, что изображено, по ходу дела."

    show countdown at Position(xalign=.1, yalign=.1)
    
    e "Это позволяет изображать отсчёты и линейки прогресса."

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

    hide countdown
    with dissolve

    return

    
