JudgesAIAction.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using BehaviorDesigner.Runtime.Tasks;
  3. using UnityEngine;
  4. public class JudgesAIAction
  5. {
  6. [TaskDescription("选择攻击类型")]
  7. [TaskCategory("Enemy/Judges")]
  8. public class SetNextAttackType : BehaviorDesigner.Runtime.Tasks.Action
  9. {
  10. public override void OnAwake()
  11. {
  12. this.action = base.GetComponent<JudgesAction>();
  13. this.hurt = base.GetComponent<JudgesHurt>();
  14. }
  15. public override void OnStart()
  16. {
  17. JudgesAction.AttackType attackType = this.action.attackType;
  18. if (attackType != JudgesAction.AttackType.Saws)
  19. {
  20. if (attackType != JudgesAction.AttackType.Laser)
  21. {
  22. if (attackType == JudgesAction.AttackType.HitGround)
  23. {
  24. if (this.hurt.currentPhase < 4)
  25. {
  26. this.action.attackType = ((UnityEngine.Random.Range(0, 2) != 0) ? JudgesAction.AttackType.Saws : JudgesAction.AttackType.Laser);
  27. }
  28. }
  29. }
  30. else if (this.hurt.currentPhase != 4)
  31. {
  32. this.action.attackType = ((UnityEngine.Random.Range(0, 2) != 0) ? JudgesAction.AttackType.Saws : JudgesAction.AttackType.HitGround);
  33. }
  34. else
  35. {
  36. this.action.attackType = JudgesAction.AttackType.Saws;
  37. }
  38. }
  39. else if (this.hurt.currentPhase != 4)
  40. {
  41. this.action.attackType = ((UnityEngine.Random.Range(0, 2) != 0) ? JudgesAction.AttackType.HitGround : JudgesAction.AttackType.Laser);
  42. }
  43. else
  44. {
  45. this.action.attackType = JudgesAction.AttackType.Laser;
  46. }
  47. }
  48. public override TaskStatus OnUpdate()
  49. {
  50. return TaskStatus.Success;
  51. }
  52. private JudgesAction action;
  53. private JudgesHurt hurt;
  54. }
  55. }