§
    ê©jö  ã                  ó€   — d Z ddlmZ ddlZddlZddlmZmZmZm	Z	 ddl
mZ dd„Zddd„Zddd„Zdd„Zddd„Zd d„ZdS )!u$  AutoPOE2 - Quáº£n LÃ½ Cáº¥u HÃ¬nh & Tháº©m Ä�á»‹nh Tráº¡ng ThÃ¡i NgÆ°á»�i DÃ¹ng (Settings Manager).

Cung cáº¥p cÃ¡c hÃ m xá»­ lÃ½ lÆ°u/náº¡p cÃ i Ä‘áº·t ngÆ°á»�i dÃ¹ng, phÃ¢n tÃ­ch tráº¡ng thÃ¡i nhÃ¢n váº­t
vÃ  tháº©m Ä‘á»‹nh tÃ­nh há»£p lÃ½ cá»§a chá»‰ sá»‘ sinh tá»“n (Vitals Validation).
é    )ÚannotationsN)ÚAnyÚDictÚOptionalÚTuple)Úui_themeÚreturnÚstrc                 óÂ   — t           j                             t           j                             t           j                             t
          ¦  «        dd¦  «        ¦  «        S )Nz..zuser_settings.json)ÚosÚpathÚabspathÚjoinÚdirnameÚ__file__© ó    ú>C:\Projects\AutoPOE2\src\assistant_tool\ui\settings_manager.pyÚget_default_settings_pathr      s>   € ÝŒ7�?Š?Ý
Œ�Š•R”W—_’_¥XÑ.Ô.°Ð6JÑKÔKñô ð r   ÚfilepathúOptional[str]úDict[str, Any]c                óP  — | pt          ¦   «         }t          j                             |¦  «        rt	 t	          |dd¬¦  «        5 }t          j        |¦  «        }t          |t          ¦  «        r|cddd¦  «         S 	 ddd¦  «         n# 1 swxY w Y   n# t          $ r Y nw xY wddiS )uW   Náº¡p tá»‡p user_settings.json. Náº¿u chÆ°a cÃ³ hoáº·c lá»—i, tráº£ vá»� máº·c Ä‘á»‹nh.Úrúutf-8©ÚencodingNÚexpected_max_hpÚAuto)
r   r   r   ÚexistsÚopenÚjsonÚloadÚ
isinstanceÚdictÚ	Exception)r   r   ÚfÚdatas       r   Úload_user_settingsr)      s  € àÐ2Õ0Ñ2Ô2€DÝ	„w‡~‚~�dÑÔð ð	Ý�d˜C¨'Ð2Ñ2Ô2ð  °aÝ”y ‘|”|�Ý˜d¥DÑ)Ô)ð  Øð ð  ð  ð  ñ  ô  ð  ð  ð ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  øøõ ð 	ð 	ð 	ØˆDð	øøøà˜vÐ&Ð&s;   ±B Á+BÁ.B Á<B ÂBÂB ÂBÂB Â
B!Â B!r(   Úboolc                ó  — |pt          ¦   «         }	 t          |¦  «        }|                     | ¦  «         t          |dd¬¦  «        5 }t	          j        ||d¬¦  «         ddd¦  «         n# 1 swxY w Y   dS # t          $ r Y dS w xY w)	u6   LÆ°u tá»« Ä‘iá»ƒn cÃ i Ä‘áº·t vÃ o user_settings.json.Úwr   r   é   )ÚindentNTF)r   r)   Úupdater!   r"   Údumpr&   )r(   r   r   Úcurrentr'   s        r   Úsave_user_settingsr2   $   sÜ   € àÐ2Õ0Ñ2Ô2€DðÝ$ TÑ*Ô*ˆØ�Š�tÑÔÐÝ�$˜ gÐ.Ñ.Ô.ð 	,°!ÝŒI�g˜q¨Ð+Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,àˆtøÝð ð ð Øˆuˆuðøøøs5   ’6A9 ÁA,Á A9 Á,A0Á0A9 Á3A0Á4A9 Á9
BÂBÚtextÚintc                ó´   — |                       ¦   «                              ¦   «         }|dv rdS |                     ¦   «         rt          |¦  «        }|dk    r|S dS )u
  Láº¥y giÃ¡ trá»‹ expected_max_hp tá»« chuá»—i ngÆ°á»�i dÃ¹ng nháº­p:
    - 'Auto', rá»—ng, '0' -> 0 (Cháº¿ Ä‘á»™ tá»± Ä‘á»™ng hoÃ n toÃ n).
    - 'ci', 'chaos inoculation' -> 1 (Chaos Inoculation build).
    - Sá»‘ > 0 -> GiÃ¡ trá»‹ sá»‘ (Ghi Ä‘Ã¨ thá»§ cÃ´ng).
    )Úcizchaos inoculationé   r   )ÚstripÚlowerÚisdigitr4   )r3   ÚcleanÚvals      r   Úget_expected_max_hp_from_strr=   1   s\   € ð �JŠJ‰LŒL×ÒÑ Ô €EØÐ+Ð+Ð+ØˆqØ‡}‚}�„ð Ý�%‰jŒjˆØ�Š7ˆ7ØˆJØˆ1r   Úmax_hpÚ
