using System.Collections;
using UnityEngine;

namespace Shooter.Gameplay
{
    /// <summary>
    /// Настенная пушка: после стартовой паузы периодически стреляет прямо перед собой.
    /// </summary>
    public class Enm_WallCanon_A : Enemy
    {
        [Space]
        public GameObject m_BulletPrefab1;
        public GameObject m_FireParticlePrefab1;

        [Tooltip("Дополнительная стартовая задержка перед первым залпом, сек")]
        public float m_InitDelay = 0;
        [Tooltip("Пауза между выстрелами, сек")]
        public float m_FireDelay = 1;

        void Start()
        {
            StartCoroutine(Co_AttackLoop());
        }

        IEnumerator Co_AttackLoop()
        {
            yield return new WaitForSeconds(1);
            if (m_InitDelay > 0)
                yield return new WaitForSeconds(m_InitDelay);

            while (true)
            {
                ShootBullet();
                yield return new WaitForSeconds(m_FireDelay);
            }
        }

        public void ShootBullet()
        {
            GameObject obj = Instantiate(m_BulletPrefab1);
            obj.transform.position = m_FirePoint.position;
            obj.transform.forward = transform.forward;
            obj.GetComponent<ProjectileCollision>().m_Creator = gameObject;
            Destroy(obj, 10);

            obj = Instantiate(m_FireParticlePrefab1);
            obj.transform.position = m_FirePoint.position;
            Destroy(obj, 3);
        }
    }
}
