BattleEventUtil.ts 3.8 KB

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