using UnityEngine;

namespace Shooter.Gameplay
{
    /// <summary>
    /// Простая машина состояний: хранит номер текущего состояния и время, прошедшее с
    /// его начала. Враги используют её, чтобы переключать фазы поведения по таймеру.
    /// </summary>
    public class StateSystem : MonoBehaviour
    {
        [HideInInspector] public int CurrentState = 0;
        [HideInInspector] public float StateTimer = 0;
        [HideInInspector] public float StateStartTime = 0;

        void Start()
        {
            StateTimer = 0;
            StateStartTime = Time.time;
        }

        void Update()
        {
            StateTimer += Time.deltaTime;
        }

        /// <summary>Переключает на новое состояние и сбрасывает таймер.</summary>
        public void StartState(int newState)
        {
            CurrentState = newState;
            StateTimer = 0;
            StateStartTime = Time.time;
        }
    }
}
