BattleEventUtil.ts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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. typeID:number;
  103. ID:number;
  104. }
  105. //英雄开始做动作
  106. export interface BattleEventData_HeroAction extends BattleEventData{
  107. eventType:BattleEventType.HeroAction;
  108. //攻击者位置
  109. posID:number;
  110. targetID:number;
  111. action:HeroActionType;
  112. }
  113. //英雄直接伤害
  114. export interface BattleEventData_HeroAttack extends BattleEventData{
  115. eventType:BattleEventType.HeroAttack;
  116. //攻击者位置
  117. posID:number;
  118. targetID:number;
  119. hurt:number;
  120. status:HurtEventState;
  121. }
  122. //打出子弹
  123. export interface BattleEventData_HeroAttackBullet extends BattleEventData{
  124. eventType:BattleEventType.HeroAttackBullet;
  125. posID:number;
  126. targetID:number;
  127. bulletID:number;
  128. }
  129. //子弹直接伤害
  130. export interface BattleEventData_BulletAttack extends BattleEventData{
  131. eventType:BattleEventType.BulletAttack;
  132. //攻击者类型,仅用于统计
  133. typeID:number;
  134. targetID:number;
  135. hurt:number;
  136. status:HurtEventState;
  137. }
  138. export interface BattleEventData_BulletMove extends BattleEventData{
  139. eventType:BattleEventType.BulletMove;
  140. ID:number;
  141. speedVector:BattleUtil.Vector2;
  142. }
  143. //buff改变
  144. export interface BattleEventData_EnemyBuff extends BattleEventData{
  145. eventType:BattleEventType.EnemyBuff;
  146. ID:number;
  147. buffID:number;
  148. eventState:BuffEventState;
  149. }
  150. //战斗结束
  151. export interface BattleEventData_Over extends BattleEventData{
  152. eventType:BattleEventType.Over;
  153. bWin:boolean;
  154. }
  155. //动作触发计算
  156. export interface BattleEventHeroAction{
  157. action:HeroActionType;
  158. //攻击位置的下标
  159. posIndex:number;
  160. }
  161. export interface BossDataUpdate{
  162. ID:number;
  163. action:EnemyActionType;
  164. value:number;
  165. }