§
    ”žj"  ã                   óh   — d Z ddlZddlZddlZddlmZ  ej        d¦  «        Z G d„ d¦  «        ZdS )uý   
Bá»™ Tá»± Hiá»‡u Chuáº©n Pháº£n Xáº¡ Sinh Tá»“n (Dynamic Reflex Parameter Auto-Tuner)
Tá»± Ä‘á»™ng Ä‘iá»�u chá»‰nh cÃ¡c ngÆ°á»¡ng bÆ¡m mÃ¡u, nÃ© lÃ¹i (Iframe Dodge) vÃ  cá»± ly tháº£ diá»�u dá»±a trÃªn dá»¯ liá»‡u tá»­ vong vÃ  nguy cáº¥p thá»±c táº¿.
é    N)ÚDictÚReflexTunerc                   ó’   — e Zd ZdZddefd„Zddedeeef         fd„Z	dd
„Z
deeef         fd„Zdeeef         fd„Zdd„Zdd„Zd	S )ÚReflexParameterTuneru~   
    Tá»± Ä‘á»™ng tá»‘i Æ°u hÃ³a tham sá»‘ pháº£n xáº¡ cá»§a Core Engine theo phong cÃ¡ch chÆ¡i vÃ  Ä‘á»™ khÃ³ cá»§a map.
    ú!captures/tuned_reflex_config.jsonÚconfig_pathc                 óž   — || _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        |                      ¦   «          d S )Nçš™™™™™á?ç)\�Âõ(Ì?ç     €A@ç
×£p=
Ç?r   )	r   Úflask_hp_thresholdÚburst_dodge_thresholdÚkiting_distanceÚemergency_chicken_hpÚconsecutive_deathsÚnear_death_eventsÚsuccessful_runsÚ_load_config)Úselfr   s     ú7C:\Projects\AutoPOE2\src\agentic_engine\reflex_tuner.pyÚ__init__zReflexParameterTuner.__init__   sZ   € Ø&ˆÔØ)-ˆÔØ,0ˆÔ"Ø&*ˆÔØ+/ˆÔ!à'(ˆÔØ&'ˆÔØ$%ˆÔØ×ÒÑÔÐÐÐó    r   Ú
area_levelÚreturnc                 óâ  — | xj         dz  c_         d| _        t          d| j        dz   ¦  «        | _        t	          d| j        dz
  ¦  «        | _        t          d| j        dz   ¦  «        | _        t          d	| j        dz   ¦  «        | _        t           	                    d
| j         › d| j        d›d| j        d›d| j        d›�¦  «         |  
                    ¦   «          |                      ¦   «         S )Né   r   g      è?gš™™™™™©?g333333Ã?ç{®Gáz”?g      I@g      @gìQ¸…ëÑ?u1   [ReflexTuner] PhÃ¡t hiá»‡n tá»­ tráº­n (Chuá»—i: u*   )! Tá»± Ä‘á»™ng siáº¿t an toÃ n: Flask HP=z.2fz, Dodge Delta=z, Kite Dist=z.1f)r   r   Úminr   Úmaxr   r   r   ÚloggerÚwarningÚ_save_configÚget_current_parameters)r   r   s     r   Úrecord_deathz!ReflexParameterTuner.record_death   s  € ØÐÔ 1Ñ$ÐÔØ ˆÔå"% d¨DÔ,CÀdÑ,JÑ"KÔ"KˆÔÝ%(¨¨tÔ/IÈDÑ/PÑ%QÔ%QˆÔ"Ý" 4¨Ô)=ÀÑ)CÑDÔDˆÔÝ$'¨¨dÔ.GÈ$Ñ.NÑ$OÔ$OˆÔ!å�ŠðbÀÔ@Wð bð bØ6:Ô6MÐUðbð bàÔ5Ðaðbð bàGKÔG[Ðaðbð bñ	
ô 	
ð 	
ð
 	×ÒÑÔÐØ×*Ò*Ñ,Ô,Ð,r   Nc                 óê   — | xj         dz  c_         | j         dk    rWt          d| j        dz   ¦  «        | _        t          d| j        dz   ¦  «        | _        d| _         |                      ¦   «          d S d S )Nr   é   gffffffæ?g¸…ëQ¸ž?g      H@g       @r   )r   r   r   r   r#   ©r   s    r   Úrecord_near_deathz&ReflexParameterTuner.record_near_death0   s€   € ØÐÔ !Ñ#ÐÔØÔ! QÒ&Ð&Ý&)¨$°Ô0GÈ$Ñ0NÑ&OÔ&OˆDÔ#Ý#& t¨TÔ-AÀCÑ-GÑ#HÔ#HˆDÔ Ø%&ˆDÔ"Ø×ÒÑÔÐÐÐð	 'Ð&r   c                 óR  — | xj         dz  c_         d| _        | j         dk    rrt          d| j        dz
  ¦  «        | _        t	          d| j        dz   ¦  «        | _        t          d| j        d	z
  ¦  «        | _        d| _         |                      ¦   «          |                      ¦   «         S )
