using UnityEngine; // ReSharper disable once CheckNamespace namespace BlueWaterProject { public class ComboAttack : 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.GetAttackTime(); combatPlayerController.SetIsAttacking(true); combatPlayerController.SetIsComboPossible(true); } public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (stateInfo.normalizedTime >= 1f) { animator.SetBool(CombatPlayerController.IsAttackingHash, false); } } public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { animator.speed = 1f; combatPlayerController.SetIsComboPossible(false); combatPlayerController.SetIsComboAttacking(false); combatPlayerController.SetIsAttacking(false); animator.SetBool(CombatPlayerController.IsAttackingHash, false); } } }