AirBombAction.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using UnityEngine;
  3. public class AirBombAction : BaseBehaviour
  4. {
  5. private void Awake()
  6. {
  7. this.stateMachine = base.GetComponent<StateMachine>();
  8. this.spineAnim = base.GetComponent<SpineAnimationController>();
  9. }
  10. private void Start()
  11. {
  12. this.stateMachine.AddStates(typeof(AirBombAction.StateEnum));
  13. this.stateMachine.OnEnter += this.OnMyStateEnter;
  14. this.AnimChangeState(AirBombAction.StateEnum.Idle);
  15. }
  16. private void Update()
  17. {
  18. float num = Vector2.Distance(base.transform.position, R.Player.Transform.position + Vector3.up);
  19. if (num < 3.5f && !this.attack1)
  20. {
  21. this.Attack1();
  22. }
  23. }
  24. private void OnMyStateEnter(object sender, StateMachine.StateEventArgs args)
  25. {
  26. AirBombAction.StateEnum stateEnum = EnumTools.ToEnum<AirBombAction.StateEnum>(args.state, false);
  27. if (stateEnum != AirBombAction.StateEnum.Idle)
  28. {
  29. if (stateEnum == AirBombAction.StateEnum.Atk1)
  30. {
  31. this.spineAnim.Play(stateEnum, false, true, 1f);
  32. }
  33. }
  34. else
  35. {
  36. this.spineAnim.Play(stateEnum, true, false, 1f);
  37. }
  38. }
  39. public void Attack1()
  40. {
  41. this.attack1 = true;
  42. this.AnimChangeState(AirBombAction.StateEnum.Atk1);
  43. }
  44. private void AnimChangeState(AirBombAction.StateEnum state)
  45. {
  46. this.stateMachine.SetState(state);
  47. }
  48. private StateMachine stateMachine;
  49. private SpineAnimationController spineAnim;
  50. private bool attack1;
  51. public enum StateEnum
  52. {
  53. Idle,
  54. Atk1
  55. }
  56. public enum NormalSta
  57. {
  58. Idle
  59. }
  60. public enum DieSta
  61. {
  62. Atk1
  63. }
  64. }