BattleEventUtil.ts 2.9 KB

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