§
   †kpb~¾ìã                   ó€   — d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZ  G d„ d	¦  «        ZdS )
zUStory runtime: one cancellable preparation worker, a pure engine, shared modal/voice.é    N)Úgame_settings)Úview)Ú
DemoSourceÚUnavailable)ÚEngine)ÚTtsVoiceÚSilentVoicec                   óN   — e Zd Zdd„Zd„ Zd„ Zd„ Zdd„Zd	„ Zd
„ Z	d„ Z
d„ Zd„ ZdS )ÚStoryAdapterÚ Nc                 ó´  — ||c| _         | _        |€"|rt          |¦  «        }nddlm}  |¦   «         }|| _        t          |t          ¦  «        r|                     |¦  «        | _        |j        dk    rt          ¦   «         nt          ¦   «         | _        d | _        d| _        d| _        d| _        d| _        d| _        t%          j        ¦   «         | _        d S )Nr   )ÚAiSourceÚdemoÚmediumr   ÚtitleT)ÚdialogÚsubjectr   Úwcs.games.story.air   ÚsourceÚ
isinstanceÚscoped_subjectÚnamer	   r   ÚvoiceÚengineÚ
difficultyÚerrorÚ_screenÚ_activeÚ_generationÚ	threadingÚRLockÚ_lock)Úselfr   r   Údemo_idr   r   s         úe/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/games/story/adapter.pyÚ__init__zStoryAdapter.__init__   sÖ   € Ø$*¨GÐ!ˆŒ�T”\Øˆ>Øð $Ý# GÑ,Ô,��à7Ð7Ð7Ð7Ð7Ð7Ø!˜™œ�ØˆŒÝ�f�jÑ)Ô)ð 	:Ø!×0Ò0°Ñ9Ô9ˆDŒLØ&,¤k°VÒ&;Ð&;•[‘]”]�]ÅÁÄˆŒ
ØˆŒØ"ˆŒØˆŒ
ØˆŒØˆŒØˆÔÝ”_Ñ&Ô&ˆŒ
ˆ
ˆ
ó    c                 ó.   — |                       ¦   «          d S ©N)Ú_publish©r#   s    r%   ÚstartzStoryAdapter.start#   s   € Ø�Š‰Œˆˆˆr'   c                 ó   — | j         S r)   )r   r+   s    r%   ÚscreenzStoryAdapter.screen&   s
   € ØŒ|Ðr'   c           
      óL   — ddddddddddœ	                      | j        d¦  «        S )Ni�%  i5&  i7&  i>&  iB&  i8&  )	r   ÚrulesÚloadingÚquestionÚfeedbackÚwinÚgameoverÚresultsr   )Úgetr   r+   s    r%   Úfocus_targetzStoryAdapter.focus_target)   s=   € Ø¨¸È4Ð]aØ¨¸$ÈðOð OßORÊsÐSWÔS_ÐaeÑOfÔOfð	gr'   Fc                 ó€  — | j         sd S t          j        ¦   «         }| j        dk    r)dt	          j        t          j        ¦  «                 | _        t          j        | j	        | j        | j        |j
        | j        ¦  «        }| j        j        dk    r| 
                    d¦  «        nd|d<   | j        j        dk    rP| j        j        �D| j        j        �8|dxx         d                     | j        j        | j        j        ¦  «        z  cc<   |                     ¦   «         D ]#\  }}| j                             d|z   |¦  «         Œ$| j                             d	| j        ¦  «         | j                             d
