using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { public class DashBehavior : StateMachineBehaviour { private CombatPlayerController combatPlayerController; public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (combatPlayerController == null) { combatPlayerController = animator.GetComponentInParent(); } var animationLength = stateInfo.length; animator.speed = animationLength / combatPlayerController.GetDashTime(); combatPlayerController.SetIsInvincibility(true); combatPlayerController.SetIsDashing(true); combatPlayerController.SetEnableDashing(false); } public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (stateInfo.normalizedTime >= 1.0f) { animator.SetBool(PhysicsMovement.IsDashingHash, false); } } public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { animator.speed = 1f; combatPlayerController.SetIsDashing(false); combatPlayerController.SetIsInvincibility(false); combatPlayerController.CoolDown(combatPlayerController.GetDashCooldown(), () => combatPlayerController.SetEnableDashing(true)); } } }