MagicWeaponCollisionInfo.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using Fort23.Core;
  2. using Fort23.UTool;
  3. using GameLogic.Combat.Hero;
  4. using GameLogic.Combat.Hero.State;
  5. namespace GameLogic.Combat.CombatTool
  6. {
  7. public class MagicWeaponCollisionInfo : CObject
  8. {
  9. public CombatMagicWeaponEntity a;
  10. public CombatMagicWeaponEntity b;
  11. public int id;
  12. protected float _currTime;
  13. /// <summary>
  14. /// 状态 0=等待状态 1=飞行状态 2=碰撞状态
  15. /// </summary>
  16. public int State;
  17. public void Init(CombatMagicWeaponEntity a, CombatMagicWeaponEntity b,int id)
  18. {
  19. this.id = id;
  20. this.a = a;
  21. this.b = b;
  22. a.MagicWeaponCollisionId = id;
  23. b.MagicWeaponCollisionId = id;
  24. State = 0;
  25. }
  26. public void Update(float t)
  27. {
  28. if (State == 0)
  29. {
  30. if (a.CombatAIBasic.stateControl.CurrStateName.Equals(CombatHeroStateType.idle) &&
  31. b.CombatAIBasic.stateControl.CurrStateName.Equals(CombatHeroStateType.idle))
  32. {
  33. State = 1;
  34. }
  35. }
  36. if (State == 2)
  37. {
  38. _currTime += t;
  39. if (_currTime > 0.1f)
  40. {
  41. _currTime = 0;
  42. if (a != null)
  43. {
  44. a.ReduceHp(1);
  45. }
  46. if (b != null)
  47. {
  48. b.ReduceHp(1);
  49. }
  50. }
  51. }
  52. }
  53. public void SetState(int state)
  54. {
  55. State = state;
  56. }
  57. public override void ActiveObj()
  58. {
  59. }
  60. public override void DormancyObj()
  61. {
  62. a = null;
  63. b = null;
  64. }
  65. public void Finish()
  66. {
  67. LogTool.Log("碰撞完成");
  68. if (a.HpBl > 0)
  69. {
  70. a.CombatAIBasic.ChangeState(CombatHeroStateType.att);
  71. a.MagicWeaponCollisionId = -1;
  72. b.MagicWeaponCollisionId = -1;
  73. }
  74. if (b.HpBl > 0)
  75. {
  76. b.CombatAIBasic.ChangeState(CombatHeroStateType.att);
  77. a.MagicWeaponCollisionId = -1;
  78. b.MagicWeaponCollisionId = -1;
  79. }
  80. }
  81. }
  82. }