
    Rϣi                    0   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j2                  eej2                  eiZdGedH<   ej2                  ZdKdIZdLdJZy)Mu   
英雄定义 —— 属性 & 技能数据
所有距离单位为像素（世界坐标 4000×3000）
所有速度单位为像素/tick（20 tick/s 基准，运行时由 _TICK_SCALE 缩放）
    )annotationsN)	dataclassfield)Enum)Optionalc                      e Zd ZdZdZy)
DamageTypephysicalmagicalN)__name__
__module____qualname__PHYSICALMAGICAL     M/mnt/c/Users/DipsyHou/Desktop/workspace/TheGreatWar/server/app/game/heroes.pyr	   r	      s    HGr   r	   c                      e Zd ZdZdZdZy)SkillTargetTypenone	directionpositionN)r   r   r   NONE	DIRECTIONPOSITIONr   r   r   r   r      s    DIHr   r   c                      e Zd ZdZdZy)
AttackTypefantargetedN)r   r   r   FANTARGETEDr   r   r   r   r      s    CHr   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<   y)	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$       sD    GL(nnK,r   r$   c                  J    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   y
)SkillDefstridnamekeyr   target_typer+   cooldowndescriptionN)r   r   r   r1   r   r   r   r3   r3   .   s"    G
I	H  Or   r3   c                  R    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y)HeroDefr4   r5   r6   titlecolorr$   statsz#tuple[SkillDef, SkillDef, SkillDef]skillsc                   | j                   | j                  | j                  | j                  | j                  j
                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  j                  d| j                  D cg c]Q  }|j                   |j                  |j                  |j                   j                  |j"                  |j$                  dS c}dS c c}w )N)r&   r'   r(   r)   r*   r,   r-   r0   r5   r6   r7   r8   r9   r:   r5   r6   r=   r>   r?   r@   )r5   r6   r=   r>   r?   r&   r'   r(   r)   r*   r,   r-   r0   valuer@   r7   r8   r9   r:   )selfss     r   to_dictzHeroDef.to_dictA   s    ''IIZZZZjjmm#'::#=#="&**";";$(JJ$?$?#'::#=#=)) $

 7 7#zz55;;	& 
 %A $$FF55#$==#6#6 !

#$== %

 	

s   /AE
N)returndict)r   r   r   r1   rG   r   r   r   r<   r<   8   s'    G
IJJ//
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秒，再次使用技能可以使其提前消失。rB   
red_lady_eu   旋舞eg        u   对周围敌人造成（120%物攻）物理伤害，0.5秒后与镜像交换位置。存在自己的水镜时才能使用，每面水镜最多使用一次。
red_lady_ru   碎裂镜片rg      @u   向指定方向扇形发射3片碎裂镜片。中间镜片造成（100%物攻）物理伤害，两侧各造成（70%物攻）物理伤害。rC   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_REGISTRYc                ,    t         j                  |       S N)r[   get)hero_ids    r   get_heror`      s    W%%r   c                 l    t         j                         D  cg c]  } | j                          c} S c c} w r]   )r[   valuesrG   )hs    r   list_heroesrd      s+    !.!5!5!78!7AAIIK!7888s   1)r_   r4   rH   zOptional[HeroDef])rH   z
list[dict])__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_IDr`   rd   r   r   r   <module>ro      sF  
 #  (  d 
c4 d 
 $
- 
- 
- $   $#
 #
 #
T 	


WWq[
 	'00 j	
 	',, x	
 	'11 g	
#!*X 	


'' 	',, P	
 	',,U	
 	',, P	
##+\ KKNNK%! 
 ++&9r   