using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//include textmeshpro
using TMPro;

public class enemykiller : MonoBehaviour
{
    // Start is called before the first frame update
    //get textmeshpro text
    public TextMeshProUGUI text;
    public ParticleSystem part;
    public List<ParticleCollisionEvent> collisionEvents;
    public int score = 0;
    public int highscore = 0;
    public int lives = 3;
    void Start()
    {
        part = GetComponent<ParticleSystem>();
        collisionEvents = new List<ParticleCollisionEvent>();
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    //on particle coolision
    void OnParticleCollision(GameObject otherx)
    {
        int numCollisionEvents = part.GetCollisionEvents(otherx, collisionEvents);
        int i = 0;
        while (i < numCollisionEvents)
        {
            GameObject other = collisionEvents[i].colliderComponent.gameObject;
            //check if object exists
            if (other == null)
            {
                i++;
                continue;
            }
            if (other.tag == "enemy")
            {
                Destroy(other);
                Debug.Log("enemy killed (" + other.name+ ")");
                //spawn new enemy
                GameObject enemyclone = Instantiate(other, new Vector3(Random.Range(10, 100), Random.Range(-70, -60), Random.Range(-90, 0)), Quaternion.identity);
                //set enemy name
                enemyclone.name = "enemy" + i;
                enemyclone.tag = "enemy";
                //increase score
                score++;
                if (score > highscore)
                {
                    highscore = score;
                }
                //update text
                text.text = "Score: " + score + "\nHighscore: " + highscore + "\nLives: " + lives;
            }
            if (other.tag == "king")
            {
                Destroy(other);
                Debug.Log("killed king" + other.name);
                //spawn new king
                GameObject kingclone = Instantiate(other, new Vector3(Random.Range(10, 100), Random.Range(-70, -60), Random.Range(-90, -20)), Quaternion.identity);
                //set king name
                kingclone.name = "king" + i;
                kingclone.tag = "king";
                GameObject kingclone2 = Instantiate(other, new Vector3(Random.Range(10, 100), Random.Range(-70, -60), Random.Range(-90, -20)), Quaternion.identity);
                //set king name
                kingclone2.name = "kingy" + i;
                kingclone2.tag = "king";
                //decrease score
                score-= 20;
                lives--;
                if (lives <= 0)
                {
                    text.text = "GAME OVER";
                }
                //update text
                text.text = "Score: " + score + "\nHighscore: " + highscore + "\nLives: " + lives;
            }
            i++;
        }
    }
}
