using UnityEngine;

namespace Shooter.Gameplay
{
    /// <summary>
    /// Разрушаемый объект: когда его прочность (<see cref="DamageControl"/>) падает до
    /// нуля, спавнит эффект разрушения и (если задан) обломки, затем исчезает.
    /// </summary>
    public class DestructObject : MonoBehaviour
    {
        public GameObject BrakeEffectPrefab1;
        public GameObject DestroyedObjectPrefab1;
        [Tooltip("Центр эффекта разрушения (если пусто — позиция объекта)")]
        public Transform m_ExplodeCenter;

        [HideInInspector] public DamageControl MyDamageControl;

        void Start()
        {
            MyDamageControl = GetComponent<DamageControl>();
        }

        void Update()
        {
            if (!MyDamageControl.IsDead)
                return;

            GameObject obj = Instantiate(BrakeEffectPrefab1);
            obj.transform.position = (m_ExplodeCenter != null) ? m_ExplodeCenter.position : transform.position;
            Destroy(obj, 4);

            if (DestroyedObjectPrefab1 != null)
            {
                obj = Instantiate(DestroyedObjectPrefab1);
                obj.transform.position = transform.position;
                obj.transform.rotation = transform.rotation;
            }

            Destroy(gameObject);
        }
    }
}
