using System.Collections; using Koptilnya; using Koptilnya.StateMachine; using Mirror; using UnityEditor.Timeline.Actions; using UnityEngine; namespace Characters.Enemy.States { public class StunnedState : State { private readonly Enemy _enemy; private Task _task; private static readonly int DamageAnimHash = Animator.StringToHash("damage"); public StunnedState(Enemy enemy) : base(EnemyState.Stunned) { _enemy = enemy; } public override void Enter() { _enemy.canAttack = false; _enemy.target = null; _enemy.SetSpeedMul(0f); _enemy.GetComponent().SetTrigger(DamageAnimHash); _enemy.hitVFX.Stop(); _enemy.hitVFX.Play(); _task = new Task(GetStunned()); } public override void ReEnter() { _task.Stop(); _task.Start(); } public override void Exit() { _task.Stop(); _enemy.SetSpeedMul(1f); _enemy.canAttack = true; } IEnumerator GetStunned() { yield return new WaitForSeconds(6); _enemy.stateMachine.SetCurrentState(EnemyState.Patrol); } } }