ó
Ä\c           @  sD  d  d l  m Z d  d l Z d  d l m Z d e j j j f d     YZ	 d   Z
 d e	 f d     YZ d	 e	 f d
     YZ e e e e e d  Z d e	 f d     YZ d e	 f d     YZ d e	 f d     YZ d e	 f d     YZ d e	 f d     YZ d e	 f d     YZ e e e e d  Z e e d  Z d S(   i˙˙˙˙(   t   print_functionN(   t   rendert
   Transitionc           B  s)   e  Z d  Z d   Z d   Z d   Z RS(   s]   
    This is the base class of most transitions. It takes care of event
    dispatching.
    c         K  s,   t  t |   j |   | |  _ t |  _ d  S(   N(   t   superR   t   __init__t   delayt   Truet   events(   t   selfR   t
   properties(    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   '   s    	c         C  sB   |  j  s! | j t j j j k r: |  j j | | | |  Sd  Sd  S(   N(	   R   t   typet   renpyt   displayt   coret	   TIMEEVENTt
   new_widgett   eventt   None(   R   t   evt   xt   yt   st(    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   ,   s    !c         C  s   |  j  |  j g S(   N(   R   t
   old_widget(   R   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyt   visit3   s    (   t   __name__t
   __module__t   __doc__R   R   R   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   !   s   		c         C  s_   t  |  _ t j j j |  j | | | |  } t j j j | j | j  } | j	 | d  | S(   Ni    (   i    i    (
   R   R   R   R   R   R   t   Rendert   widtht   heightt   blit(   t   dR   R   R   t   att   surft   rv(    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyt   null_render7   s    	t   NoTransitionc           B  s&   e  Z d  Z d d d  Z d   Z RS(   sÎ   
    :doc: transition function
    :name: Pause
    :args: (delay)

    Returns a transition that only displays the new screen for `delay` seconds.
    It can be useful as part of a MultipleTransition.
    c         K  s8   t  t |   j | |  | |  _ | |  _ t |  _ d  S(   N(   R   R$   R   R   R   R   R   (   R   R   R   R   R	   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   O   s    		c         C  s   t  |  | | | |  S(   N(   R#   (   R   R   R   R   R    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   V   s    N(   R   R   R   R   R   R   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR$   E   s   t   MultipleTransitionc           B  s8   e  Z d  Z d d d  Z d   Z d   Z d   Z RS(   sĺ  
    :doc: transition function
    :args: (args)

    Returns a transition that allows multiple transitions to be displayed, one
    after the other.

    `args`
        A *list* containing an odd number of items. The first, third, and
        other odd-numbered items must be scenes, and the even items
        must be transitions. A scene can be one of:

        * A displayable.
        * False, to use the old scene.
        * True, to use the new scene.

        Almost always, the first argument will be False and the last True.

    The transitions in `args` are applied in order. For each transition,
    the old scene is the screen preceding it, and the new scene is the
    scene following it. For example::

        define logodissolve = MultipleTransition([
            False, Dissolve(0.5),
            "logo.jpg", Pause(1.0),
            "logo.jpg", dissolve,
            True])

    This example will dissolve to logo.jpg, wait 1 second, and then
    dissolve to the new scene.
    c   
        sT  t  |  d d k s( t  |  d k  r7 t d   n  g  |  _ g  | d d  d  D] } t j j |  ^ qT |  _    f d   } xu t |  j d | d d  d  |  j d  D]F \ } } }	 | |  } | |	  }	 |  j j | d | d |	   qľ Wt	 t
 |   j t g  |  j D] } | j ^ q |  |  j d	 |  _ t |  _ d  S(
   Ni   i   i   sQ   MultipleTransition requires an odd number of arguments, and at least 3 arguments.i    c           s$   |  t  k r  S|  t k r    S|  S(   N(   t   FalseR   (   t   w(   R   R   (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyt   oldnew   s
    R   R   i˙˙˙˙(   t   lent	   Exceptiont   transitionsR   t   easyt   displayablet   screenst   zipt   appendR   R%   R   t   sumR   R   R&   R   (
   R   t   argsR   R   R	   t   iR(   t   oldt   transt   new(    (   R   R   sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   {   s    (	5=#8c         C  s9   g  |  j  D]$ } t | t j j j  r
 | ^ q
 |  j S(   N(   R.   t
   isinstanceR   R   R   t   DisplayableR+   (   R   R3   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR      s    c         C  sF   |  j  s! | j t j j j k r> |  j d j | | | |  Sd  Sd  S(   Ni˙˙˙˙(	   R   R
   R   R   R   R   R+   R   R   (   R   R   R   R   R   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR      s    !c         C  s:  t  j j r" t |  | | | |  SxK |  j d  D]& } | j | k rI Pn  | | j 8} q0 W|  j d } t |  _ | |  j d k	 rŹ t  j j	 j	 |  j d | | d d  n  t  j j	 j	 | | | | |  } | j
   \ } } t  j j	 j | |  } | j | d  | | j k  r6t  j j	 j |  | j |  n  | S(   Ni˙˙˙˙i    (   i    i    (   R   t   gamet   less_updatesR#   R+   R   R   R   R   R   t   get_sizeR   R   t   redraw(   R   R   R   R   R    R5   R!   R"   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   ˘   s"    	)! N(   R   R   R   R   R   R   R   R   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR%   Z   s
   		c         C  sä   t  j j t  } t  j j t  }	 t  j j |  } | rT t  j j j |  } n  | sr t  j j j d  } n  t	 | |  d | | g }
 | rŻ |
 j
 |	 |  | g  n  |
 j
 | | d | t g  t |
 d | d | S(   sa  
    :doc: transition function
    :args: (out_time, hold_time, in_time, color="#000")
    :name: Fade

    Returns a transition that takes `out_time` seconds to fade to
    a screen filled with `color`, holds at that screen for `hold_time`
    seconds, and then takes `in_time` to fade to then new screen.

    ::

        # Fade to black and back.
        define fade = Fade(0.5, 0.0, 0.5)

        # Hold at black for a bit.
        define fadehold = Fade(0.5, 1.0, 0.5)

        # Camera flash - quickly fades to white, then back to the scene.
        define flash = Fade(0.1, 0.0, 0.5, color="#fff")
    i    i˙   t   alphaR   R   (   i    i    i    i˙   (   R   t   curryt   DissolveR$   R,   t   displayable_or_noneR   t   imaget   SolidR&   t   extendR   R%   (   t   out_timet	   hold_timet   in_timeR   R   t   colort   widgetR=   t   dissolvet   notransR2   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyt   FadeÁ   s    t	   Pixellatec           B  s&   e  Z d  Z d d d  Z d   Z RS(   sß  
    :doc: transition function
    :args: (time, steps)
    :name: Pixellate

    Returns a transition that pixellates out the old screen, and then
    pixellates in the new screen.

    `time`
        The total time the transition will take, in seconds.

    `steps`
        The number of steps that will occur, in each direction. Each step
        creates pixels about twice the size of those in the previous step,
        so a 5-step pixellation will create 32x32 pixels.
    c         K  sg   t  |  } t t |   j | |  | |  _ | |  _ | |  _ | |  _ t |  _	 | d | |  _
 d  S(   Ni   (   t   floatR   RL   R   t   timet   stepsR   R   R&   R   t   quantum(   R   RN   RO   R   R   R	   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR     s    					c   	      C  s%  t  j j r" t |  | | | |  S| |  j k rS t |  _ t |  j | | | |  S| |  j	 d } |  j
 } | |  j k rŚ |  j d | d } |  j } t |  _ n  t | | | | |  } t  j j j | j | j  } | j | d  t  j j j | _ d | | _ t  j j j |  d  | S(   Ni   i   i    (   i    i    (   R   R9   R:   R#   RN   R   R   R   R   RP   R   RO   R   R   R   R   R   t	   PIXELLATEt	   operationt   operation_parameterR<   (	   R   R   R   R   R    t   stept   visiblet   rdrR"   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR     s$    			N(   R   R   R   R   R   R   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyRL   ô   s   R?   c           B  sA   e  Z d  Z d Z d   Z d Z d d e d d  Z d   Z	 RS(   s×  
    :doc: transition function
    :args: (time, alpha=False, time_warp=None)
    :name: Dissolve

    Returns a transition that dissolves from the old scene to the new scene.

    `time`
        The time the dissolve will take.

    `alpha`
        Ignored.

    `time_warp`
        A function that adjusts the timeline. If not None, this should be a
        function that takes a fractional time between 0.0 and 1.0, and returns
        a number in the same range.
    i   c         C  s   | d k  r t  |  _ n  d  S(   Ni   (   R&   R=   (   R   t   version(    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyt   after_upgradeJ  s    c         K  sS   t  t |   j | |  | |  _ | |  _ | |  _ t |  _ | |  _ | |  _	 d  S(   N(
   R   R?   R   RN   R   R   R&   R   R=   t	   time_warp(   R   RN   R   R   R=   RY   R	   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   P  s    					c   	      C  s  t  j j r" t |  | | | |  S| |  j k rS t |  _ t |  j | | | |  St	 d | |  j  } |  j
 d  k	 r |  j
 |  } n  t |  j | | | |  } t |  j | | | |  } t	 | j | j  } t	 | j | j  } t  j j j | | d |  j pt  j j } t  j j j | _ |  j p<t  j j | _ | | _ | j | d d t d t | j | d d t d t t  j j j |  d  | S(   Ng      đ?t   opaquei    t   focust   main(   i    i    (   i    i    (   R   R9   R:   R#   RN   R   R   R   R   t   minRY   R   R   R   R   R   R   R=   t   configt   dissolve_force_alphat   DISSOLVERR   t   operation_alphat   operation_completeR   R&   R<   (	   R   R   R   R   R    t   completet   bottomt   topR"   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   Z  s(    	.	N(
   R   R   R   t   __version__RX   R   RY   R&   R   R   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR?   4  s   	
t   ImageDissolvec        	   B  sV   e  Z d  Z d Z d   Z d Z d d d e e d d d d  Z d   Z	 d   Z
 RS(	   s  
    :doc: transition function
    :args: (image, time, ramplen=8, reverse=False, alpha=True, time_warp=None)
    :name: ImageDissolve

    Returns a transition that dissolves the old scene into the new scene, using
    an image to control the dissolve process. This means that white pixels will
    dissolve in first, and black pixels will dissolve in last.

    `image`
        A control image to use. This must be either an image file or
        image manipulator. The control image should be the size of
        the scenes being dissolved.

    `time`
        The time the dissolve will take.

    `ramplen`
        The length of the ramp to use. This must be an integer power
        of 2. When this is the default value of 8, when a white pixel
        is fully dissolved, a pixel 8 shades of gray darker will have
        completed one step of dissolving in.

    `reverse`
        If True, black pixels will dissolve in before white pixels.

    `alpha`
        Ignored.

    `time_warp`
        A function that adjusts the timeline. If not None, this should be a
        function that takes a fractional time between 0.0 and 1.0, and returns
        a number in the same range.

    ::

        define circirisout = ImageDissolve("circiris.png", 1.0)
        define circirisin = ImageDissolve("circiris.png", 1.0, reverse=True)
        define circiristbigramp = ImageDissolve("circiris.png", 1.0, ramplen=256)
    i   c         C  s   | d k  r t  |  _ n  d  S(   Ni   (   R&   R=   (   R   RW   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyRX   ¨  s    i   t   linearc         K  s7  t  t |   j | |  | |  _ |	 |  _ t |  _ | |  _ |
 |  _ | s t	 j
 j j d d d d d d d d d d d d d d d d d d d d  } nN t	 j
 j j d d d d d d d d d d d d d d d d d d d d  } t	 j
 j j | |  |  _ | d  k	 r!t |  } n  t | d  |  _ d  S(   Ni    i   i˙˙˙˙(   R   Rg   R   R   R   R&   R   R=   RY   R   R   t   imt   matrixt   MatrixColorRA   R   R)   t   maxt   ramplen(   R   RA   RN   Rm   t   ramptypet   rampt   reverseR=   R   R   RY   R	   Rj   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   Ž  s*    					c         C  s   t  t |   j   |  j g S(   N(   R   Rg   R   RA   (   R   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   á  s    c   
      C  sď  t  j j s t  j j r. t |  | | | |  S| |  j k r_ t |  _ t	 |  j
 | | | |  St	 |  j | | | |  } t	 |  j | | | |  } t	 |  j
 | | | |  } t | j | j | j  } t | j | j | j  } t  j j	 j | | d |  j pt  j j } | |  j }	 |  j d  k	 rB|  j |	  }	 n  t  j j	 j | _ |  j pft  j j | _ |	 | _ |  j | _ | j | d d t d t | j | d d t d t | j | d d t d t t  j j	 j |  d  | S(   NRZ   i    R[   R\   (   i    i    (   i    i    (   i    i    (   R   R9   R:   R   t   less_imagedissolveR#   R   R   R   R   R   RA   R   R]   R   R   R   R=   R^   R_   RY   R   t   IMAGEDISSOLVERR   Ra   Rb   Rm   RS   R   R&   R<   (
   R   R   R   R   R    RA   Rd   Re   R"   Rc   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   ä  s.    	.	N(   R   R   R   Rf   RX   R   RY   R&   R   R   R   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyRg   |  s   (	(	t   AlphaDissolvec           B  s8   e  Z d  Z d d d e e d  Z d   Z d   Z RS(   sĂ  
    :doc: transition function
    :args: (control, delay=0.0, alpha=False, reverse=False)

    Returns a transition that uses a control displayable (almost always some
    sort of animated transform) to transition from one screen to another. The
    transform is evaluated. The new screen is used where the transform is
    opaque, and the old image is used when it is transparent.

    `control`
        The control transform.

    `delay`
        The time the transition takes, before ending.

    `alpha`
        Ignored.

    `reverse`
        If true, the alpha channel is reversed. Opaque areas are taken
        from the old image, while transparent areas are taken from the
        new image.
     g        c         K  s   t  t |   j | |  t j j j   |  _ |  j j |  t j	 j
 |  |  _ t j	 j
 |  |  _ t |  _ | |  _ | |  _ d  S(   N(   R   Rs   R   R   R   t   layoutt   Fixedt   controlt   addR,   R-   R   R   R&   R   R=   Rp   (   R   Rv   R   R   R   R=   Rp   R	   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   "  s    
		c         C  s   t  t |   j   |  j g S(   N(   R   Rs   R   Rv   (   R   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   8  s    c   	      C  sÂ  t  j j s t  j j r. t |  | | | |  S| |  j k rI t |  _ n  t	 |  j
 | | | |  } t	 |  j | | | |  } t | j | j  } t | j | j  } t	 |  j | | | |  } t  j j	 j | | d |  j } t  j j	 j | _ |  j p
t  j j | _ d d | _ d | _ | j | d d t d t |  j s| j | d	 d t d t | j | d
 d t d t n8 | j | d d t d t | j | d d t d t | S(   NRZ   g      p@i   i    R[   R\   g      @(   i    i    (   i    i    (   i    i    (   i    i    (   i    i    (   R   R9   R:   R   Rq   R#   R   R   R   R   R   R   R]   R   R   Rv   R   R=   Rr   RR   R^   R_   Ra   Rb   RS   R   R&   Rp   (	   R   R   R   R   R    Rd   Re   Rv   R"   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   ;  s*    "		N(   R   R   R   R   R&   R   R   R   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyRs   	  s   	t   CropMovec        	   B  s8   e  Z d  Z d d d d d	 e d
 d
 d  Z d   Z RS(   s\  
    :doc: transition function
    :args: (time, mode="slideright", startcrop=(0.0, 0.0, 0.0, 1.0), startpos=(0.0, 0.0), endcrop=(0.0, 0.0, 1.0, 1.0), endpos=(0.0, 0.0), topnew=True)
    :name: CropMove

    Returns a transition that works by cropping a scene and positioning it on the
    screen. This can be used to implement a variety of effects, all of which
    involve changing rectangular slices of scenes.

    `time`
        The time the transition takes.

    `mode`
        The name of the mode of the transition. There are three groups
        of modes: wipes, slides, and other. This can also be "custom",
        to allow a custom mode to be defined.

        In a wipe, the image stays fixed, and more of it is revealed as
        the transition progresses. For example, in "wiperight", a wipe from left to right, first the left edge of the image is
        revealed at the left edge of the screen, then the center of the image,
        and finally the right side of the image at the right of the screen.
        Other supported wipes are "wipeleft", "wipedown", and "wipeup".

        In a slide, the image moves. So in a "slideright", the right edge of the
        image starts at the left edge of the screen, and moves to the right
        as the transition progresses. Other slides are "slideleft", "slidedown",
        and "slideup".

        There are also slideaways, in which the old image moves on top of
        the new image. Slideaways include "slideawayright", "slideawayleft",
        "slideawayup", and "slideawaydown".

        We also support a rectangular iris in with "irisin" and a
        rectangular iris out with "irisout".

    The following parameters are only respected if the mode is "custom". Positions
    are relative to the size of the screen, while the crops are relative to the
    size of the image. So a crop of (0.25, 0.0, 0.5, 1.0) takes the middle
    half of an image.

    `startcrop`
        The starting rectangle that is cropped out of the
        top image. A 4-element tuple containing x, y, width, and height.

    `startpos`
        The starting place that the top image is drawn
        to the screen at, a 2-element tuple containing x and y.

    `endcrop`
        The ending rectangle that is cropped out of the
        top image. A 4-element tuple containing x, y, width, and height.

    `endpos`
        The ending place that the top image is drawn
        to the screen at, a 2-element tuple containing x and y.

    `topnew`
        If true, the scene that is cropped and moved (and is on top of
        the other scene) is the new scene. If false, it is the old scene.

    ::

        define wiperight = CropMove(1.0, "wiperight")
        define wipeleft = CropMove(1.0, "wipeleft")
        define wipeup = CropMove(1.0, "wipeup")
        define wipedown = CropMove(1.0, "wipedown")

        define slideright = CropMove(1.0, "slideright")
        define slideleft = CropMove(1.0, "slideleft")
        define slideup = CropMove(1.0, "slideup")
        define slidedown = CropMove(1.0, "slidedown")

        define slideawayright = CropMove(1.0, "slideawayright")
        define slideawayleft = CropMove(1.0, "slideawayleft")
        define slideawayup = CropMove(1.0, "slideawayup")
        define slideawaydown = CropMove(1.0, "slideawaydown")

        define irisout = CropMove(1.0, "irisout")
        define irisin = CropMove(1.0, "irisin")
    t
   sliderightg        g      đ?c
         K  sB  t  t |   j | |
  | |  _ | d k rO d } d } d } d } t } nh| d k r| d } d } d } d } t } n;| d k rŠ d } d } d } d } t } n| d k rÖ d  } d! } d" } d# } t } ná| d k rd$ } d% } d& } d' } t } n´| d k r0d( } d) } d* } d+ } t } n| d	 k r]d, } d- } d. } d/ } t } nZ| d
 k rd0 } d1 } d2 } d3 } t } n-| d k rˇd4 } d5 } d6 } d7 } t } n | d k räd8 } d9 } d: } d; } t } nÓ | d k rd< } d= } d> } d? } t } nŚ | d k r>d@ } dA } dB } dC } t } ny | d k rkdD } dE } dF } dG } t } nL | d k rdH } dI } dJ } dK } t } n | d k r§n t d |   | |  _ | |  _ | |  _ | |  _	 | |  _
 | |  _ | |  _ | |  _ |	 |  _ t |  _ | r,| |  _ |	 |  _ n |	 |  _ | |  _ d  S(L   Nt	   wiperightg        g      đ?t   wipeleftt   wipedownt   wipeupRy   t	   slideleftt   slideupt	   slidedownt   slideawayleftt   slideawayrightt   slideawaydownt   slideawayupt   irisoutg      ŕ?t   irisint   customs%   Invalid mode %s passed into CropMove.(   g        g        (   g        g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g      đ?g        (   g      đ?g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g        g        (   g        g        g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   g        g      đ?(   g        g      đ?g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   g        g        (   g      đ?g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g      đ?g        (   g        g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g        g      đ?(   g        g        g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   g        g        (   g        g      đ?g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   g        g        (   g      đ?g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g      đ?g        (   g        g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g        g      đ?(   g        g        g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   g        g        (   g        g      đ?g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   g      ŕ?g      ŕ?(   g      ŕ?g      ŕ?g        g        (   g        g        (   g        g        g      đ?g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g      ŕ?g      ŕ?(   g      ŕ?g      ŕ?g        g        (   R   Rx   R   RN   R   R&   R*   R   t   startpost   endpost	   startcropt   endcropt   topnewR   R   R   Rd   Re   (   R   RN   t   modeR   R   R   R   R   R   R   R	   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   °  sĐ    																											c           s  t  j j r" t |  | | | |  Sd | |  j   d k ra t |  _ t |  j | | | |  S| | | | f      f d   } | |  j	 |  j
  } | |  j |  j  } t |  j | | | |  } t |  j | | | |  }	 t |	 j |  } t |	 j |  } t  j j j | |  }
 |
 j |	 d d |  j | j | d |  j } |
 j | | d |  j t  j j j |  d  |
 S(   Ng      đ?c           sL   t  g  t |  |    D]/ \ } } } t | | d  |   ^ q  S(   Ng      đ?(   t   tupleR/   t   int(   t   t0t   t1t   at   bt   s(   t   scalesRN   (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyt   interpolate_tupleK  s    i    R[   (   i    i    (   R   R9   R:   R#   RN   R   R   R   R   R   R   R   R   Re   Rd   R]   R   R   R   R   R   R   t
   subsurfaceR<   (   R   R   R   R   R    R   t   cropt   posRe   Rd   R"   t   ss(    (   R   RN   sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   <  s(    	(   g        g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g        g        N(   R   R   R   R   R   R   R   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyRx   ^  s   Pt   PushMovec           B  s)   e  Z d  Z d d d d  Z d   Z RS(   s  
    :doc: transition function
    :args: (time, mode="pushright")
    :name: PushMove

    Returns a transition that works by taking the new scene and using it to
    "push" the old scene off the screen.

    `time`
        The time the transition takes.

    `mode`
        There are four possible modes: "pushright", "pushleft", "pushup",
        and "pushdown", which push the old scene off the screen in the
        direction indicated.

    ::

        define pushright = PushMove(1.0, "pushright")
        define pushleft = PushMove(1.0, "pushleft")
        define pushup = PushMove(1.0, "pushup")
        define pushdown = PushMove(1.0, "pushdown")
    t	   pushrightc         K  sż  t  t |   j | |  | |  _ | d k ry d |  _ d	 |  _ d
 |  _ d |  _ d |  _ d |  _	 d |  _
 d |  _ n| d k rĐ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _	 d |  _
 d |  _ nž | d k r'd |  _ d |  _ d |  _ d |  _ d |  _ d |  _	 d |  _
 d |  _ ng | d k r~d  |  _ d! |  _ d" |  _ d# |  _ d$ |  _ d% |  _	 d& |  _
 d' |  _ n t d |   | |  _ | |  _ | |  _ | |  _ t |  _ d  S((   NR   g        g      đ?t   pushleftt   pushupt   pushdowns%   Invalid mode %s passed into PushMove.(   g        g        (   g      đ?g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g      đ?g        (   g        g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g      đ?g        (   g        g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g        g        (   g      đ?g        g        g      đ?(   g        g        (   g        g        g      đ?g      đ?(   g        g      đ?(   g        g        g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   g        g        (   g        g      đ?g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   g        g        (   g        g      đ?g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   g        g      đ?(   g        g        g      đ?g        (   g        g        (   g        g        g      đ?g      đ?(   R   R   R   RN   t   new_startpost   new_startcropt
   new_endpost   new_endcropt
   old_endpost   old_endcropt   old_startpost   old_startcropR*   R   R   R   R&   R   (   R   RN   R   R   R   R	   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   {  sX    																																	c           s  t  j j r" t |  | | | |  Sd | |  j   d k ra t |  _ t |  j | | | |  S| | | | f      f d   } | |  j	 |  j
  } | |  j |  j  } | |  j |  j  } | |  j |  j  }	 t |  j | | | |  }
 t |  j | | | |  } t  j j j | |  } | j | d t } | j | |	 d t |
 j | d t } | j | | d t t  j j j |  d  | S(   Ng      đ?c           sL   t  g  t |  |    D]/ \ } } } t | | d  |   ^ q  S(   Ng      đ?(   R   R/   R   (   R   R   R   R   R   (   R   RN   (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   Ć  s    R[   i    (   R   R9   R:   R#   RN   R   R   R   R   RĄ   RŁ   R    R˘   R§   RĽ   RŚ   R¤   R   R   R   R   R   R<   (   R   R   R   R   R    R   t   new_cropt   new_post   old_cropt   old_posR6   R4   R"   t   old_sst   new_ss(    (   R   RN   sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   ˇ  s*    	N(   R   R   R   R   R   R   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyR   b  s
   9c         C  sg   | d k	 r$ | d | d |  } n | } | d k	 rN | d | d |  } n | } |  d | d |  S(   s  
    :doc: transition function
    :args: (trans, before, after)

    Returns a transition that composes up to three transitions. If not None,
    the `before` and `after` transitions are applied to the old and new
    scenes, respectively. These updated old and new scenes are then supplied
    to the `trans` transition.

    ::

        # Move the images in and out while dissolving. (This is a fairly expensive transition.)
        define moveinoutdissolve = ComposeTransition(dissolve, before=moveoutleft, after=moveinright)
    R   R   N(   R   (   R5   t   beforet   afterR   R   R4   R6   (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyt   ComposeTransitionß  s    c      
   K  sŐ   |  \ } } } } t  j j j |  |  }	 t  j j j |  |  }
 | d |	 d |
  } | j } t  j j j | d | d | d d d d } t  j j j d d	  } | j |  | j |  t | d | d | S(
   sI   
    Applies a transition to a subset of the screen. Not documented.
    R   R   t   xpost   ypost   xanchori    t   yanchorRt   t   fixed(	   R   R   Rt   t   LiveCropR   t   Positiont   MultiBoxRw   R$   (   t   rectR5   R   R   R	   R   R   t   _wt   _hR4   R6   t   innerR   t   f(    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyt   SubTransitionü  s    	-(   t
   __future__R    t   renpy.displayR   t   renpy.display.renderR   R   R   R8   R   R#   R$   R%   R   R&   RK   RL   R?   Rg   Rs   Rx   R   R°   Rž   (    (    (    sq   C:\Users\romet\Desktop\TwistedScarlett Patreon Pack #13\FriendshipwithBenefits-0.1-pc\renpy\display\transition.pyt   <module>   s(   	j,@HU˙ }