using System.Collections;
using UnityEngine;

public class WeaponReload : MonoBehaviour
{
    [Header("Munitionseinstellungen")]
    public int maxAmmo = 30;         // Maximale Munition im Magazin
    public int currentAmmo;          // Aktuelle Munition
    public float reloadTime = 1.5f;   // Wie lange das Nachladen dauert (in Sekunden)

    private bool isReloading = false; // Verhindert Doppelklicks / Aktionen während des Nachladens

    void Start()
    {
        currentAmmo = maxAmmo; // Beim Start ist das Magazin voll
    }

    void Update()
    {
        // Während nachgeladen wird, keine Aktionen zulassen
        if (isReloading)
            return;

        // --- PUNKT 1: Auslösen auf R ODER wenn Magazin leer ist ---
        // 1. Manuelles Nachladen mit R (nur wenn Magazin nicht schon voll ist)
        if (Input.GetKeyDown(KeyCode.R) && currentAmmo < maxAmmo)
        {
            StartCoroutine(Reload());
            return;
        }

        // 2. Automatisches Nachladen beim Schießen, wenn das Magazin leer (<= 0) ist
        if (Input.GetButtonDown("Fire1"))
        {
            if (currentAmmo > 0)
            {
                Shoot();
            }
            else
            {
                // Magazin ist leer -> automatisch nachladen!
                StartCoroutine(Reload());
            }
        }
    }

    void Shoot()
    {
        // Nur schießen, wenn das Pausemenü NICHT offen ist
        if (PausenManager.GameIsPaused) return;

        currentAmmo--;
        Debug.Log("Schuss gefeuert! Verbleibende Munition: " + currentAmmo);

        // Hier deinen normalen Schuss-Code einfügen (Raycast, Bullet-Prefab, Ton etc.)
    }

    // Coroutine für die Nachlade-Verzögerung
    IEnumerator Reload()
    {
        isReloading = true;
        Debug.Log("Nachladen gestartet...");

        // Hier könntest du z.B. eine Nachlade-Animation oder einen Sound abspielen:
        // animator.SetTrigger("Reload");

        // Warten, bis die Nachladezeit abgelaufen ist
        yield return new WaitForSeconds(reloadTime);

        // --- PUNKT 2: Munition wieder voll wenn fertig ---
        currentAmmo = maxAmmo;

        isReloading = false;
        Debug.Log("Nachladen abgeschlossen! Munition wieder voll: " + currentAmmo);
    }
}