BattleEventUtil.ts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. import { BattleUtil } from "../data/BattleUtil";
  2. export const TowerUUID = -1;
  3. //战斗消息工具类
  4. export enum BattleEventTarget{
  5. Update = "update",
  6. //攻击动作事件
  7. HeroAction = "hero_action",
  8. //英雄属性变化
  9. HeroAttr = "hero_Attr",
  10. }
  11. export enum BattleEventType{
  12. //敌人出生
  13. EnemyBorn = "enemy_born",
  14. //敌人移动
  15. EnemyMove = "enemy_move",
  16. //敌人受击
  17. EnemyHurt = "enemy_hurt",
  18. //敌人死亡
  19. EnemyDie = "enemy_die",
  20. //敌人buff改变
  21. EnemyBuff = "enemy_buff",
  22. //英雄动作
  23. HeroAction = "hero_action",
  24. //英雄攻击
  25. HeroAttack = "hero_attack",
  26. //英雄打出子弹
  27. HeroAttackBullet = "hero_attack_bullet",
  28. //子弹伤害 /死亡
  29. BulletAttack = "bullet_hurt",
  30. //子弹移动
  31. BulletMove = "bullet_move",
  32. //战斗结束
  33. Over = "over",
  34. }
  35. export enum BuffEventState{
  36. //添加
  37. Add,
  38. //移除
  39. Remove,
  40. //刷新
  41. Refresh,
  42. }
  43. //伤害状态
  44. export enum HurtEventState{
  45. //普通
  46. Normal,
  47. //暴击
  48. Critical,
  49. //毒
  50. Poison,
  51. //雪
  52. Snow,
  53. }
  54. //英雄动作
  55. export enum HeroActionType{
  56. //普通
  57. Normal,
  58. //暴击
  59. Critical,
  60. //技能1
  61. Skill1,
  62. //技能2
  63. Skill2,
  64. }
  65. export enum EnemyActionType{
  66. //出生
  67. Born,
  68. //受击
  69. Hurt,
  70. //移动
  71. Move,
  72. //技能
  73. Skill,
  74. //死亡
  75. Die,
  76. }
  77. export interface BattleEventData{
  78. eventType:BattleEventType;
  79. }
  80. export interface BattleEventData_EnemyBorn extends BattleEventData{
  81. eventType:BattleEventType.EnemyBorn;
  82. ID:number;
  83. typeID:number;
  84. position:BattleUtil.Vector2;
  85. speedVector:BattleUtil.Vector2;
  86. life:number;
  87. lifeMax:number;
  88. }
  89. export interface BattleEventData_EnemyMove extends BattleEventData{
  90. eventType:BattleEventType.EnemyMove;
  91. ID:number;
  92. speedVector:BattleUtil.Vector2;
  93. }
  94. export interface BattleEventData_EnemyHurt extends BattleEventData{
  95. eventType:BattleEventType.EnemyHurt;
  96. //攻击者类型,仅用于统计
  97. typeID:number;
  98. //被攻击者ID
  99. targetID:number;
  100. hurt:number;
  101. status:HurtEventState;
  102. }
  103. export interface BattleEventData_EnemyDie extends BattleEventData{
  104. eventType:BattleEventType.EnemyDie;
  105. typeID:number;
  106. ID:number;
  107. }
  108. //英雄开始做动作
  109. export interface BattleEventData_HeroAction extends BattleEventData{
  110. eventType:BattleEventType.HeroAction;
  111. //攻击者位置
  112. posID:number;
  113. targetID:number;
  114. action:HeroActionType;
  115. }
  116. //英雄直接伤害
  117. export interface BattleEventData_HeroAttack extends BattleEventData{
  118. eventType:BattleEventType.HeroAttack;
  119. //攻击者位置
  120. posID:number;
  121. targetID:number;
  122. hurt:number;
  123. status:HurtEventState;
  124. }
  125. //打出子弹
  126. export interface BattleEventData_HeroAttackBullet extends BattleEventData{
  127. eventType:BattleEventType.HeroAttackBullet;
  128. posID:number;
  129. targetID:number;
  130. bulletID:number;
  131. }
  132. //子弹直接伤害
  133. export interface BattleEventData_BulletAttack extends BattleEventData{
  134. eventType:BattleEventType.BulletAttack;
  135. //攻击者类型,仅用于统计
  136. typeID:number;
  137. targetID:number;
  138. hurt:number;
  139. status:HurtEventState;
  140. }
  141. export interface BattleEventData_BulletMove extends BattleEventData{
  142. eventType:BattleEventType.BulletMove;
  143. ID:number;
  144. speedVector:BattleUtil.Vector2;
  145. }
  146. //buff改变
  147. export interface BattleEventData_EnemyBuff extends BattleEventData{
  148. eventType:BattleEventType.EnemyBuff;
  149. ID:number;
  150. buffID:number;
  151. eventState:BuffEventState;
  152. }
  153. //战斗结束
  154. export interface BattleEventData_Over extends BattleEventData{
  155. eventType:BattleEventType.Over;
  156. bWin:boolean;
  157. }
  158. //动作触发计算
  159. export interface BattleEventHeroAction{
  160. action:HeroActionType;
  161. //攻击位置的下标
  162. posIndex:number;
  163. }
  164. export interface BossDataUpdate{
  165. ID:number;
  166. action:EnemyActionType;
  167. value:number;
  168. }