Files
ClearTheZone/Assets/Scripts/WeaponReload.cs
T
2026-08-20 10:43:24 +02:00

70 lines
1.9 KiB
C#

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()
{
if (PauseMenu.GameIsPaused) return;
// 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;
}
}
public bool UseAmmo()
{
if (PauseMenu.GameIsPaused || isReloading) return false;
if (currentAmmo <= 0)
{
StartCoroutine(Reload());
return false;
}
currentAmmo--;
Debug.Log("Schuss gefeuert! Verbleibende Munition: " + currentAmmo);
return true;
}
// 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);
}
}