38 lines
1011 B
C#
38 lines
1011 B
C#
|
using Koptilnya.StateMachine;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace Characters.Enemy.States
|
||
|
{
|
||
|
public class IdleState : State<EnemyState>
|
||
|
{
|
||
|
private readonly Enemy _enemy;
|
||
|
private static readonly int DanceAnimHash = Animator.StringToHash("dance");
|
||
|
|
||
|
public IdleState(Enemy enemy) : base(EnemyState.Idle)
|
||
|
{
|
||
|
_enemy = enemy;
|
||
|
}
|
||
|
|
||
|
public override void Enter()
|
||
|
{
|
||
|
_enemy.SetSpeedMul(0f);
|
||
|
_enemy.animator.SetBool(DanceAnimHash, true);
|
||
|
}
|
||
|
|
||
|
public override void Update()
|
||
|
{
|
||
|
var stateInfo = _enemy.animator.GetCurrentAnimatorStateInfo(0);
|
||
|
|
||
|
if (stateInfo.shortNameHash == DanceAnimHash && stateInfo.normalizedTime >= 1)
|
||
|
{
|
||
|
_enemy.stateMachine.SetCurrentState(EnemyState.Patrol);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public override void Exit()
|
||
|
{
|
||
|
_enemy.animator.SetBool(DanceAnimHash, false);
|
||
|
_enemy.SetSpeedMul(1f);
|
||
|
}
|
||
|
}
|
||
|
}
|