44 lines
1.1 KiB
C#
Raw Normal View History

2024-03-19 17:42:38 +03:00
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()
{
2024-03-19 17:56:12 +03:00
if (!_enemy.isServer) return;
2024-03-19 17:42:38 +03:00
_enemy.SetSpeedMul(0f);
_enemy.animator.SetBool(DanceAnimHash, true);
}
public override void Update()
{
2024-03-19 17:56:12 +03:00
if (!_enemy.isServer) return;
2024-03-19 17:42:38 +03:00
var stateInfo = _enemy.animator.GetCurrentAnimatorStateInfo(0);
if (stateInfo.shortNameHash == DanceAnimHash && stateInfo.normalizedTime >= 1)
{
2024-03-19 17:56:12 +03:00
_enemy.state = EnemyState.Patrol;
2024-03-19 17:42:38 +03:00
}
}
public override void Exit()
{
2024-03-19 17:56:12 +03:00
if (!_enemy.isServer) return;
2024-03-19 17:42:38 +03:00
_enemy.animator.SetBool(DanceAnimHash, false);
_enemy.SetSpeedMul(1f);
}
}
}