using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Eksplozja : MonoBehaviour
{
    [SerializeField] private GameObject prefabEksplozja;
    [Header("Opcje")]
    [Range(1.0f, 10.0f)]
    [SerializeField]
    private float PromienOdrzutu = 5.0f;
    [Range(10.0f, 100.0f)]
    [SerializeField]
    private float SilaOdrzutu = 20.0f;
    private float skladowaSilaPion = 5.0f;

    private void ZniszczBeczke(GameObject o)
    {
        //zrb z trafionej beczki beczk odamkw
        o.GetComponent<EksplozjaBeczki>().RobBeczkeOdlamkow();
        //usu trafion beczk
        Destroy(o);
        //usu pocisk
        Destroy(this.gameObject);
    }
    private void OnCollisionEnter(Collision o)
    {
        if (o.gameObject.tag == "beczkaTrucizna")
        {
            ZniszczBeczke(o.gameObject);
        }
    }
    private void Odrzut()
    {
        //zrob list obiektw kolidujacych wewntrz zadanej sfery
        Collider[] kolizje = Physics.OverlapSphere(transform.position, PromienOdrzutu); 
        foreach (Collider c in kolizje) 
           { 
              Rigidbody rb=c.GetComponent<Rigidbody>();
              if (rb != null )
              rb.AddExplosionForce(SilaOdrzutu,
                                   transform.position,
                                   PromienOdrzutu, 
                                   skladowaSilaPion, 
                                   ForceMode.Impulse);
           }
    }

    private void OnDestroy()
    {
        //utwrz obiekt eksplozji
        GameObject e = Instantiate(prefabEksplozja,
                       transform.position,
                       transform.rotation);
        //usu obiekt eksplozji
        Destroy(e, 2.5f);
        //wcz odrzut
        Odrzut();
    }
}