current_hpc                óð  — | dk     r| dk    s| dk    rdS |dk    r|| k    rdS t          | ¦  «        }|                     d¦  «        rdS t          |¦  «        dk    r,|                     d¦  «        r|                     d	¦  «        sdS t          |¦  «        d
k    r"t          t	          |¦  «        ¦  «        dk    rdS t          |¦  «        dk    r&|d         |d         k    r|d         |d         k    rdS dS )uP  Kiá»ƒm tra tÃ­nh há»£p lÃ½ cá»§a Vitals trÆ°á»›c khi gá»­i recalibrate sang C++ Core:
    - KhÃ´ng gá»­i náº¿u max_hp < 50 (trá»« CI max_hp=1) hoáº·c max_hp > 30000.
    - KhÃ´ng gá»­i náº¿u current_hp > max_hp (khi current_hp > 0).
    - KhÃ´ng gá»­i náº¿u max_hp cÃ³ dáº¡ng láº·p báº¥t thÆ°á»�ng (UI markers 778/779, 7793, 77xx).
    é2   r7   i0u  Fr   )Ú778Ú779Ú7793é   Ú77Ú00é   r-   T)r
   Ú
startswithÚlenÚendswithÚset)r>   r?   Úss      r   Úis_valid_vitalsrN   A   sö   € ð 	�Šˆ˜ !š˜¨°ª¨ØˆuØ�A‚~€~˜* vÒ-Ð-ØˆuåˆF‰Œ€AØ‡|‚|Ð*Ñ+Ô+ð ØˆuÝ
ˆ1�v„v�‚{€{�q—|’| DÑ)Ô)€{°!·*²*¸TÑ2BÔ2B€{ØˆuÝ
ˆ1�v„v�‚{€{•s�3˜q™6œ6‘{”{ aÒ'Ð'ØˆuÝ
ˆ1�v„v�‚{€{�q˜”t˜q œt’|�|¨¨!¬°°!´ª¨ØˆuØˆ4r   ÚflagsúTuple[str, str, str]c                óH  — | dz  rddt          j        d¦  «        fS | dz  rddt          j        d¦  «        fS | d	z  rd
dt          j        d¦  «        fS | dz  rddt          j        d¦  «        fS | dz  rddt          j        d¦  «        fS ddt          j        d¦  «        fS )u(  PhÃ¢n tÃ­ch movement_flags sang (icon, text, color):
    - Bit 3 (8): ðŸ’€ Tá»¬ TRáº¬N (DEAD)
    - Bit 4 (16): ðŸ›¡ï¸� GRACE PERIOD (Báº¤T Tá»¬ Ä�áº¦U MAP)
    - Bit 1 (2): ðŸŒ€ LÆ¯á»šT NÃ‰ (ROLLING)
    - Bit 0 (1): ðŸ�ƒ Ä�ANG DI CHUYá»‚N (MOVING)
    - Bit 2 (4): ðŸ§˜ Ä�á»¨NG YÃŠN (IDLE)
    é   u   ðŸ’€u   Tá»¬ TRáº¬NÚ	alert_redé   u   ðŸ›¡ï¸�u$   GRACE PERIOD (Báº¤T Tá»¬ Ä�áº¦U MAP)Ú
gold_lightr-   u   ðŸŒ€u   LÆ¯á»šT NÃ‰Úspiritr7   u   ðŸ�ƒu   Ä�ANG DI CHUYá»‚NÚ	info_cyanrE   u   ðŸ§˜u   Ä�á»¨NG YÃŠNÚok)ÚthemeÚc)rO   s    r   Úparse_character_stater[   X   sÊ   € ð ˆq�yð =Ø˜¥u¤w¨{Ñ';Ô';Ð<Ð<Øˆr�zð ZØÐAÅ5Ä7È<ÑCXÔCXÐYÐYØˆq�yð :Ø˜¥u¤w¨xÑ'8Ô'8Ð9Ð9Øˆq�yð CØÐ+­U¬W°[Ñ-AÔ-AÐBÐBØˆq�yð 7Ø˜­¬°©¬Ð6Ð6Ø�N¥E¤G¨D¡M¤MÐ2Ð2r   )r	   r
   )N)r   r   r	   r   )r(   r   r   r   r	   r*   )r3   r
   r	   r4   )r   )r>   r4   r?   r4   r	   r*   )rO   r4   r	   rP   )Ú__doc__Ú
__future__r   r"   r   Útypingr   r   r   r   Úsrc.assistant_toolr   rY   r   r)   r2   r=   rN   r[   r   r   r   ú<module>r`      sü   ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð'ð 'ð 'ð 'ð 'ð
ð 
ð 
ð 
ð 
ðð ð ð ð ð ð ð ð ð.3ð 3ð 3ð 3ð 3ð 3r   