| j        dk    rdnd¦  «         |r0| j                             |                      ¦   «         d¬¦  «         d S d S )Nr   ©Úeasyr   Úhardr   i`Š  r   Ú
SourceNoteu    Â· S{:02}E{:02}ú
WCS.Story.zWCS.Game.ScreenzWCS.Game.ButtonsReadyr1   Útruegš™™™™™©?)Údelay)r   Ú	xbmcaddonÚAddonr   r   Úvalue_ofÚ	STORY_ROWr   r   r   ÚgetLocalizedStringr   r   r   r   Úseason_numberÚepisode_numberÚformatÚitemsr   ÚsetPropertyÚ_delayed_focusr8   )r#   ÚfocusÚaddonÚdataÚkeyÚvalues         r%   r*   zStoryAdapter._publish-   s¹  € ØŒ|ð 	ØˆFÝ”Ñ!Ô!ˆØŒ<˜7Ò"Ð"Ø8½Ô9OÕP]ÔPgÑ9hÔ9hÔiˆDŒOÝŒy˜œ d¤l°D´OÀUÔE]Ð_cÔ_iÑjÔjˆØ@DÄÔ@PÐTZÒ@ZÐ@Z˜U×5Ò5°eÑ<Ô<Ð<Ð`bˆˆ\ÑØŒ;Ô˜vÒ%Ð%¨$¬,Ô*DÐ*PÐUYÔUaÔUpÐU|Ø�ÐÐÔÐ"4×";Ò";¸D¼LÔ<VÐX\ÔXdÔXsÑ"tÔ"tÑtÐÐÑØŸ*š*™,œ,ð 	?ð 	?‰JˆC�ØŒK×#Ò# L°3Ñ$6¸Ñ>Ô>Ð>Ð>ØŒ×ÒÐ 1°4´<Ñ@Ô@Ð@ØŒ×ÒÐ 7¸t¼|ÈyÒ?XÐ?X¸¸Ð^dÑeÔeÐeØð 	HØŒK×&Ò& t×'8Ò'8Ñ':Ô':À$Ð&ÑGÔGÐGÐGÐGð	Hð 	Hr'   c                 óÊ  — | j         5  | j        s	 d d d ¦  «         d S |dk    r| j        dk    rdnd}|dv r| j        dv r|                      ¦   «          �nu|dk    r)| j        dk    rd| _        |                      d	¦  «         �nF|                     d
¦  «        r£| j        dk    r˜| j                             t          |dd …         ¦  «        ¦  «        rhdddœ 	                    | j        j
        d¦  «        | _        |                      d	¦  «         | j                             dd| j        j        j        ¦  «         nŽ|dk    rj| j        rc| j                             ¦   «         rJ| j                             ¦   «          d| _        |                      d	¦  «         |                      ¦   «          n|dv r| j                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚstory_primaryr3   ÚnextÚagain)r,   rT   Úretry)r   r0   r4   r5   r   r0   r   TÚanswerr2   é   r5   r4   )ÚlostÚwonr   )r   ÚhomeÚend)r"   r   r   Ú_preparer*   Ú
startswithr   rV   Úintr7   Ústater   r3   ÚsceneÚrevealÚadvanceÚstopÚ_speak_scener   Úleave)r#   Úintents     r%   ÚactzStoryAdapter.act>   sJ  € ØŒZð 	*ð 	*Ø”<ð Øð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð ˜Ò(Ð(Ø#'¤<°:Ò#=Ð#=˜˜À7�ØÐ4Ð4Ð4¸¼ÐIwÐ9wÐ9wØ—’‘”�‘Ø˜7Ò"Ð" t¤|°wÒ'>Ð'>Ø&�”Ø—’˜dÑ#Ô#Ð#Ñ#Ø×"Ò" 8Ñ,Ô,ð *°´ÀÒ1KÐ1KØ”;×%Ò%¥c¨&°°°¬*¡o¤oÑ6Ô6ð JØ,6¸uÐ#EÐ#E×#IÒ#IÈ$Ì+ÔJ[Ð]gÑ#hÔ#h�D”LØ—M’M $Ñ'Ô'Ð'Ø”J×'Ò'¨¨B°´Ô0AÔ0HÑIÔIÐIøØ˜6Ò!Ð! d¤kÐ!°d´k×6IÒ6IÑ6KÔ6KÐ!Ø”
—’Ñ!Ô!Ð!Ø)�”Ø—’˜dÑ#Ô#Ð#Ø×!Ò!Ñ#Ô#Ð#Ð#ØÐ3Ð3Ð3Ø”×!Ò! &Ñ)Ô)Ð)ð+	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ˆ	GžF-GÇGÇGc                 óÀ  ‡ ‡‡— ‰ j                              ¦   «          ‰ j        r‰ j                             ¦   «          d ‰ _        d‰ _        dt          j        t
          j        ¦  «                 ‰ _        ‰ xj	        dz  c_	        ‰ j	        ‰ j        cŠŠd‰ _
        ‰                      d¦  «         ˆˆˆ fd„}t          j        |d¬¦  «                             ¦   «          d S )Nr   r:   é   r1   Tc                  ó¦  •— 	 ‰j                              ‰j        ‰¦  «        } d}n–# t          $ r}d t	          |¦  «        }} Y d }~nvd }~wt
          $ rf}d } t          j        ¦   «                              d¦  «        }t          j
        dt          |¦  «        j        z   t          j        ¦  «         Y d }~nd }~ww xY w‰j        5  ‰j        r‰‰j        k    r	 d d d ¦  «         d S |‰_        | rt%          | ¦  «        nd ‰_        | rdnd‰_        ‰                     d¦  «         | r‰                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr   i]Š  z[Story] preparation failed: r2   r   T)r   Úpreparer   r   ÚstrÚ	ExceptionrA   rB   rE   ÚxbmcÚlogÚtypeÚ__name__Ú
