using System.Collections;
using UnityEngine;

namespace Shooter.Gameplay
{
    /// <summary>
    /// Ворота: по команде <see cref="Open"/> анимированно опускают перекладину и
    /// разъезжаются в стороны. Створки заданы массивом <see cref="m_DoorBases"/>.
    /// </summary>
    public class Door_A : MonoBehaviour
    {
        [Tooltip("Створки: [0] и [1] разъезжаются в стороны, [2] опускается")]
        public Transform[] m_DoorBases;

        public void Open()
        {
            StartCoroutine(Co_Open());
        }

        public void Close()
        {
            // Зарезервировано: закрытие ворот.
        }

        IEnumerator Co_Open()
        {
            // Опускаем верхнюю перекладину.
            for (int i = 0; i < 50; i++)
            {
                m_DoorBases[2].localPosition = new Vector3(0, -3.74f * i * 0.02f, 0);
                yield return null;
            }
            yield return new WaitForSeconds(.5f);

            // Разъезжаемся в стороны.
            for (int i = 0; i < 100; i++)
            {
                m_DoorBases[0].localPosition = new Vector3(4 * i * 0.01f, 0, 0);
                m_DoorBases[1].localPosition = new Vector3(-4 * i * 0.01f, 0, 0);
                yield return null;
            }
        }
    }
}
