RedKnifeAIConditional.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. using System;
  2. using BehaviorDesigner.Runtime.Tasks;
  3. using UnityEngine;
  4. public class RedKnifeAIConditional
  5. {
  6. [TaskCategory("Enemy/RedKnife")]
  7. [TaskDescription("在跳劈距离外")]
  8. public class OutJumpAtkRange : Conditional
  9. {
  10. private Transform player
  11. {
  12. get
  13. {
  14. return R.Player.Transform;
  15. }
  16. }
  17. public override void OnAwake()
  18. {
  19. this.jumpAtk = base.GetComponent<EnemyAIAttribute>().attackExpectations[2];
  20. }
  21. public override TaskStatus OnUpdate()
  22. {
  23. float num = Mathf.Abs(this.player.position.x - this.transform.position.x);
  24. if (num > this.jumpAtk.range + this.jumpAtk.distance)
  25. {
  26. return TaskStatus.Success;
  27. }
  28. return TaskStatus.Failure;
  29. }
  30. private EnemyAIAttribute.ExpectationParam jumpAtk;
  31. }
  32. [TaskCategory("Enemy/RedKnife")]
  33. [TaskDescription("砍击到跳劈距离")]
  34. public class OutCutAtkRange : Conditional
  35. {
  36. private Transform player
  37. {
  38. get
  39. {
  40. return R.Player.Transform;
  41. }
  42. }
  43. public override void OnAwake()
  44. {
  45. this.jumpAtk = base.GetComponent<EnemyAIAttribute>().attackExpectations[2];
  46. this.cutAtk = base.GetComponent<EnemyAIAttribute>().attackExpectations[1];
  47. }
  48. public override TaskStatus OnUpdate()
  49. {
  50. float num = Mathf.Abs(this.player.position.x - this.transform.position.x);
  51. if (num <= this.jumpAtk.range + this.jumpAtk.distance && num > this.cutAtk.distance + this.cutAtk.range)
  52. {
  53. return TaskStatus.Success;
  54. }
  55. return TaskStatus.Failure;
  56. }
  57. private EnemyAIAttribute.ExpectationParam jumpAtk;
  58. private EnemyAIAttribute.ExpectationParam cutAtk;
  59. }
  60. [TaskDescription("脚踢到砍击距离")]
  61. [TaskCategory("Enemy/RedKnife")]
  62. public class OutKickAtkRange : Conditional
  63. {
  64. private Transform player
  65. {
  66. get
  67. {
  68. return R.Player.Transform;
  69. }
  70. }
  71. public override void OnAwake()
  72. {
  73. this.kickAtk = base.GetComponent<EnemyAIAttribute>().attackExpectations[0];
  74. this.cutAtk = base.GetComponent<EnemyAIAttribute>().attackExpectations[1];
  75. }
  76. public override TaskStatus OnUpdate()
  77. {
  78. float num = Mathf.Abs(this.player.position.x - this.transform.position.x);
  79. if (num <= this.cutAtk.range + this.cutAtk.distance && num > this.kickAtk.distance + this.kickAtk.range)
  80. {
  81. return TaskStatus.Success;
  82. }
  83. return TaskStatus.Failure;
  84. }
  85. private EnemyAIAttribute.ExpectationParam cutAtk;
  86. private EnemyAIAttribute.ExpectationParam kickAtk;
  87. }
  88. [TaskCategory("Enemy/RedKnife")]
  89. [TaskDescription("脚踢距离内")]
  90. public class WithinKickAtkRange : Conditional
  91. {
  92. private Transform player
  93. {
  94. get
  95. {
  96. return R.Player.Transform;
  97. }
  98. }
  99. public override void OnAwake()
  100. {
  101. this.kickAtk = base.GetComponent<EnemyAIAttribute>().attackExpectations[0];
  102. }
  103. public override TaskStatus OnUpdate()
  104. {
  105. float num = Mathf.Abs(this.player.position.x - this.transform.position.x);
  106. if (num <= this.kickAtk.distance + this.kickAtk.range)
  107. {
  108. return TaskStatus.Success;
  109. }
  110. return TaskStatus.Failure;
  111. }
  112. private EnemyAIAttribute.ExpectationParam kickAtk;
  113. }
  114. }