
]c           @  s.  d  d l  m Z d  d l Z d  d l Z d  d l m Z m Z d  d l Z	 d  d l
 Z
 d   Z i  Z i  Z d   Z e d  Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d e j j j f d     YZ  d e j j j f d     YZ! d e j j j f d     YZ" d e j j j f d     YZ# d e j j j f d     YZ$ e	 j% e	 j& e	 j' e	 j( f Z) d e j j j* f d     YZ+ d d  e, d!  Z- d" e+ f d#     YZ. d$ e/ f d%     YZ0 e, a1 e a2 e, a3 g  a4 g  a5 d&   Z6 d'   Z7 d( e j8 j8 j9 f d)     YZ: i  Z; d* e j/ j< f d+     YZ= d, e j j> j? f d-     YZ@ d. e j j jA f d/     YZB d0 e jC jD f d1     YZE d2 e j j j f d3     YZF d4 e j j> j? f d5     YZG d6 e j j> j? f d7     YZH d S(8   i(   t   print_functionN(   t   rendert   Renderc         C  s  t  |  t t f  rP |  s d Sd d j g  |  D] } t | |  ^ q/  d S|  t j j k ry t t j j |  |  S|  t j j k r t t j j |  |  S|  d& k r d S|  j
 d  } | d d k r | r d t j t | d	  f Sd Sn  | d d
 k r1| r*d t j t | d	  f Sd Sn  | d d k sQ| d d k rUd Sd d d d d d d d h } t   } x* | d | k r| j | j d   qWd j |  }  d | k rt } n d | k rt } n  | rd t j } n d t j } d | k r| d 7} n
 | d 7} |  d' k rhd | k rT| d t j 7} qh| d t j 7} n  |  d( k rd | k r| d t j 7} q| d t j 7} n  |  d) k rd | k r| d t j 7} q| d t j 7} n  |  d* k r7d | k r| d t j 7} n  d | k r7| d t j 7} q7n  t |  d	 k rt | d  d	 k rt j j r~t d" |    qd Sn  | d# | d 7} nP | d d$ k rt j j rt d" |    qd Sn  | d% t t j |   7} | S(+   s   
    Compiles a keymap entry into a python expression.

    keydown determines if we are dealing with keys going down (press),
    or keys going up (release).
    s   (False)t   (s    or t   )t   _i    t	   mousedowns#   (ev.type == %d and ev.button == %d)i   t   mouseupt   joyt   padt   keydownt   keyupt   repeatt   altt   metat   shiftt   noshiftt   ctrls   (ev.type == %ds    and (ev.repeat)s    and (not ev.repeat)t   K_LALTt   K_RALTs    and (ev.mod & %d)s    and not (ev.mod & %d)t   K_LGUIt   K_RGUIt   K_LCTRLt   K_RCTRLt   K_LSHIFTt   K_RSHIFTs   Invalid key specifier %ss    and ev.unicode == %r)t   Ks    and ev.key == %d)N(   s   K_LALTs   K_RALT(   s   K_LGUIs   K_RGUI(   s   K_LCTRLs   K_RCTRL(   s   K_LSHIFTs   K_RSHIFT(   t
   isinstancet   listt   tuplet   joint   compile_eventt   renpyt   configt   keymapt   default_keymapt   Nonet   splitt   pygamet   MOUSEBUTTONDOWNt   intt   MOUSEBUTTONUPt   sett   addt   popt   Truet   Falset   KEYDOWNt   KEYUPt   KMOD_ALTt	   KMOD_METAt	   KMOD_CTRLt
   KMOD_SHIFTt   lent	   developert	   Exceptiont   getattrt	   constants(   t   keyR
   t   it   partt	   MODIFIERSt	   modifierst   rv(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR   $   s    	1 			
c           C  s   t  j   t j   d S(   s   
    :doc: other

    Clears the keymap cache. This allows changes to :var:`config.keymap` to
    take effect without restarting Ren'Py.
    N(   t   event_cachet   cleart   keyup_cache(    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   clear_keymap_cache   s    
c         K  s   t  j j s d St |  t t f  s1 |  g }  n  i |  d 6| d 6} | j |  t j j	 t  j j
 j |  } t j j |  d S(   sL  
    :doc: other

    Queues an event with the given name. `Name` should be one of the event
    names in :var:`config.keymap`, or a list of such names.

    `up`
        This should be false when the event begins (for example, when a keyboard
        button is pressed.) It should be true when the event ends (when the
        button is released.)

    The event is queued at the time this function is called. This function will
    not work to replace an event with another - doing so will change event order.
    (Use :var:`config.keymap` instead.)

    This method is threadsafe.
    Nt
   eventnamest   up(   R    t   displayt	   interfaceR   R   R   t   updateR&   t   eventt   Eventt   coret	   EVENTNAMEt   post(   t   nameRE   t   kwargst   datat   ev(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   queue_event   s    c         C  s   |  j  t j j j k r9 | |  j k r5 |  j r5 t St St	 j
 | d  } | d k r t d t | t  t    } | t	 | <n  | |   S(   s#  
    :doc: udd_utility

    Returns true if the pygame event `ev` matches `keysym`

    `keysym`
        One of:

        * The name of a keybinding in :var:`config.keymap`.
        * A keysym, as documented in the :ref:`keymap` section.
        * A list containing one or more keysyms.
    s   lambda ev : N(   t   typeR    RF   RK   RL   RD   RE   R-   R.   R@   t   getR$   t   evalR   t   globals(   RQ   t   keysymt
   check_code(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt	   map_event   s    c         C  s   |  j  t j j j k r7 | |  j k r7 |  j r7 t Sn  t j	 | d  } | d k r t d t | t  t    } | t | <n  | |   S(   sC   Returns true if the event matches the named keycode being released.s   lambda ev : N(   RS   R    RF   RK   RL   RD   RE   R-   RB   RT   R$   RU   R   R.   RV   (   RQ   RN   RX   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt	   map_keyup   s    c         C  s   t  j j s d St  j j s  d St |  d  rK d t  j _ t  j j   n  t	 |  d  si t |  d  r d t  j _ t  j j   n  d S(   s   
    This handles setting skipping in response to the press of one of the
    CONTROL keys. The library handles skipping in response to TAB.
    Nt   skipt   slowt   stop_skipping(   R    R!   t   allow_skippingt   storet	   _skippingRY   t   skippingt   exportst   restart_interactionRZ   R$   (   RQ   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRa      s    c         C  s   t  |  d  S(   Nt	   inspector(   RY   (   RQ   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRd     s    c         C  si   |  d k r d St |  t j j  r2 |  j   n  t |  t t f  re x |  D] } t |  qN Wn  d S(   sH   
    Predicts some of the actions that may be caused by a variable.
    N(	   R$   R   R    t   uit   Actiont   predictR   R   t   predict_action(   t   varR;   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRh     s    c         O  st   |  d k r d St |  t t f  rg d } x5 |  D]- } t | | |  } | d k	 r2 | } q2 q2 W| S|  | |   S(   s#  
    :doc: run
    :name: renpy.run
    :args: (action)

    Run an action or list of actions. A single action is called with no
    arguments, a list of actions is run in order using this function, and
    None is ignored.

    Returns the result of the first action to return a value.
    N(   R$   R   R   R   t   run(   t   actiont   argsRO   R?   R;   t   new_rv(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRj   %  s    c         C  sp   |  d k r d St |  t t f  rD x |  D] } t |  q, Wd St |  d d  } | d k	 rl |   n  d S(   sC   
    Calls the unhovered method on the variable, if it exists.
    Nt	   unhovered(   R$   R   R   R   t   run_unhoveredR8   (   Ri   R;   t   f(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRo   C  s    c         C  s   t  |  t t f  r` d  } x> |  D]6 } t | |  } | d  k sO | | k  r" | } q" q" W| St  |  t j j  r |  j |  Sd  S(   N(	   R   R   R   R$   t   run_periodicR    Re   Rf   t   periodic(   Ri   t   stR?   R;   t   v(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRq   V  s    c         C  so   t  |  t t f  rF x* |  D]" } t |  } | d  k	 r | Sq Wd  St |  d d   } | d  k rh d  S|   S(   Nt   get_tooltip(   R   R   R   Ru   R$   R8   (   Rk   R;   R?   t   func(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRu   g  s    c         C  s   t  |  t t f  rY x- |  D]% } t  | t j j  r | j   Sq Wt d   |  D  St  |  t j j	  rx |  j   St
 Sd S(   s|   
    :name: renpy.is_selected
    :doc: run

    Returns true if `action` indicates it is selected, or false otherwise.
    c         s  s   |  ] } t  |  Vq d  S(   N(   t   is_selected(   t   .0R;   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pys	   <genexpr>  s    N(   R   R   R   R    R_   t
   SelectedIft   get_selectedt   anyRe   Rf   R.   (   Rk   R;   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRw   x  s    
c         C  s   t  |  t t f  rY x- |  D]% } t  | t j j  r | j   Sq Wt d   |  D  St  |  t j j	  rx |  j   St
 Sd S(   s~   
    :name: renpy.is_sensitive
    :doc: run

    Returns true if `action` indicates it is sensitive, or False otherwise.
    c         s  s   |  ] } t  |  Vq d  S(   N(   t   is_sensitive(   Rx   R;   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pys	   <genexpr>  s    N(   R   R   R   R    R_   t   SensitiveIft   get_sensitivet   allRe   Rf   R-   (   Rk   R;   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR|     s    
c         C  s   t  |  t t f  rn g  } x6 |  D]. } t |  } | d  k	 r" | j |  q" q" W| rg d j |  Sd  Sn  t  |  t j j	  r |  j Sd  Sd  S(   Nt    (
   R   R   R   R   R$   t   appendR   R    Re   Rf   (   t   clickedR?   R;   t   t(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    t   Keymapc           B  s/   e  Z d  Z d d d  Z d   Z d   Z RS(   s   
    This is a behavior that maps keys to actions that are called when
    the key is pressed. The keys are specified by giving the appropriate
    k_constant from pygame.constants, or the unicode for the key.
    c         K  sT   | d  k	 r. t t |   j d d d |  n t t |   j d d  | |  _ d  S(   Nt   stylet   defaultt   activate_sound(   R$   t   superR   t   __init__R"   (   t   selft   replacesR   R"   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    "c         C  sz   xs |  j  j   D]b \ } } t | |  r t j j |  j j  t |  } | d  k	 r] | St j
 j j    q q Wd  S(   N(   R"   t	   iteritemsRY   R    Rb   t   playR   R   Rj   R$   RF   RK   t   IgnoreEvent(   R   RQ   t   xt   yRs   RN   Rk   R?   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI     s    c         C  s(   x! |  j  j   D] } t |  q Wd  S(   N(   R"   t
   itervaluesRh   (   R   R;   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   predict_one_action  s    N(   t   __name__t
   __module__t   __doc__R$   R   RI   R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s   	t   RollForwardc           B  s    e  Z d  Z d   Z d   Z RS(   s/   
    This behavior implements rollforward.
    c         K  s#   t  t |   j |   | |  _ d  S(   N(   R   R   R   t   value(   R   R   t
   properties(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    c         C  s&   t  | d  r" t j j |  j  Sd  S(   Nt   rollforward(   RY   R    Rb   t   roll_forward_coreR   (   R   RQ   R   R   Rs   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI     s    (   R   R   R   R   RI   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s   	t   PauseBehaviorc           B  s,   e  Z d  Z e Z e e d  Z d   Z RS(   s   
    This is a class implementing the Pause behavior, which is to
    return a value after a certain amount of time has elapsed.
    c         K  s5   t  t |   j |   | |  _ | |  _ | |  _ d  S(   N(   R   R   R   t   delayt   resultt   voice(   R   R   R   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    		c         C  s   | |  j  k r |  j r` t j j r` t j j   sF t j j j   r` t j	 j
 j d  d  Sn  t j	 j
 j | |  j   r |  j St t j	 j
 _ n  t j	 j
 j t |  j  | d   d  S(   Ng?i    (   R   R   R    R!   t   nw_voicet   afm_callbackRF   t   ttst	   is_activet   gameRG   t   timeoutt   drawn_sinceR   R-   t   force_redrawt   max(   R   RQ   R   R   Rs   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI     s    "(   R   R   R   R.   R   R   RI   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s   t   SoundStopBehaviorc           B  s#   e  Z d  Z e d  Z d   Z RS(   s   
    This is a class implementing the sound stop behavior,
    which is to return False when a sound is no longer playing
    on the named channel.
    c         K  s,   t  t |   j |   | |  _ | |  _ d  S(   N(   R   R   R   t   channelR   (   R   R   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    	c         C  s6   t  j j j |  j  s |  j St  j j j d  d  S(   Ng?(	   R    t   audiot   musict   get_playingR   R   R   RG   R   (   R   RQ   R   R   Rs   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI     s    (   R   R   R   R.   R   RI   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s   t   SayBehaviorc           B  s\   e  Z d  Z e Z d Z d g Z e d d g d d g d  Z d   Z	 d   Z
 d   Z RS(   s   
    This is a class that implements the say behavior,
    which is to return True (ending the interaction) if
    the user presses space or enter, or clicks the left
    mouse button.
    t   dismiss_unfocusedt   dismissc         K  sz   t  t |   j d | |  t | t t f  s= | g } n  | d  k	 r[ t |  |  _ n	 d  |  _ | |  _	 | |  _
 d  S(   NR   (   R   R   R   R   R   R   R$   R5   t
   afm_lengthR   t   allow_dismiss(   R   R   t   afmR   R   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR   .  s    		c         C  s   t  j j j    d  S(   N(   R    RF   R   t   TTSRoot(   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   _tts_all>  s    c         C  s   | |  _  yQ | j  d | j | j !} t j  j j | d g  } t t |  d  |  _ Wn# t | j | j d  |  _ n Xd  S(   Ni    t   allowi   (	   t   textt   startt   endR    t   extrast   filter_text_tagsR   R5   R   (   R   R   t   afm_text(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   set_textA  s    	c         C  s  |  j  r t j j j r t j j j r d t j j |  j  t j j t j j j } |  j	 d  k	 rz | |  j	 j   7} n  | | k r t j j r t j j   r t j j j   r t St j j j d  q t Sq t j j j | |  n  g  |  j D] } | t f ^ q g  |  j D] } | t f ^ q} x| D]\ } }	 t | |  r8|	 rl|  j   rlq8n  t j j rd  t j _ t j j   t j j j    n  t j j sd }
 n  t j j rt j j j }
 n t j j j  }
 | j! t" j# k rd | t j j$ } |
 d k rQ| t j j% k  rt j j&   t j j j    qq|
 d k rd | t j j% k  rt j j&   t j j j    qqn  t j j j' rt j j j rt j j j( rt t j j _ t j j   t j j j    n  |  j) r'|  j)   s't j j j    q'n  t Sq8Wt j j* d } t j j rt j j+ rt j, j- r| j! t j j j. k r| | k rt j j j/ rt St j j d k rt St j j0   j1 t  rt St t j _ t j j   qt j j j | |  n  d  S(   Ng      ?g?t   disablet   leftt   rightg     @@t   fast(2   R   R    R   t   preferencest   afm_timet
   afm_enableR!   t	   afm_bonust   afm_charactersR   R$   t   get_timeR   RF   R   R   R-   RG   R   R   R   R.   RY   t
   is_focusedRa   Rb   Rc   RK   R   t   enable_rollback_sidet   mobilet   mobile_rollback_sidet   desktop_rollback_sideRS   R&   R)   t   screen_widtht   rollback_side_sizet   rollbackt   using_afm_enablet   afm_after_clickR   t
   skip_delayR^   R_   R`   t	   TIMEEVENTt   skip_unseent   contextt   seen_current(   R   RQ   R   R   Rs   t	   afm_delayR;   R   t   dismiss_eventt   check_focust   rollback_sidet   percentR   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI   K  st    '."B		$$N(   R   R   R   R-   t	   focusableR$   R   R   R   R   R   RI   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR   !  s   			
t   Buttonc           B  s   e  Z i  Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d d  d d d d d d i  d d d d d d  Z d   Z d   Z d   Z d   Z e d  Z e d  Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z RS(   t   buttonc         K  s   t  | t j j  r | } n  t t |   j | d | | | |  _ | |  _ | |  _	 | |  _
 | |  _ | |  _ |
 |  _ t |  _ | |  _ |	 |  _ | |  _ | |  _ d  |  _ t |  _ d  S(   NR   (   R   R    Re   Rf   R   R   R   Rk   t   selectedt	   sensitiveR   t   hoveredRn   t	   alternateR-   R   t   role_parameterR"   RW   t   alternate_keysymR$   t   time_policy_dataR.   t   _duplicatable(   R   t   childR   R   R   Rn   Rk   t   rolet   time_policyR"   R   R   R   RW   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s"    														c         C  s    | r | j  r | j   n  |  S(   N(   Rl   t
   extraneous(   R   Rl   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt
   _duplicate  s    c         C  s#   |  j  d  k	 r |  j  St |  j  S(   N(   t   _tooltipR$   Ru   Rk   (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   _get_tooltip  s    c         C  sh   t  |  j  t  |  j  t  |  j  t  |  j  |  j rd x$ |  j j   D] } t  |  qM Wn  d  S(   N(   Rh   R   R   Rn   R   R"   R   (   R   Rt   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    	c      
   C  s  |  j  j r6 |  j  j | |  j |  j   \ } |  _ n  t t |   j | | | |  } |  j r|  j  j } | d  k	 r | \ } } }	 }
 n> |  j  j	 } |  j  j
 } | j |  j  j }	 | j |  j  j }
 |  j  j } | t k r | } ne | d  k	 rQy+ t j j j | | j | j | |  } WqQt |  r>| } qNt d   qQXn  | d  k	 rld } d } n d  } d  } | j |  d  | | |	 |
 | | | 	 n  | S(   Ns<   Focus_mask must be None, True, a displayable, or a callable.i    (   R   R   R   R   R   R   R   t
   focus_rectR$   t   left_margint
   top_margint   widtht   right_margint   heightt   bottom_margint
   focus_maskR-   R    RF   t   callableR7   t	   add_focus(   R   R   R   Rs   t   atR?   t   rectt   fxt   fyt   fwt   fht   maskt   fmxt   fmy(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s<    *!		+		c         C  su   t  t |   j |  d  } | s4 t |  j  } n  |  j |  j d  |  j d  k	 rq |  j j |  j d  n  | S(   Nt   hover(	   R   R   t   focusR$   Rj   R   t   set_transform_eventR   R   (   R   R   R?   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR  "  s    c         C  s   t  t |   j |  d  |  _ | sB t |  j  t |  j  n  |  j	 |  j
 d  |  j d  k	 r |  j j	 |  j
 d  n  d  S(   Nt   idle(   R   R   t   unfocusR$   t   longpress_startRo   R   Rj   Rn   R  R   R   (   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR  1  s    	c         C  s#   |  j  d  k	 r |  j  St |  j  S(   N(   R   R$   Rw   Rk   (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRw   ?  s    c         C  s#   |  j  d  k	 r |  j  St |  j  S(   N(   R   R$   R|   Rk   (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR|   D  s    c         C  s*  |  j  d  k	 rQ |  j   r$ d } n d } |  j   rB |  j  } q` d  } d } n d } |  j } |  j d  k	 r{ |  j } n  | |  j k s | |  j k	 r t j j	 j
 |   | |  _ | |  _ n  |  j d  k	 r |  j |  j d t  t |  _ n  |  j |  j d t  t |  _ t t |   j   d  S(   Nt	   selected_t    t   idle_t   insensitive_(   Rk   R$   Rw   R|   R   R   R   R    RF   R   t
   invalidatet   set_style_prefixR-   R   R.   R   R   t   per_interact(   R   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR  I  s,    					c   
        s'    f d   } t    j |  } | d  k	 rC t j j j |  n  | j t k s^   j	 j
 r t t    j | | | |  } | d  k	 r | Sn    j d  k	 r   j d  k	 r t |   j  r |   j  Sn    j d  k	 r  j d  k	 rt |   j  r|   j  Sn    j   s"d  Sx6   j j   D]% \ } }	 t | |  r2t |	  Sq2W  j d  k	 rgt j j rg| j t j k r| j d k r|   _ |   _ |   _ t j j j t j j   n    j d  k	 rgt! j" |   j |   j  t j j# k rd    _ qd|   j t j j  k rdt j$ j% t j j&  t j j j'   |   j  Sqgn    j d  k	 rt | d  rt j j( j)    n    j d  k	 rt | d  rt j j( j)    n    j d  k	 rt | d  r|   j  S  j d  k	 r#t | d  r#|   j  Sd  S(   Nc           sH   t  j j   j j  t |   } | d  k	 r2 | St  j j j	    d  S(   N(
   R    Rb   R   R   R   Rj   R$   RF   RK   R   (   Rk   R?   (   R   (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   handle_clickn  s
    i   t   button_ignoret   button_alternate_ignoret   button_selectt   button_alternate(*   Rq   Rk   R$   R    R   RG   R   RS   t
   KEY_EVENTSR   t
   key_eventsR   R   RI   RW   R   RY   R   R   R   R"   R   Rj   RF   t   touchR&   R'   R   R  t   longpress_xt   longpress_yR!   t   longpress_durationt   matht   hypott   longpress_radiusRb   t   vibratet   longpress_vibratet   after_longpressRK   R   (
   R   RQ   R   R   Rs   R  R   R?   RN   Rk   (    (   R   so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI   l  sR    !!			,c         C  s&   | r" t  t |   j | |  n  d  S(   N(   R   R   R  (   R   t   prefixt   root(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s    c         C  s   d S(   NR  (    (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   _tts  s    c         C  sE   |  j  t |  j   } |  j   rA | d t j j d  7} n  | S(   NR   R   (   t   _tts_commonR   Rk   Rw   R    t   minstoret   __(   R   R?   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    N(   R   R   R"   R$   Rk   R   R  R  R  R   RW   R   R   R   R   R   R   R.   R  R  Rw   R|   R  RI   R  R   R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s4   					
	,			#	M		R   t   button_textc         K  sU   t  j j | d d  \ } } t  j j j |  d | | }  t |  d | d | | S(   Nt   text_R  R   R   (   R    t   easyt   split_propertiesR   t   TextR   (   R   R   t
   text_styleR   R   t   text_propertiest   button_properties(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt
   TextButton  s    t   ImageButtonc           B  sG   e  Z d  Z d d d d d d d d d d d 
 Z d   Z d   Z RS(   s8   
    Used to implement the guts of an image button.
    t   image_buttonc         K  s  | p	 | } | p | } | p! | } | p- | } | p9 | } | pE | } | pQ | } t  d t j j |  d t j j |  d t j j |  d t j j |  d t j j |  d t j j |  d t j j |  d t j j |   |  _ t t |   j d  d	 |	 d
 |
 d | | d  S(   NR  t   hover_R	  t	   activate_t   selected_idle_t   selected_hover_t   selected_insensitive_t   selected_activate_R   R   R   (	   t   dictR    R&  t   displayablet   state_childrenR   R-  R   R$   (   R   t
   idle_imaget   hover_imaget   insensitive_imaget   activate_imaget   selected_idle_imaget   selected_hover_imaget   selected_insensitive_imaget   selected_activate_imageR   R   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s*    c         C  s   |  j  j   S(   N(   R7  t   values(   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   visit  s    c         C  s   |  j  j p |  j |  j  j S(   N(   R   R   R7  R  (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt	   get_child  s    N(   R   R   R   R$   R   RA  RB  (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR-    s   	t   HoveredProxyc           B  s   e  Z d    Z d   Z RS(   c         C  s   | |  _  | |  _ d  S(   N(   t   at   b(   R   RD  RE  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    	c         C  s!   |  j    |  j r |  j   Sd  S(   N(   RD  RE  (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   __call__  s    
	(   R   R   R   RF  (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRC    s   	c           C  s   g  a  g  a d  a d  S(   N(   t   input_valuest   inputsR$   t   default_input_value(    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   input_pre_per_interact(  s    c          C  s   x* t  D] }  |  t k r Pq q Wt a t a x~ t D]v }  |  j t k oX t oX |  j j } |  j j   } |  j | k s | |  j	 k r4 |  j
 | |  t |  |  _ q4 q4 Wd  S(   N(   RG  t   current_input_valueRI  R-   t   input_value_activeRH  R   t   editablet   get_textt   contentt   update_textR5   t	   caret_pos(   R;   RM  RO  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   input_post_per_interact2  s    !t   Inputc           B  s   e  Z d  Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d Z d d d d d d d d d d e d d e d  Z d   Z e d  Z d   Z d	   Z d
   Z d   Z d   Z d   Z RS(   s9   
    This is a Displayable that takes text as input.
    R  i    u    t   inputc      	   K  s  t  t |   j d d | d |
 d t | | rR | |  _ | j } | j   } n  t |  |  _ |  j |  _	 | |  _
 | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ i d  d 6} x. | D]& } | j d  r | | | | <q q Wt j j j d d d | |  |  _ t |  j	  |  _ |  j |  _ |	 rt |  _ t |  j |	 j  |	 _ t |  j  |	 j!  |	 _! n  t" |
 t  r|
 j	 |  _	 |
 j |  _ |
 j |  _ n  |  j# |  j	 |  j  d  S(   NR  R   R   t
   substitutet   colort   xmaximumi   ($   R   RS  R   R.   R   R   RN  t   unicodeR   RO  t   lengthR   t   excludeR  t   suffixt	   copypastet   changedRM  t   pixel_widthR$   t   endswithR    RF   t   imaget   Solidt   caretR5   RQ  t   old_caret_posRC  t   enableR   R   Rn   R   RP  (   R   R   RY  R   R   RZ  R  R[  R]  R   R   RM  R^  R   R\  R   t
   caretpropsR;   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR   [  s@    +											$	c         C  sM   |  j  |  j k rI |  j  |  _ t |  j  |  _ |  j |  j |  j  n  d  S(   N(   R   RO  R5   RQ  RP  RM  (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   _show  s    c           s	  t  j j j }  j } |  j k s<   j k s< | rU t  j j j  d  n    _  j j	     d  k r  j	   n  | rV| j  _ | j | j  } | j | j | j | j !} | j | j | j } d  | r d | j d d  d 7 n  | r, d | j d d  d 7 n  | re d | j d d  d 7 qen d  _ d       f d   }	 |	 |  | r j r j   \ }
 } |
  j k r j  _ |	 |  d  Sn  | | k r|  _  j r j |  qn  d  S(	   Ni    R  s   {u=1}t   {s   {{s   {/u}s   {u=2}c           s   |  d k r d }  n   r{ t  |   }  j  j |  d  j !j d d     |   j | !j d d   j g  n(  j  j |  j d d   j g  d  S(   NR  u   ​i    Rg  s   {{(   R5   R   R  RQ  t   replaceR[  (   RO  t   l(   Rb  t	   edit_textRM  R   (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   set_content  s    	+)(   R    RF   RG   t   text_editingRO  RM  R   t   redrawR   Rb  R$   R   Rj  R   RY  Rh  R^  t   sizeRc  RQ  R]  (   R   t   new_contentRM  t
   check_sizet   editt   old_contentt   edit_text_0t   edit_text_1t   edit_text_2Rk  t   wt   _h(    (   Rb  Rj  RM  R   so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRP    sD    	$	!!$	

		c         C  sH   | |  j  j k r+ |  j |  j |  j  n  t t |   j | |  d  S(   N(   R   R  RP  RO  RM  R   RS  R  (   R   R  R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s    c         C  s   |  j  |  j t  d  S(   N(   RP  RO  R-   (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRd    s    c         C  s   |  j  |  j t  d  S(   N(   RP  RO  R.   (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    c         C  sW   |  j  d  k	 rS t j |   t j |  j   |  j  j rS t d  k rS |  j  a qS n  d  S(   N(   R   R$   RH  R   RG  R   RI  (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s
    c         C  s  |  j  |  _ |  j s d  S| j t j k rO t j j   t j	 @rO | j
 rO d  St |  j  } d  } t | d  r|  j r |  j  d k r |  j d |  j  d !|  j |  j  | !} |  j  d 8_  |  j | |  j  n  t j j j |  d  t j j j    nt | d  rr|  j } |  j rL| d |  j  !|  j |  j |  j  } n  |  j rb|  j j   S|  j s| Snt | d  r|  j  d k r|  j  d 8_  |  j |  j |  j  n  t j j j |  d  t j j j    n$t | d  rT|  j  | k  r)|  j  d 7_  |  j |  j |  j  n  t j j j |  d  t j j j    nt | d  r|  j  | k  r|  j d |  j  !|  j |  j  d | !} |  j | |  j  n  t j j j |  d  t j j j    n,t | d  r4d |  _  |  j |  j |  j  t j j j |  d  t j j j    nt | d	  r| |  _  |  j |  j |  j  t j j j |  d  t j j j    nz|  j rt | d
  rt j j t j j |  j  t j j j    n1|  j r?t | d  r?t j j t j j  } d } x | D]% }	 t |	  d k r| |	 7} qqWn | j t j k r|  j |  j |  j d t  t j j j    n | j t j! k rd |  _ | j" } n^ | j t j k r| j
 rt | j
 d  d k r| j
 } qt j j# j$   rd } qn  | d  k	 rd } xT | D]L }	 |  j% rD|	 |  j% k rDq n  |  j& rb|	 |  j& k rbq n  | |	 7} q W|  j' r|  j' t |  j  }
 | |
  } n  | r|  j d |  j  !| |  j |  j  | !} |  j  t |  7_  |  j | |  j d t  n  t j j j    n  d  S(   Nt   input_backspacei    i   t   input_entert
   input_leftt   input_rightt   input_deletet
   input_homet	   input_endt
   input_copyt   input_pasteR  i    Rp  ((   RQ  Rc  RM  R$   RS   R&   R/   R:   t   get_modst	   KMOD_LALTRX  R5   RO  RY   RP  R    RF   R   Rm  RK   R   Rj  R   t   enterR]  R\  t   scrapt   putt
   SCRAP_TEXTRT   t   ordt   TEXTEDITINGR-   t	   TEXTINPUTR   RG   t   text_event_in_queueR   RZ  RY  (   R   RQ   R   R   Rs   Ri  t   raw_textRO  R   t   ct	   remaining(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI     s    	2(		(		(			"	(c         C  s:   t  t |   j | | | |  } |  j r6 t | _ n  | S(   N(   R   RS  R   RM  R-   t
   text_input(   R   R   R   Rs   R   R?   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR   y  s    !	N(   R   R   R   R$   R]  R  R[  RQ  Rc  R^  R   Rj  R   R-   R.   R   Rf  RP  R  Rd  R   R  RI   R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRS  L  s@   0	D					~t
   Adjustmentc           B  s   e  Z d  Z d d d d d d d d  Z d   Z d   Z e e e  Z d   Z	 d   Z
 e e	 e
  Z d   Z d	   Z e e e  Z d
   Z d   Z e e e  Z d   Z d   Z d   Z RS(   s  
    :doc: ui
    :name: ui.adjustment class

    Adjustment objects represent a value that can be adjusted by a bar
    or viewport. They contain information about the value, the range
    of the value, and how to adjust the value in small steps and large
    pages.


    i   i    c         C  st   t  t |   j   | d k r1 | r1 t } q1 n  | |  _ | |  _ | |  _ | |  _ | |  _	 | |  _
 | |  _ d S(   s+  
        The following parameters correspond to fields or properties on
        the adjustment object:

        `range`
            The range of the adjustment, a number.

        `value`
            The value of the adjustment, a number.

        `step`
            The step size of the adjustment, a number. If None, then
            defaults to 1/10th of a page, if set. Otherwise, defaults
            to the 1/20th of the range.

            This is used when scrolling a viewport with the mouse wheel.

        `page`
            The page size of the adjustment. If None, this is set
            automatically by a viewport. If never set, defaults to 1/10th
            of the range.

            It's can be used when clicking on a scrollbar.

        The following parameters control the behavior of the adjustment.

        `adjustable`
             If True, this adjustment can be changed by a bar. If False,
             it can't.

             It defaults to being adjustable if a `changed` function
             is given or if the adjustment is associated with a viewport,
             and not adjustable otherwise.

        `changed`
            This function is called with the new value when the value of
            the adjustment changes.

        `ranged`
            This function is called with the adjustment object when
            the range of the adjustment is set by a viewport.

        .. method:: change(value)

            Changes the value of the adjustment to `value`, updating
            any bars and viewports that use the adjustment.
         N(   R   R  R   R$   R-   t   _valuet   _ranget   _paget   _stepR]  t
   adjustablet   ranged(   R   t   rangeR   t   stept   pageR]  R  R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    1						c         C  s    |  j  |  j k r |  j S|  j  S(   N(   R  R  (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt	   get_value  s    c         C  s   | |  _  d  S(   N(   R  (   R   Rt   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt	   set_value  s    c         C  s   |  j  S(   N(   R  (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt	   get_range  s    c         C  s&   | |  _  |  j r" |  j |   n  d  S(   N(   R  R  (   R   Rt   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt	   set_range  s    		c         C  s!   |  j  d  k	 r |  j  S|  j d S(   Ni
   (   R  R$   R  (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   get_page  s    c         C  s   | |  _  d  S(   N(   R  (   R   Rt   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   set_page  s    c         C  sd   |  j  d  k	 r |  j  S|  j d  k	 r? |  j d k r? |  j d St |  j t  r\ |  j d Sd Sd  S(   Ni    i
   i   (   R  R$   R  R  R   R  t   float(   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   get_step  s    c         C  s   | |  _  d  S(   N(   R  (   R   Rt   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   set_step  s    c         C  s   t  j |  g   j |  d  S(   N(   t   adj_registeredt
   setdefaultR   (   R   t   d(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   register  s    c         C  s   | d k  r d } n  | |  j  k r0 |  j  } n  | |  j k r | |  _ x0 t j |  g   D] } t j j j | d  q[ W|  j r |  j |  Sn  d  S(   Ni    (
   R  R  R  R  R    RF   R   Rm  R]  R$   (   R   R   R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   change  s    			c         C  s4   x- t  j |  g   D] } t j j j |  q Wd S(   sk   
        Updates things that depend on this adjustment without firing the
        changed handler.
        N(   R  R  R    RF   R   R
  (   R   R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRH     s    N(   R   R   R   R$   R   R  R  t   propertyR   R  R  R  R  R  R  R  R  R  R  R  RH   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s"   ?										t   Barc           B  s   e  Z d  Z d Z d   Z d d d d d d d d d d e d d d d  Z d   Z d   Z	 d   Z
 e d  Z e d  Z d	   Z d
   Z d   Z d   Z RS(   sf   
    Implements a bar that can display an integer value, and respond
    to clicks on that value.
    i   c         C  sn   | d k  rR t  |  j |  j d |  j |  _ |  j j |   |  ` |  ` |  ` n  | d k  rj d  |  _ n  d  S(   Ni   R]  i   (   R  R  R   R]  t
   adjustmentR  R$   (   R   t   version(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   after_upgrade-  s    !	c      	   K  s  d  |  _ | d  k r t | t j j  r t | t  rL | j | j  n  | |  _ | j   } t j	 j
 j d  | j   } | d  k	 r | j d |  q q t | | d | d | d | } n  |
 d  k r+|  j d  k	 r| r |  j j   d }
 q(|  j j   d }
 q+| r"d }
 q+d }
 n  | d  k	 rD| | d	 <n  | d  k	 r]| | d
 <n  t t |   j d |
 |  | |  _ t |  _ d |  _ d |  _ d |  _ t |  _ | |  _ | |  _ d  S(   Ni    t   tooltipR  R  R]  i   t   vbart   barRW  t   ymaximumR   (   R$   R   R   R    Re   t   BarValueR  R   t   get_adjustmentR   RG   R   Ru   R  R  t	   get_styleR   R   R  R-   R   t	   thumb_dimR   R   R.   t   hiddenR   Rn   (   R   R  R   R   R   R]  R  R  R  R  R   t   verticalR   R   Rn   R   R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR   9  sB    		$									c         C  su   |  j  d  k	 rR |  j  j   } | j  |  j  k rF t j j j |   n  | |  _ n  |  j j |  _	 |  j j
 |   d  S(   N(   R   R$   R  R    RF   R   R
  R  R  R   R  (   R   R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR  }  s    c         C  s   g  } |  j  j | j  | S(   N(   R   t
   _visit_barR   (   R   R?   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRA    s    c         C  s)  |  j  d  k	 rI |  j  j |  } | d  k	 rI t j j j |  |  qI n  |  j j } |  j j	 } | d  k	 r t
 | |  } t
 | |  } n  | |  _ | |  _ |  j j } |  j j  }	 |  j j }
 | d k r)|  j j d k rt |  _ t j j j | |  S|  j j d k r)|  j d t  q)n  t |  _ |  j j |  j j ArU| |	 }	 n  |  j j } | rp| } n | } |  j j } |  j j } | | | } | r| |
 | |
 } n | } t |  j j  } | rt |  j j | | | |  } t |  j j | | | |  } | j } nE t |  j j | | | |  } t |  j j | | | |  } | j } | | d 8} | |  _ | | 8} | r| |	 | } n | } t |  } | | } | | 7} | | 7} t j j j | |  } | rt|  j j  rt |  j j! | | | |  } t |  j j" | | | |  } | j# | d | | f  | j# | d d t | j# | d | | f d t | j# | d | | f  qt |  j j! | | | |  } t |  j j" | | | |  } | j# | d | | f  | j# | j$ d d | | f  d d t | j# | j$ d | | | | f  d | | f d t | j# | d | | f  n|  j j  r)t |  j j! | | | |  } t |  j j" | | | |  } | j# | | | d f  | j# | d	 d t | j# | | | d f d t | j# | | | d f  n t |  j j! | | | |  } t |  j j" | | | |  } | j# | | | d f  | j# | j$ d d | | f  d
 d t | j# | j$ | | d | | f  | | d f d t | j# | | | d f  |  j% r%| j& |  d  d d | |  n  | S(   Ni    t   hidet   insensitiveR	  i   t   main(   i    i    (   i    i    (   i    i    (   i    i    ('   R   R$   Rr   R    RF   R   Rm  R   t   xminimumt   yminimumR   R   R   R  R  R  t   unscrollableR-   R  R   R  R.   t
   bar_invertt   bar_verticalt   fore_guttert
   aft_guttert   abst   thumb_offsett   thumbt   thumb_shadowR  R(   t   bar_resizingt   fore_bart   aft_bart   blitt
   subsurfaceR   R   (   R   R   R   Rs   R   Rm  R  R  R  R   R  R  t	   dimensionR  R  t   activeR  R  R  R  t	   fore_sizet   aft_sizeR?   t   foresurft   aftsurf(    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    							



 +9 +9	c         C  s=   t  t |   j |  |  j d  | s9 t |  j  n  d  S(   NR   (   R   R  R  R  Rj   R   (   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR  
  s    c         C  sG   t  t |   j   |  j d  | sC t |  j  t |  j  n  d  S(   NR  (   R   R  R  R  Ro   R   Rj   Rn   (   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s
    c         C  s  |  j  s d  S|  j   s d  S|  j r* d  S|  j j } |  j j } | } |  j j } |  j j	 | A}	 |	 rw | | } n  t
 j j j   |  k }
 t } t } |
 rt | d  rt
 j j j t
 j j d   t
 j j j |   |  j d t  t } t }
 t } n  |
 r| r#d } d } n d } d } t | |  rvt
 j j j t
 j j d   | |  j j 8} t } n  t | |  rt
 j j j t
 j j d	   | |  j j 7} t } n  | j t j t j t j f k r| rC|  j j } |  j j } |  j | | |  j  } | r:| | |  j  d
 | | } qd } n\ |  j j } |  j j } |  j! | | |  j  } | r| | |  j  d
 | | } n d } t } n  t" | t#  rt# |  } n  | d k  rt
 j j j d  d } n  | | k rt
 j j j d  | } qn  |	 r,| | } n  |
 r| rt | d  rt
 j j j t
 j j d   |  j d t  t
 j j j d   t } n  | | k r|  j j$ |  } | d  k	 r| Sn  | rt
 j j% j&    n d  Sd  S(   Nt   bar_activatet   activateR2  t   bar_downt   bar_upt	   bar_rightt   bar_leftt   decreaset   increasei   i    R  t   bar_deactivatet
   deactivateR/  ('   R   R$   R   R  R  R  R   R   R  R  R    RF   R  t   get_grabR.   RY   R   t   speakR"  R#  t   set_grabR  R-   R  RS   R&   t   MOUSEMOTIONR)   R'   R  R  R   R  R   R   R(   R  RK   R   (   R   RQ   R   R   Rs   R  t	   old_valueR   R  t   invertt   grabbedt   just_grabbedt   ignore_eventR  R  t   tguttert   bguttert   zone_heightt   lguttert   rguttert
   zone_widthR?   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI     s    						! 	 			c         C  s&   | r" t  t |   j | |  n  d  S(   N(   R   R  R  (   R   R  R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s    c         C  s   d S(   NR  (    (   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    c         C  sA   |  j  d  k	 r |  j  j } n d } |  j |  t j j d  S(   NR  R  (   R   R$   R   R!  R    R"  R#  (   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    N(   R   R   R   t   __version__R  R$   R.   R   R  RA  R   R  R  RI   R  R   R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR  %  s4   	6			|	i		t   Conditionalc           B  s)   e  Z d  Z d   Z d   Z d   Z RS(   s   
    This class renders its child if and only if the condition is
    true. Otherwise, it renders nothing. (Well, a Null).

    Warning: the condition MUST NOT update the game state in any
    way, as that would break rollback.
    c         O  sY   t  t |   j | |   | |  _ t j j j   |  _ t	 |  j t
 t j   |  _ d  S(   N(   R   R  R   t	   conditionR    RF   t   layoutt   Nullt   nullRU   t   varsR_   t   state(   R   R  Rl   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    	c         C  s?   |  j  r" t |  j | | | |  St |  j | | | |  Sd  S(   N(   R  R   R   R  (   R   R   R   Rs   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    	c         C  so   t  |  j t t j   } | |  j k rC t j j j |  d  n  | |  _ | rk |  j	 j
 | | | |  Sd  S(   Ni    (   RU   R  R  R    R_   R  RF   R   Rm  R   RI   (   R   RQ   R   R   Rs   R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI     s    	(   R   R   R   R   R   RI   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s   		t
   TimerStatec           B  s   e  Z d  Z e Z d Z RS(   sJ   
    Stores the state of the timer, which may need to be rolled back.
    N(   R   R   R   R.   t   startedR$   t
   next_event(    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s   t   Timerc           B  s>   e  Z d  Z e Z d   Z d e d i  d d  Z d   Z RS(   i   c         C  s=   | d k  r9 t    |  _ |  j |  j _ |  j |  j _ n  d  S(   Ni   (   R  R  R  R  (   R   R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s    c         K  s   t  t |   j |   | d  k r1 t d   n  | d k rL t d   n  | |  _ | |  _ d  |  _ | |  _ | |  _	 | |  _
 t |  _ | d  k	 r | j |  _ n t   |  _ d  S(   Ns%   A timer must have an action supplied.i    s   A timer's delay must be > 0.(   R   R  R   R$   R7   R   R   R  t   functionRl   RO   R.   R  R  R  (   R   R   Rk   R   Rl   RO   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    							c         C  s   |  j  } | j s. t | _ | |  j | _ n  | j d  k rA d  S| | j k  rn t j j j	 | j |  d  S|  j
 s d  | _ nO | j |  j | _ | j | k  r | |  j | _ n  t j j j	 | j |  t |  j |  j |  j  S(   N(   R  R  R-   R   R  R$   R    R   RG   R   R   Rj   R  Rl   RO   (   R   RQ   R   R   Rs   R  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI     s     				N(    (	   R   R   R  R.   R  R  R$   R   RI   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s
   	t	   MouseAreac           B  s2   e  Z d  Z d d d d  Z d   Z d   Z RS(   i    c         K  sb   t  t |   j |   | |  _ | |  _ t |  _ | d  k	 rL | j |  _ n  d |  _ d |  _	 d  S(   Ni    (
   R   R  R   R   Rn   R.   t
   is_hoveredR$   R   R   (   R   R   Rn   R   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    				c         C  s,   | |  _  | |  _ | | |  _ t | |  S(   N(   R   R   t   at_st_offsetR   (   R   R   R   Rs   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR     s    		c         C  s  t  j j j   r d  S|  j j d  k	 rq t  j j j |  j j |  j |  j	 | |  j
 |  } | j | |  } nM d | k o |  j k  n r d | k o |  j	 k  n r t } n t } | r |  j r t |  _ t |  j  S| r|  j rt |  _ t |  j  t |  j  n  d  S(   Ni    (   R    RF   R  R  R   R   R$   R   R   R   R  t   is_pixel_opaqueR-   R.   R  Rj   R   Ro   Rn   (   R   RQ   R   R   Rs   t   crendR  (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyRI   %  s    4>			N(   R   R   R  R$   R   R   RI   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR    s   	t   OnEventc           B  s>   e  Z d  Z g  d  Z d   Z d   Z d   Z d   Z RS(   s   
    This is a displayable that runs an action in response to a transform
    event. It's used to implement the screen language on statement.
    c         C  s)   t  t |   j   | |  _ | |  _ d S(   s   
        `event`
            A string giving the event name.

        `action`
            An action or list of actions that are run when the event occurs.
        N(   R   R  R   t
   event_nameRk   (   R   RI   Rk   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR   E  s    		c         C  s0   t  |  j t  r |  j | k S| |  j k Sd  S(   N(   R   R  t
   basestring(   R   RI   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   is_eventS  s    c         C  s   |  j  |  r t St Sd  S(   N(   R  R-   R.   (   R   RI   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   _handles_eventY  s    c         C  s#   |  j  |  r t |  j  n  d  S(   N(   R  Rj   Rk   (   R   RI   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR  _  s    c         C  s   t  j j j d d  S(   Ni    (   R    RF   R   R   (   R   R   R   Rs   R   (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR   c  s    (   R   R   R   R   R  R  R  R   (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyR  ?  s   			(I   t
   __future__R    t   renpy.displayR    t   renpy.audiot   renpy.display.renderR   R   t   pygame_sdl2R&   R  R   R@   RB   RC   R.   RR   RY   RZ   Ra   Rd   Rh   Rj   Ro   Rq   Ru   Rw   R|   R   RF   R  R  R   R   R   R   R   R/   R0   R  R  R  t   WindowR   R$   R,  R-  t   objectRC  RK  RL  RI  RG  RH  RJ  RR  R   R(  RS  R  t   ObjectR  RK   t   DisplayableR  t	   ContainerR  t   pythont   RevertableObjectR  R  R  R  (    (    (    so   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\behavior.pyt   <module>   sn   	w	!												## 6	
	 9 o$F7