
    Bգi                    H   U d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
  G d dee          Z G d	 d
ee          Z G d dee          Z ed           G d d                      Z ed           G d d                      Z ed           G d d                      Z edddd edddddddej        dz  d 	  	         ed!d"d#ej        d$d%&           ed'd(d)ej        d*d+&           ed,d-d.ej        d/d0&          f1          Z ed2d3d4d5 ed6d7dd8d9d:d;d*d<ej        =
  
         ed>d?d#ej        dd@&           edAdBd)ej        ddC&           edDdEd.ej        ddF&          f1          Zej        eej        eiZdGedH<   ej        ZdPdMZdQdOZdS )Ru   
英雄定义 —— 属性 & 技能数据
所有距离单位为像素（世界坐标 4000×3000）
所有速度单位为像素/tick（20 tick/s 基准，运行时由 _TICK_SCALE 缩放）
    )annotationsN)	dataclassfield)Enum)Optionalc                      e Zd ZdZdZdS )
DamageTypephysicalmagicalN)__name__
__module____qualname__PHYSICALMAGICAL     5/root/workspace/TheGreatWar/server/app/game/heroes.pyr	   r	      s        HGGGr   r	   c                      e Zd ZdZdZdZdS )SkillTargetTypenone	directionpositionN)r   r   r   NONE	DIRECTIONPOSITIONr   r   r   r   r      s        DIHHHr   r   c                      e Zd ZdZdZdS )
AttackTypefantargetedN)r   r   r   FANTARGETEDr   r   r   r   r      s        CHHHr   r   T)frozenc                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ej        Zded<   dS )	HeroStatsinthpphysical_attackmagical_attackphysical_defensemagical_defensefloatspeedattack_rangeattack_angle	attack_cdr   attack_typeN)r   r   r   __annotations__r   r    r0   r   r   r   r$   r$       s         GGGLLL(nK,,,,,,r   r$   c                  L    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
S )SkillDefstridnamekeyr   target_typer+   cooldowndescriptionN)r   r   r   r1   r   r   r   r3   r3   .   sN         GGGIIIHHH    OOOr   r3   c                  T    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ddZdS )HeroDefr4   r5   r6   titlecolorr$   statsz#tuple[SkillDef, SkillDef, SkillDef]skillsreturndictc                   | j         | j        | j        | j        | j        j        | j        j        | j        j        | j        j        | j        j	        | j        j
        | j        j        | j        j        j        dd | j        D             dS )N)r&   r'   r(   r)   r*   r,   r-   r0   c           	     f    g | ].}|j         |j        |j        |j        j        |j        |j        d /S )r5   r6   r7   r8   r9   r:   )r5   r6   r7   r8   valuer9   r:   ).0ss     r   
<listcomp>z#HeroDef.to_dict.<locals>.<listcomp>Q   sR     
 
 
  $F5#$=#6 !
#$= 
 
 
r   r5   r6   r=   r>   r?   r@   )r5   r6   r=   r>   r?   r&   r'   r(   r)   r*   r,   r-   r0   rF   r@   )selfs    r   to_dictzHeroDef.to_dictA   s    'IZZjm#':#="&*";$(J$?#':#=) $
 7#z5;	 	
 
 
 
 

 
 	
r   N)rA   rB   )r   r   r   r1   rL   r   r   r   r<   r<   8   sf         GGGIIIJJJJJJ////
 
 
 
 
 
r   r<   red_ladyu	   红夫人u   镜花水月z#c0392bi     d   g       @g      d@   g?)	r&   r'   r(   r)   r*   r,   r-   r.   r/   
red_lady_fu   水镜fg      $@u   在指定位置放置水镜，创生出一个会模仿自身的镜像。水镜最多持续14秒，再次使用技能可以使其提前消失。rE   
red_lady_eu   旋舞eg        u   对周围敌人造成（120%物攻）物理伤害，0.5秒后与镜像交换位置。存在自己的水镜时才能使用，每面水镜最多使用一次。
red_lady_ru   碎裂镜片rg      @u   向指定方向扇形发射3片碎裂镜片。中间镜片造成（100%物攻）物理伤害，两侧各造成（70%物攻）物理伤害。rJ   soul_weaveru	   缀魂者u   灵能操纵z#8e44adi	     P   x   g      "@g     @@g333333?)
r&   r'   r(   r)   r*   r,   r-   r.   r/   r0   soul_weaver_fu   灵能灌注uu   强化5s内所有普攻：射程提升20%并获得追踪效果，命中后额外造成（140%法攻）法术伤害。soul_weaver_eu	   缚魂印u;   强化5s内下一次普攻：命中后造成1.5秒定身。soul_weaver_ru   裂魂弹幕uu   强化5s内下一次普攻：普攻后额外发射4个小能量球，造成主能量球25%的伤害和定身时长。zdict[str, HeroDef]HERO_REGISTRYhero_idr4   rA   Optional[HeroDef]c                6    t                               |           S )N)r^   get)r_   s    r   get_herorc      s    W%%%r   
list[dict]c                 H    d t                                           D             S )Nc                6    g | ]}|                                 S r   )rL   )rG   hs     r   rI   zlist_heroes.<locals>.<listcomp>   s     888AAIIKK888r   )r^   valuesr   r   r   list_heroesri      s"    88!5!5!7!78888r   )r_   r4   rA   r`   )rA   rd   )__doc__
__future__r   mathdataclassesr   r   enumr   typingr   r4   r	   r   r   r$   r3   r<   pir   r   r   RED_LADYr!   SOUL_WEAVERr5   r^   r1   DEFAULT_HERO_IDrc   ri   r   r   r   <module>rt      s    
 # " " " " "  ( ( ( ( ( ( ( (                d   
    c4       d   
 $
- 
- 
- 
- 
- 
- 
- 
- $        $#
 #
 #
 #
 #
 #
 #
 #
T 7	


)Wq[
 
 
 	'0 j	
 	
 	
 	', x	
 	
 	
 	'1 g	
 	
 	
#!* * *X g	


)'   	', P	
 	
 	
 	',U	
 	
 	
 	', P	
 	
 	
##+ + +\ KNK%    
 +& & & &9 9 9 9 9 9r   