łň
~×YKc           @   s×   d  d k  Z  d  d k Z d e f d     YZ d a d a d a d   Z d   Z	 d   Z
 d   Z d   Z g  a d	   Z d
   Z e d  Z e d  Z d   Z d   Z d   Z d   Z d   Z d   Z d S(   i˙˙˙˙Nt   Focusc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s:   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ d  S(   N(   t   widgett   argt   xt   yt   wt   h(   t   selfR   R   R   R   R   R   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   __init__   s    					c         C   s+   t  |  i |  i |  i |  i |  i |  i  S(   N(   R    R   R   R   R   R   R   (   R   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   copy&   s    c         C   s,   d |  i  |  i |  i |  i |  i |  i f S(   Ns   <Focus: %r %r (%r, %r, %r, %r)>(   R   R   R   R   R   R   (   R   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   __repr__/   s    (   t   __name__t
   __module__R   R	   R
   (    (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyR       s   				c         C   s   | a  |  t i i   i _ d  S(   N(   t   argumentt   renpyt   gamet   contextt   scene_listst   focused(   R   R   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   set_focusedC   s    c           C   s   t  i i   i i S(   N(   R   R   R   R   R   (    (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   get_focusedI   s    c          C   s,   t    }  |  d  j o d  Sn |  i i Sd  S(   N(   R   t   Nonet   stylet   mouse(   R   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt	   get_mouseM   s    	c         C   s
   |  a  d  S(   N(   t   grab(   R   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   set_grabT   s    c           C   s   t  S(   N(   R   (    (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   get_grabX   s    c          C   sN   g  a  t i i i t   d  a x( t  D]  }  |  i d  j o
 |  a q& q& Wd  S(   N(   t
   focus_listR   t   displayt   rendert   take_focusesR   t   default_focusR   (   t   f(    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyR   _   s     c   	         s  d  a g      f d   } x |  D] } | i | d   q" Wh  } xC   D]; \ } } | i | d  } | d | | <| | f | _ qI Wt   } | d  j	 oR | i } xF   D]4 \ } } | i | j o | } t | d   PqŽ qŽ Wd  } n | d  j oJ xG   D]. \ } } | i o | } t | d   PqqWt d  d   n x/   D]' \ } } | | j	 o | i   qNqNW| o | i	 d t
  n d  S(   Nc            s     i  |  | f  d  S(   N(   t   append(   R!   t   n(   t   fwn(    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   callbackz   s    i    i   t   default(   R   R   t   find_focusablet   gett   full_focus_nameR   R   R&   t   unfocust   focust   True(	   t   rootsR%   t   roott	   namecountR!   R#   t   serialt   currentt   current_name(    (   R$   s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   before_interactq   sH      		 	
 
	 c         C   sĺ   d  } t o d  Sn |  d  j o
 d  } n
 |  i } t   } | | j o% |  d  j p |  i t j o | Sn | d  j	 o | i   n | } |  d  j	 o |  i } n d  } t | |  | d  j	 o | i d |  } n | S(   NR&   (	   R   R   R   R   R   R   R*   R   R+   (   t   newfocusR&   t   rvR   R1   R   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   change_focus˛   s&    
		*c         C   si   |  i  t i t i t i f j o d  Sn t i i i | |  } | d  j o
 t
 } n t | d | S(   NR&   (   t   typet   pygamet   MOUSEMOTIONt   MOUSEBUTTONUPt   MOUSEBUTTONDOWNR   R   R   t   focus_at_pointR   R    R6   (   t   evR   R   R&   t	   new_focus(    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   mouse_handlerŐ   s    "
c         C   s   d  } d } xj t D]b } | i p q n | i |  | i | | i | | i | } | | j o | } | } q q W| o t |  Sn d  S(   Ni   i   l        lý˙˙˙     (   R   R   R   R   R   R   R6   (   t   xmult   ymult   wmult   hmult	   max_focust	   max_scoreR!   t   score(    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   focus_extremeć   s     
 c         C   s    |  | | d | | | d S(   Ni   (    (   t   x0t   y0t   x1t   y1t   xfudget   yfudge(    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   points_dist˙   s    c         C   sV  | |  j o | j o
 | j n p~ |  | j o | j o
 | j n pT |  | j o | j o
 | j n p* | |  j o | j o
 | j n o | | d Sn |  | j o | j o
 | j n o# t  | | | | t i i d  Sn | | j o |  j o
 | j n o# t  |  | | | t i i d  Sn d  S(   Ni   g      đ?(   RN   R   t   configt   focus_crossrange_penalty(   t   ax0t   ay0t   ax1t   ay1t   bx0t   by0t   bx1t   by1(    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   horiz_line_dist  s    *****#*#c         C   sV  | | j o | j o
 | j n p~ | | j o | j o
 | j n pT | | j o | j o
 | j n p* | | j o | j o
 | j n o |  | d Sn | | j o | j o
 | j n o# t  | | | | d t i i  Sn | | j o | j o
 | j n o# t  |  | | | d t i i  Sn d  S(   Ni   g      đ?(   RN   R   RO   RP   (   RQ   RR   RS   RT   RU   RV   RW   RX   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   verti_line_dist  s    *****#*#c         C   s+  t  p d  Sn t   } | p t t  d  d  Sn xK t  D]1 } | i | j o | i t j o | } Pq< q< Wt t  d  d  S| i d  j o t |
 | | |  d  Sn | i | i	 |  } | i
 | i | } | i | i	 | } | i
 | i | } d  } d  } d t i i d } xä t  D]Ü } | | j o q%n | i d  j o | } q%n |	 | |  p q%n | i | i	 | } | i
 | i | } | i | i	 | } | i
 | i | } | | | | | | | | |  } | | j  o | } | } q%q%W| p | } | o t |  Sn d  S(   Ni    g      đ@i   (   R   R   R6   R   R   R   R   R   RG   R   R   R   R   RO   RP   (   t   from_x0t   from_y0t   from_x1t   from_y1t   to_x0t   to_y0t   to_x1t   to_y1t	   line_distt	   conditionR@   RA   RB   RC   R1   R!   t
   from_focust   fx0t   fy0t   fx1t   fy1t	   placelessR>   t   new_focus_distt   tx0t   ty0t   tx1t   ty1t   dist(    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   focus_nearest@  sX    	  	 c         C   sH  t  i i i |  d  o8 t d d d d d d d d t d   d d d d  Sn t  i i i |  d  o8 t d d d d d d d d t d   d	 d d	 d  Sn t  i i i |  d
  o8 t d d d d d d d d t d   d d	 d d	  Sn t  i i i |  d  o8 t d d d d d d d d t d   d d d d  Sn d  S(   Nt   focus_rightgÍĚĚĚĚĚě?gš?c         S   s   |  i  |  i | i  j S(    (   R   R   (   t   oldt   new(    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   <lambda>  s    i˙˙˙˙i    t
   focus_leftc         S   s   | i  | i |  i  j S(    (   R   R   (   Rs   Rt   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyRu     s    i   t   focus_upc         S   s   | i  | i |  i  j S(    (   R   R   (   Rs   Rt   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyRu   Ą  s    t
   focus_downc         S   s   |  i  |  i | i  j S(    (   R   R   (   Rs   Rt   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyRu   ¨  s    (   R   R   t   behaviort	   map_eventRq   RZ   RY   (   R=   (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pyt   key_handler  s0    (   R8   R   t   objectR    R   R   R   R    R   R   R   R   R   R   R   R3   t   FalseR6   R?   RG   RN   RY   RZ   Rq   R{   (    (    (    s;   D:\Version 1-0-7\Games\Katawa Shoujo\renpy\display\focus.pys   <module>   s*   							A#					"	M