using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { public class Dash : 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.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); animator.SetBool(PhysicsMovement.IsDashingHash, false); combatPlayerController.CoolDown(combatPlayerController.GetDashCooldown(), () => combatPlayerController.SetEnableDashing(true)); } } }