using UnityEngine;
using TMPro;
public class PhysicalFlashlight : MonoBehaviour
{
public Light flashlightLight;
public TextMeshProUGUI batteryText; // Теперь поле публичное, перетащим сюда текст руками
[Header("Настройки батареи")]
public float maxEnergy = 100f;
public float currentEnergy = 100f;
public float drainRate = 4f;
private bool isLightOn = false;
[HideInInspector] public bool isGrabbed = false;
void Start()
{
if (flashlightLight != null) flashlightLight.enabled = false;
currentEnergy = maxEnergy;
UpdateUI();
}
void Update()
{
// Показываем или скрываем текст процентов в зависимости от того, в руках ли фонарик
if (batteryText != null)
{
batteryText.gameObject.SetActive(isGrabbed);
}
if (isGrabbed && Input.GetKeyDown(KeyCode.F) && currentEnergy > 0)
{
isLightOn = !isLightOn;
if (flashlightLight != null) flashlightLight.enabled = isLightOn;
}
if (isLightOn && isGrabbed)
{
currentEnergy -= drainRate * Time.deltaTime;
currentEnergy = Mathf.Clamp(currentEnergy, 0f, maxEnergy);
UpdateUI();
if (currentEnergy <= 0)
{
isLightOn = false;
if (flashlightLight != null) flashlightLight.enabled = false;
}
}
}
void UpdateUI()
{
if (batteryText != null)
{
batteryText.text = "Фонарик: " + Mathf.CeilToInt(currentEnergy) + "%";
}
}
public void Recharge(float amount)
{
currentEnergy += amount;
currentEnergy = Mathf.Clamp(currentEnergy, 0f, maxEnergy);
UpdateUI();
}
}