Nr   r   é   r
   r   r   g{®Gáz„?r   g      ø?)	r   r   r    r   r   r   r   r#   r$   r(   s    r   Úrecord_clean_runz%ReflexParameterTuner.record_clean_run8   s§   € ØÐÔ Ñ!ÐÔØ"#ˆÔàÔ 1Ò$Ð$Ý&)¨$°Ô0GÈ$Ñ0NÑ&OÔ&OˆDÔ#Ý),¨T°4Ô3MÐPTÑ3TÑ)UÔ)UˆDÔ&Ý#& t¨TÔ-AÀCÑ-GÑ#HÔ#HˆDÔ Ø#$ˆDÔ Ø×ÒÑÔÐà×*Ò*Ñ,Ô,Ð,r   c                 ó´   — t          | j        d¦  «        t          | j        d¦  «        t          | j        d¦  «        t          | j        d¦  «        | j        dœS )Né   r   )r   r   r   r   r   )Úroundr   r   r   r   r   r(   s    r   r$   z+ReflexParameterTuner.get_current_parametersE   sW   € å"'¨Ô(?ÀÑ"CÔ"CÝ%*¨4Ô+EÀqÑ%IÔ%IÝ$ TÔ%9¸1Ñ=Ô=Ý$)¨$Ô*CÀQÑ$GÔ$GØ"&Ô"9ð
ð 
ð 	
r   c                 ó˜  — t          j        t           j                             | j        ¦  «        pdd¬¦  «         	 t          | j        dd¬¦  «        5 }t          j        |                      ¦   «         |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S # t          $ r(}t                               d	|› �¦  «         Y d }~d S d }~ww xY w)
Nú.T)Úexist_okÚwúutf-8©Úencodingr.   )Úindentu&   [ReflexTuner] Lá»—i lÆ°u cáº¥u hÃ¬nh: )ÚosÚmakedirsÚpathÚdirnamer   ÚopenÚjsonÚdumpr$   Ú	Exceptionr!   Úerror)r   ÚfÚes      r   r#   z!ReflexParameterTuner._save_configN   s2  € Ý
Œ•B”G—O’O DÔ$4Ñ5Ô5Ð<¸ÀtÐLÑLÔLÐLð	GÝ�dÔ&¨°gÐ>Ñ>Ô>ð FÀ!Ý”	˜$×5Ò5Ñ7Ô7¸À1ÐEÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Føåð 	Gð 	Gð 	GÝ�LŠLÐEÀ!ÐEÐEÑFÔFÐFÐFÐFÐFÐFÐFÐFøøøøð	Gøøøs;   ¼B Á*B
Á=B Â
BÂB ÂBÂB Â
C	Â!CÃC	c                 ó  — t           j                             | j        ¦  «        rè	 t	          | j        dd¬¦  «        5 }t          j        |¦  «        }|                     dd¦  «        | _        |                     dd¦  «        | _	        |                     dd	¦  «        | _
        |                     d
d¦  «        | _        d d d ¦  «         d S # 1 swxY w Y   d S # t          $ r(}t                               d|› �¦  «         Y d }~d S d }~ww xY wd S )NÚrr4   r5   r   r
   r   r   r   r   r   r   u(   [ReflexTuner] Lá»—i Ä‘á»�c cáº¥u hÃ¬nh: )r8   r:   Úexistsr   r<   r=   ÚloadÚgetr   r   r   r   r?   r!   r@   )r   rA   ÚdatarB   s       r   r   z!ReflexParameterTuner._load_configV   sw  € ÝŒ7�>Š>˜$Ô*Ñ+Ô+ð 		MðMÝ˜$Ô*¨C¸'ÐBÑBÔBð WÀaÝœ9 Q™<œ<�DØ.2¯hªhÐ7KÈTÑ.RÔ.R�DÔ+Ø15·²Ð:QÐSWÑ1XÔ1X�DÔ.Ø+/¯8ª8Ð4EÀtÑ+LÔ+L�DÔ(Ø04·²Ð9OÐQUÑ0VÔ0V�DÔ-ðWð Wð Wñ Wô Wð Wð Wð Wð Wð Wð Wð Wøøøð Wð Wð Wð Wð Wð Wøõ ð Mð Mð MÝ—’ÐKÈÐKÐKÑLÔLÐLÐLÐLÐLÐLÐLÐLøøøøðMøøøð		Mð 		Ms;   ¦C ½BCÂ>C ÃCÃC ÃCÃC Ã
D
Ã"DÄD
)r   )r   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   Úintr   Úfloatr%   r)   r,   r$   r#   r   © r   r   r   r      sü   € € € € € ðð ð
ð 
 Cð 
ð 
ð 
ð 
ð-ð - sð -°4¸¸U¸
Ô3Cð -ð -ð -ð -ð" ð  ð  ð  ð- $ s¨E zÔ"2ð -ð -ð -ð -ð
¨¨S°%¨ZÔ(8ð 
ð 
ð 
ð 
ðGð Gð Gð Gð
Mð 
Mð 
Mð 
Mð 
Mð 
Mr   r   )	rL   r=   Úloggingr8   Útypingr   Ú	getLoggerr!   r   rP   r   r   ú<module>rT      s–   ððð ð
 €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð à	ˆÔ	˜=Ñ	)Ô	)€ðRMð RMð RMð RMð RMñ RMô RMð RMð RMð RMr   