LOGWARNINGr"   r   r   r   r   r   r   r*   rd   )Úpackr   Úexcr   Ú
generationr#   s      €€€r%   Úworkerz%StoryAdapter._prepare.<locals>.workerb   sØ  ø€ ð	_Ø”{×*Ò*¨4¬<¸ÑDÔD�Ø��øÝð -ð -ð -Ø"¥C¨¡H¤H�e������øøøøÝð _ð _ð _Ø�Ý!œÑ)Ô)×<Ò<¸UÑCÔC�å”Ð7½$¸s¹)¼)Ô:LÑLÍdÌoÑ^Ô^Ð^Ð^Ð^Ð^Ð^Ð^øøøøð	_øøøð
 ”ð (ð (Ø”|ð  z°TÔ5EÒ'EÐ'EØð(ð (ð (ñ (ô (ð (ð (ð (ð #�”
Ø.2Ð<�f T™lœl˜l¸�”Ø-1Ð>˜z˜z°w�”Ø—’˜dÑ#Ô#Ð#Øð (Ø×%Ò%Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s:   ƒ"& ¦
B9°AÁB9ÁAB4Â4B9ÃEÃ$AEÅE
ÅE
)ÚtargetÚdaemon)r   rc   r   Úcloser   r   rC   rD   r   r   r   r*   r    ÚThreadr,   )r#   rv   r   ru   s   ` @@r%   r\   zStoryAdapter._prepareV   sè   øøø€ ØŒ
�ŠÑÔÐØŒ;ð 	 ØŒK×ÒÑÔÐØˆŒØˆŒ
Ø4µ]Ô5KÍMÔLcÑ5dÔ5dÔeˆŒØÐÔ˜AÑÐÔØ!%Ô!1°4´?Ðˆ
�JØ ˆŒØ�Š�dÑÔÐð	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(õ( 	Ô ¨tÐ4Ñ4Ô4×:Ò:Ñ<Ô<Ð<Ð<Ð<r'   c                 ót   — | j         j        }| j                             |j        |j        |j        ¦  «         d S r)   )r   r`   r   r2   ÚsetupÚoptions)r#   r`   s     r%   rd   zStoryAdapter._speak_scenex   s2   € Ø”Ô!ˆØŒ
×Ò˜EœK¨¬¸¼ÑGÔGÐGÐGÐGr'   c                 ó  — | j         5  | j        s	 d d d ¦  «         d S d| _        | xj        dz  c_        | j        r | j                             ¦   «          d | _        | j                             ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )NFri   )r"   r   r   r   ry   r   rc   r+   s    r%   ÚretirezStoryAdapter.retire|   s÷   € ØŒZð 	ð 	Ø”<ð Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð !ˆDŒLØÐÔ Ñ!ÐÔØŒ{ð #Ø”×!Ò!Ñ#Ô#Ð#Ø"�”ØŒJ�OŠOÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆ	BžABÂBÂ	Bc                 ó†   — |                       ¦   «          t          j        D ]}| j                             d|z   ¦  «         Œ d S )Nr>   )r   r   ÚFIELDSr   ÚclearProperty)r#   rO   s     r%   ÚcleanupzStoryAdapter.cleanup‡   sH   € Ø�Š‰ŒˆÝ”;ð 	:ð 	:ˆCØŒK×%Ò% l°SÑ&8Ñ9Ô9Ð9Ð9ð	:ð 	:r'   )r   N)F)rq   Ú
__module__Ú__qualname__r&   r,   r.   r8   r*   rg   r\   rd   r   rƒ   © r'   r%   r   r      s¿   € € € € € ð'ð 'ð 'ð 'ð(ð ð ðð ð ðgð gð gðHð Hð Hð Hð"*ð *ð *ð0 =ð  =ð  =ðDHð Hð Hð	ð 	ð 	ð:ð :ð :ð :ð :r'   r   )Ú__doc__r    rn   rA   Ú	wcs.gamesr   Úwcs.games.storyr   Úwcs.games.story.contentr   r   Úwcs.games.story.enginer   Úwcs.games.voicer   r	   r   r†   r'   r%   ú<module>r�      sÎ   ðØ [Ð [Ø Ð Ð Ð à €€€Ø Ð Ð Ð à #Ð #Ð #Ð #Ð #Ð #Ø  Ð  Ð  Ð  Ð  Ð  Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø )Ð )Ð )Ð )Ð )Ð )Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ð|:ð |:ð |:ð |:ð |:ñ |:ô |:ð |:ð |:ð |:r'   