§
   ‹›sŠ6èÚ—ã                   óö  — d Z ddlmZmZmZ dZdZ G d„ de¦  «        ZdZ edd	d
dddd¬¦  «         eddd
dddd¬¦  «         eddd
ddde¬¦  «         eddd
ddde¬¦  «         eddd
d d!de¬¦  «         ed"d#d
d$d%de¬¦  «         ed&d'd
d(d)de¬¦  «         ed*d+d,d-d.d/d0¬1¦  «         ed2d3d
d4d5dd6d*d0¬7¦	  «	         ed8d9d:d;d<d=dd>d?d*d0¬@¦  «         edAdBd
dCdDddEd*d0¬7¦	  «	        fZ	 edFdFd
dGdHdd¬¦  «        Z
dI„ e	e
fz   D ¦   «         ZdJZdK„  ee	¦  «        D ¦   «         ZdLee
j        <   dM„ e                     ¦   «         D ¦   «         ZdN\  ZZdO„ ZdP„ Zd\dR„Zd\dS„Zd]dT„Zd\dU„Zd\dV„Zd^dW„ZdX„ Zd_dY„Zd^dZ„Zd^d[„ZdQS )`u±  The settings screen of the Millionaire game: the addon settings of the game (all but the voice) as rows.

The screen is an overlay of the title card (WCS.Game.Settings); this module is what it shows and changes. A row is a
setting of the addon (resources/settings.xml, category "Hra MilionÃ¡Å™"): changing it here writes the very same addon
setting, so the screen and the addon settings are one thing and the game reads them as it always did when it begins
(difficulty, text lengths, style) or when a round starts (auto-play). Nothing here has a value of its own.

    kind 'select'  an index into `options` (string ids of the language files), stored as the index
    kind 'bool'    stored as true / false
    kind 'slider'  a whole number between `low` and `high`, stored as text

Keys and setting ids never change independently: the XML (scripts/game_dialog/gen_modern_game.py) reads the
properties `WCS.Game.Set.<key>` this module publishes.
é    )Ú
NamedTupleÚOptionalÚTuplezWCS.Game.Set.zplugin.video.milionarc                   ó¼   — e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   dZeedf         ed	<   d
Z	eed<   d
Z
eed<   dZeed<   dZee         ed<   dZeed<   dS )ÚRowÚkeyÚsettingÚkindÚlabelÚdescriptionÚdefault© .Úoptionsr   ÚlowÚhighÚ ÚunitNÚneedsÚgameÚgroup)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__ÚintÚobjectr   r   r   r   r   r   r   r   r   ó    úe/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/games/game_settings.pyr   r      s®   € € € € € € Ø	€H€H�HØ€L€L�LØ
€I€I�IØ€J€J�JØÐÐÑØ€O€O�OØ!€GˆU�3˜�8Œ_Ð!Ð!Ñ!Ø€Cˆ€L€L�LØ€Dˆ#€M€M�MØ€Dˆ#€N€N�NØ€Eˆ8�CŒ=ÐÐÑØ€Eˆ3ÐÐÑÐÐr   r   )iž‰  iŸ‰  i ‰  i¡‰  Ú
difficultyÚmillionaire_difficultyÚselectik}  i¼‰  é   )il}  im}  in}  )r   ÚstyleÚmilionar_moderator_stylei­‰  i½‰  é   )iÌˆ  iÍˆ  iÎˆ  iÏˆ  iÐˆ  Úlen_welcomeÚmilionar_len_welcomei–‰  i¾‰  Ú	len_introÚmilionar_len_introi—‰  i¿‰  Ú
len_resultÚmilionar_len_resulti˜‰  iÀ‰  Úlen_transitionÚmilionar_len_transitioni™‰  iÁ‰  Úlen_explanationÚmilionar_len_explanationiš‰  iÂ‰  ÚautoplayÚmilionar_autoplayÚbooli�‰  iÃ‰  FÚ	spectator)r   Úautoplay_fail_roundÚmilionar_autoplay_fail_roundi®‰  iÄ‰  )i‚‰  iƒ‰  i„‰  i…‰  i†‰  i‡‰  )r   r   r   Úautoplay_speedÚmilionar_autoplay_speedÚslideriˆ‰  iÅ‰  é   é
   z s)r   r   r   r   r   Úautoplay_lifelinesÚmilionar_autoplay_lifelinesi¯‰  iÆ‰  )iŠ‰  i‹‰  iŒ‰  i�‰  Ústory_difficultyiJŠ  iKŠ  c                 ó   — i | ]
}|j         |“ŒS r   )r   )Ú.0Úrows     r   ú
<dictcomp>rB   8   s   € Ð	6Ð	6Ð	6˜3ˆ#Œ'�3Ð	6Ð	6Ð	6r   iå%  c                 ó4   — i | ]\  }}|j         t          |z   “ŒS r   )r   ÚFIRST_CONTROL)r@   ÚindexrA   s      r   rB   rB   :   s%   € ÐMÐMÐM©z¨u°cˆCŒG•] UÑ*ÐMÐMÐMr   iø%  c                 ó0   — i | ]\  }}|t           |         “ŒS r   )ÚBY_KEY)r@   r   Úcontrols      r   rB   rB   <   s"   € ÐHÐHÐH¡| s¨Gˆg•v˜c”{ÐHÐHÐHr   )i°‰  i±‰  c                  ó>   — dd l } |                      t          ¦  «        S )Nr   )Ú	xbmcaddonÚAddonÚADDON_ID)rJ   s    r   Ú_addonrM   @   s    € ØÐÐÐØ�?Š?�8Ñ$Ô$Ð$r   c                 óD   — t          ¦   «                              | ¦  «        S )zhA string of the addon in the language of Kodi (the addon's own language files, not Kodi's core strings).)rM   ÚgetLocalizedString)Ú	string_ids    r   Ú_textrQ   E   s   € å‰8Œ8×&Ò& yÑ1Ô1Ð1r   Nc                 ó¾  — |pt          ¦   «                              | j        ¦  «        }| j        dk    r|dv r|dk    nt	          | j        ¦  «        S 	 t          |¦  «        }n# t          t          f$ r
 | j        cY S w xY w| j        dk    r+d|cxk    rt          | j
        ¦  «        k     rn n|n| j        S t          | j        t          | j        |¦  «        ¦  «        S )zbThe current value of a row, read from the addon setting (the default when it is empty or invalid).r3   )ÚtrueÚfalserS   r"   r   )rM   Ú
getSettingr	   r
   r3   r   r   Ú	TypeErrorÚ
ValueErrorÚlenr   Úminr   Úmaxr   )rA   ÚaddonÚrawÚnumbers       r   Úvalue_ofr^   J   sò   € àÐ•F‘H”H×
(Ò
(¨¬Ñ
5Ô
5€CØ
„x�6ÒÐØ #Ð'8Ð 8Ð 8ˆs�fŠ}ˆ}½dÀ3Ä;Ñ>OÔ>OÐOðÝ�S‘”ˆˆøÝ•zÐ"ð ð ð ØŒ{ÐÐÐðøøøà
„x�8ÒÐØ˜fÐ7Ð7Ò7Ð7¥s¨3¬;Ñ'7Ô'7Ò7Ð7Ð7Ð7Ð7ˆvˆv¸S¼[ÐHÝˆsŒx�˜SœW fÑ-Ô-Ñ.Ô.Ð.s   ÁA# Á#A>Á=A>c                 óŠ   — |pt          ¦   «                              | j        |du rdn|du rdnt          |¦  «        ¦  «         |S )z3Write a value into the addon setting and return it.TrS   FrT   )rM   Ú
setSettingr	   r   )rA   Úvaluer[   s      r   Ústorerb   X   sN   € à
Ð�f‰hŒh×"Ò" 3¤;¸%À4¸-¸-°°ÐX]ÐafÐXfÐXfÈWÈWÕloÐpuÑlvÔlvÑwÔwÐwØ€Lr   c                 óL  — |pt          ¦   «         }t          | |¦  «        }| j        dk    rt          | |r| n||¦  «        S | j        dk    rdt	          | j        ¦  «        dz
  fn| j        | j        f\  }}||z   }||k    r|r|n|}n||k     r|r|n|}t          | ||¦  «        S )zeMove a row's value by `delta` (-1 / +1) and store it; selects and bools wrap around only when `wrap`.r3   r"   r   r#   )rM   r^   r
   rb   rX   r   r   r   )rA   Údeltar[   ÚwrapÚcurrentr   r   Únews           r   Ústeprh   ^   sÍ   € àÐ•V‘X”X€EÝ�s˜EÑ"Ô"€GØ
„x�6ÒÐÝ�S¨Ð;˜g˜+˜+°G¸UÑCÔCÐCØ-0¬X¸Ò-AÐ-A�•C˜œÑ$Ô$ qÑ(Ð)Ð)ÈÌÐQTÔQYÐGZ�I€CˆØ
�E‰/€CØ
ˆT‚z€zØÐ#ˆcˆc˜tˆˆØ	ˆsŠˆØÐ#ˆdˆd ˆÝ��c˜5Ñ!Ô!Ð!r   c                 ó(   — t          | d|d¬¦  «        S )z:OK on a row: the next value, after the last the first one.r#   T)re   )rh   ©rA   r[   s     r   Úcyclerk   m   s   € å��Q˜ DÐ)Ñ)Ô)Ð)r   c                 ón   — | j         d u p,t          t          t          | j                  |¦  «        ¦  «        S ©N)r   r3   r^   rG   rj   s     r   Úvisiblern   r   s-   € ØŒ9˜ÐÐH¥¥X­f°S´YÔ.?ÀÑ%GÔ%GÑ HÔ HÐHr   c                 óô   — |pt           }t          | |¦  «        }| j        dk    r ||rt          nt          ¦  «        S | j        dk    rd                     || j        ¦  «        S  || j        |         ¦  «        S )uJ   The value of a row as the player reads it ("StÅ™ednÃ­", "Zapnuto", "5 s").r3   r9   z{}{})rQ   r^   r
   ÚONÚOFFÚformatr   r   )rA   r[   Ú	translatera   s       r   Útext_ofrt   v   s{   € àÐ"�U€IÝ�S˜%Ñ Ô €EØ
„x�6ÒÐØˆy˜uÐ-�˜­#Ñ.Ô.Ð.Ø
„x�8ÒÐØ�}Š}˜U C¤HÑ-Ô-Ð-Øˆ9�S”[ Ô'Ñ(Ô(Ð(r   c                 ó,   — | dk    rt           fnt          S )NÚstory)Ú	STORY_ROWÚROWS)Úmodes    r   Úrows_forrz   �   s   € Ø 7š?˜?�Iˆ<ˆ<µÐ4r   c                 óè   — |pt           }| pt          ¦   «         } i }|€t          n|D ]J}t          || |¦  «        |t          |j        z   <   t          || ¦  «        rdnd|t          |j        z   dz   <   ŒK|S )zjname -> text of every property the settings screen reads (the values; `Show` is 'true' for a visible row).NrS   r   z.Show)rQ   rM   rx   rt   ÚPREFIXr   rn   )r[   rs   ÚrowsÚvaluesrA   s        r   Ú
propertiesr   …   s‡   € àÐ"�U€IØÐ•V‘X”X€EØ€FØ�|�tˆt¨ð Sð SˆÝ#*¨3°°yÑ#AÔ#Aˆ�v˜œÑÑ Ý7>¸sÀEÑ7JÔ7JÐ-R¨V¨VÐPRˆ�v˜œÑ 'Ñ)Ñ*Ð*Ø€Mr   c                 ó˜  ‡‡— ‰pt           Št          | |¦  «        }| j        dk    r&d                     | j        | j        | j        ¦  «        S | j        dk    r  ‰t          ¦  «         ‰t          ¦  «        gnˆfd„| j	        D ¦   «         }| j        dk    r|rdndn|Šd 
                    ˆfd„t          |¦  «        D ¦   «         ¦  «        S )	zgAll the values a row can take, one per line, the current one in gold (for the card of the focused row).r9   u   {} â€“ {}{}r3   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r   r   )r@   Úoptionrs   s     €r   ú
<listcomp>zchoices.<locals>.<listcomp>–   s%   ø€ ÐGtÐGtÐGtÐ^dÈ	È	ÐRXÑHYÔHYÐGtÐGtÐGtr   r   r#   z[CR]c              3   ó~   •K  — | ]7\  }}|‰k    rd                       |¦  «        nd                      |¦  «        V — Œ8dS )u&   [COLOR FFE8B860][B]â€¢  {}[/B][/COLOR]z[COLOR FF8E909A]    {}[/COLOR]N)rr   )r@   rE   Únamerf   s      €r   ú	<genexpr>zchoices.<locals>.<genexpr>˜   st   øè è € ð oð oÙNYÈeÐUYð QVÐY`ÒP`ÐP`Ð?×FÒFÀtÑLÔLÐLØ<×CÒCÀDÑIÔIðoð oð oð oð oð or   )rQ   r^   r
   rr   r   r   r   rp   rq   r   ÚjoinÚ	enumerate)rA   r[   rs   ra   Únamesrf   s     `  @r   ÚchoicesrŠ   �   sù   øø€ àÐ"�U€IÝ�S˜%Ñ Ô €EØ
„x�8ÒÐØ×#Ò# C¤G¨S¬X°s´xÑ@Ô@Ð@Ø/2¬x¸6Ò/AÐ/AˆYˆY•r‰]Œ]˜I˜I¥c™NœNÐ+Ð+ÐGtÐGtÐGtÐGtÐhkÔhsÐGtÑGtÔGt€EØ%(¤X°Ò%7Ð%7�EÐ ˆqˆq˜q˜q¸U€GØ�;Š;ð oð oð oð oÝ]fÐglÑ]mÔ]mðoñ oô oñ oô oð or   c                 ót   — |pt           } || j        ¦  «        t          | ||¦  «         || j        ¦  «        fS )zO(name, value, description) of a row for the card that explains the focused row.)rQ   r   rt   r   )rA   r[   rs   s      r   ÚdescriberŒ   œ   s=   € àÐ"�U€IØˆ9�S”YÑÔ¥¨¨e°YÑ!?Ô!?ÀÀÈ3Ì?ÑA[ÔA[Ð[Ð[r   rm   )NF)NN)NNN) Ú__doc__Útypingr   r   r   r|   rL   r   ÚLENGTHSrx   rw   rG   rD   rˆ   ÚCONTROLSr   ÚitemsÚ
BY_CONTROLrp   rq   rM   rQ   r^   rb   rh   rk   rn   rt   rz   r   rŠ   rŒ   r   r   r   ú<module>r“      s|  ððð ð /Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à	€Ø"€ðð ð ð ð ˆ*ñ ô ð ð '€à€CˆÐ.°¸%ÀÈÐShÐiÑiÔiØ€CˆÐ+¨X°u¸eÀQÐPsÐtÑtÔtØ€CˆÐ-¨x¸ÀÀqÐRYÐZÑZÔZØ€CˆÐ)¨8°U¸EÀ1ÈgÐVÑVÔVØ€CˆÐ+¨X°u¸eÀQÐPWÐXÑXÔXØ€CÐÐ3°X¸uÀeÈQÐX_Ð`Ñ`Ô`Ø€CÐÐ5°xÀÈÈqÐZaÐbÑbÔbØ€Cˆ
Ð'¨°¸¸uÈKÐXÑXÔXØ€CÐÐ=¸xÈÐPUÐWXØ:À*ÐT_ðañ aô aà€CÐÐ3°X¸uÀeÈQÐTUÐ\^ÐeiØ ð-ñ -ô -à€CÐÐ;¸XÀuÈeÐUVØ,°JÀkðSñ Sô Sð€ð  ˆCÐ"Ð$6¸À%ÈÐPQØ-ð/ñ /ô /€	à	6Ð	6 $¨)¨Ñ"5Ð	6Ñ	6Ô	6€Ø€ØMÐM¸Y¸YÀt¹_¼_ÐMÑMÔM€Ø€ˆŒÑ ØHÐH°x·~²~Ñ7GÔ7GÐHÑHÔH€
Ø
�€€Cð%ð %ð %ð
2ð 2ð 2ð
/ð /ð /ð /ðð ð ð ð"ð "ð "ð "ð*ð *ð *ð *ð
Ið Ið Ið Ið)ð )ð )ð )ð5ð 5ð 5ðð ð ð ð	oð 	oð 	oð 	oð\ð \ð \ð \ð \ð \r   