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

public class GrenadeExplode : MonoBehaviour
{
    public float radius = 5.0f;
    public float damage = 2.0f;
    public float force = 10.0f;
    public AudioClip explosionAudio;
    public GameObject explosionParticle;
    

    void OnDestroy()
    {
        AudioSource.PlayClipAtPoint(explosionAudio, transform.position);
        GameObject clone = Instantiate(explosionParticle, transform.position, Quaternion.identity);
        Destroy(clone, 3.0f);
        //在上方键入被摧毁时播放音效和例子的逻辑

        Collider[] hitColliders = Physics.OverlapSphere(transform.position, radius);
        foreach (Collider col in hitColliders)
        {
            //range to kill
            if(col.GetComponent<TakeDamage>() != null){
                float dis = Vector3.Distance(col.transform.position, transform.position);
                //Damage scaled by distance
                float damageScaled = Mathf.Min(Mathf.Round(damage / dis), damage);
                col.GetComponent<TakeDamage>().Damage(damageScaled);
            }

            Rigidbody rb = col.GetComponent<Rigidbody>();
            if(rb != null){
                rb.AddExplosionForce(force, transform.position, radius, 3.0f, ForceMode.Impulse);
            }
        }
    }

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
