using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;

public class Enemie_Movement_Panzer : MonoBehaviour
{
    public float speed = 3f;        // Bewegungsgeschwindigkeit
    public float shootingInterval = 2f;  // Schuss-Intervall
    public GameObject bulletPrefab; // Projektil-Objekt
    public Transform firePointA; // Punkt, von dem die Kugeln abgefeuert werden
    public Transform firePointB;
    public Transform firePointC;
    public int life = 20;
    Enemie_Spawn_System enemie_Spawn_System;

    private Transform player;       // Referenz auf den Spieler

    void Start()
    {
        // Spieler-Objekt finden
        player = GameObject.FindGameObjectWithTag("Starship").transform;

        // Starte das Schießen in Intervallen
        InvokeRepeating(nameof(Shoot), shootingInterval, shootingInterval);
        enemie_Spawn_System = GameObject.Find("Enemie_Spawner_System").GetComponent<Enemie_Spawn_System>();
    }

    void Update()
    {

        if (player == null) return; // Falls kein Spieler gefunden wurde, nichts tun

        // 1. Richtung zum Spieler berechnen
        Vector2 direction = (player.position - transform.position).normalized;

        // 2. Gegner drehen (damit er den Spieler anvisiert)
        float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.Euler(0, 0, angle - 90);

        // 3. Bewegung zum Spieler
        transform.position = Vector2.MoveTowards(transform.position, player.position, speed * Time.deltaTime);

    }

    void Shoot()
    {
        if (bulletPrefab != null && firePointA != null && firePointB != null && firePointC != null)
        {
            Instantiate(bulletPrefab, firePointA.position, firePointA.rotation);
            Instantiate(bulletPrefab, firePointB.position, firePointB.rotation);
            Instantiate(bulletPrefab, firePointC.position, firePointC.rotation);
        }
    }

    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player Bullet"))
        {
            Bullet_movement bulletScript = other.gameObject.GetComponent<Bullet_movement>();

            if (bulletScript != null)
            {
                life--;
                Debug.Log("Gegner Getroffen! -2");

                if (life <= 0)
                {
                    Destroy(gameObject);
                    enemie_Spawn_System.ChangeEnemyCounter(-1);
                }
            }
        }
    }
} //chat gpt modified, nicht komplett generiert