using UnityEngine;
using TMPro; // Подключаем текст
public class PhysicalFlashlight : MonoBehaviour
{
public Light flashlightLight;
private 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;
// Автоматически находим текстовый объект на экране по его имени
GameObject textObj = GameObject.Find("BatteryText");
if (textObj != null) batteryText = textObj.GetComponent<TextMeshProUGUI>();
}
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();
}
}