BattleEventUtil.ts 3.5 KB

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