using UnityEngine;

namespace Shooter.Gameplay
{
    /// <summary>
    /// Отстреливаемый переключатель: когда его «прочность» (<see cref="DamageControl"/>)
    /// кончается, переключает визуал, проигрывает звук и открывает связанную дверь.
    /// </summary>
    public class ShootSwitch_A : MonoBehaviour
    {
        public Door_A m_Door;
        [Tooltip("Визуалы: [0] — неактивный, [1] — активированный")]
        public GameObject[] m_ActiveBases;

        [HideInInspector] public bool m_Activated = false;
        private DamageControl m_DamageControl;

        void Start()
        {
            m_DamageControl = GetComponent<DamageControl>();
            m_ActiveBases[0].SetActive(true);
            m_ActiveBases[1].SetActive(false);
        }

        void Update()
        {
            if (!m_Activated && m_DamageControl.IsDead)
            {
                m_Activated = true;
                m_ActiveBases[0].SetActive(false);
                m_ActiveBases[1].SetActive(true);
                m_ActiveBases[1].GetComponent<AudioSource>().Play();
                Invoke(nameof(OpenDoor), .5f);
            }
        }

        public void OpenDoor()
        {
            if (m_Door != null)
                m_Door.Open();
        }
    }
}
