BeelzebubAIAction.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System;
  2. using BehaviorDesigner.Runtime.Tasks;
  3. using ExtensionMethods;
  4. using UnityEngine;
  5. public class BeelzebubAIAction
  6. {
  7. [TaskCategory("Enemy/Beelzebub")]
  8. [TaskDescription("Beelzebub攻击")]
  9. public class BeelzebubAttack : BehaviorDesigner.Runtime.Tasks.Action
  10. {
  11. private Transform player
  12. {
  13. get
  14. {
  15. return R.Player.Transform;
  16. }
  17. }
  18. public override void OnAwake()
  19. {
  20. this._action = base.GetComponent<BeelzebubAction>();
  21. }
  22. public override void OnStart()
  23. {
  24. switch (this.atkType)
  25. {
  26. case BeelzebubAIAction.BeelzebubAttack.AtkType.Atk1:
  27. this._action.Attack1(InputSetting.JudgeDir(this.transform.position, this.player.position));
  28. break;
  29. case BeelzebubAIAction.BeelzebubAttack.AtkType.Atk2:
  30. this._action.Attack2(InputSetting.JudgeDir(this.transform.position, this.player.position));
  31. break;
  32. case BeelzebubAIAction.BeelzebubAttack.AtkType.Atk3:
  33. this._action.Attack3(InputSetting.JudgeDir(this.transform.position, this.player.position));
  34. break;
  35. case BeelzebubAIAction.BeelzebubAttack.AtkType.Atk4:
  36. this._action.Attack4(InputSetting.JudgeDir(this.transform.position, this.player.position));
  37. break;
  38. case BeelzebubAIAction.BeelzebubAttack.AtkType.Atk5:
  39. this._action.Attack5(InputSetting.JudgeDir(this.transform.position, this.player.position));
  40. break;
  41. }
  42. }
  43. public override TaskStatus OnUpdate()
  44. {
  45. return (!this._action.stateMachine.currentState.IsInArray(BeelzebubAction.AttackSta)) ? TaskStatus.Success : TaskStatus.Running;
  46. }
  47. public BeelzebubAIAction.BeelzebubAttack.AtkType atkType;
  48. private BeelzebubAction _action;
  49. public enum AtkType
  50. {
  51. Atk1,
  52. Atk2,
  53. Atk3,
  54. Atk4,
  55. Atk5
  56. }
  57. }
  58. [TaskCategory("Enemy/Beelzebub")]
  59. [TaskDescription("Beelzebub嘲讽")]
  60. public class BeelzebubRidicule : BehaviorDesigner.Runtime.Tasks.Action
  61. {
  62. public override void OnAwake()
  63. {
  64. this._action = base.GetComponent<BeelzebubAction>();
  65. }
  66. public override void OnStart()
  67. {
  68. this._action.FaceToPlayer();
  69. this._action.Idle2();
  70. }
  71. public override TaskStatus OnUpdate()
  72. {
  73. return (!(this._action.stateMachine.currentState == "Idle2")) ? TaskStatus.Success : TaskStatus.Running;
  74. }
  75. private BeelzebubAction _action;
  76. }
  77. }