using UnityEngine;
namespace Aula11
{
///
/// Cargas do drone: cada impulso gasta uma, cada portal atravessado devolve algumas.
/// A bateria começa desligada e só passa a gastar quando o drone entra na ZonaBateria do primeiro portal.
///
public class Bateria : MonoBehaviour
{
[Min(1)] [SerializeField] private int capacidade = 10;
[Tooltip("Cargas devolvidas a cada portal atravessado, sem passar da capacidade.")]
[Min(0)] [SerializeField] private int recargaPorPortal = 4;
public int Carga { get; private set; }
public bool Ligada { get; private set; }
public float Fracao => (float)Carga / capacidade;
private void Awake()
{
Carga = capacidade;
Ligada = false;
}
/// A partir daqui, cada impulso gasta carga. Chamar de novo não muda nada.
[ContextMenu("Ligar")]
public void Ligar()
{
Ligada = true;
}
/// Gasta uma carga, se houver. Desligada, não gasta nada. Devolve false com a bateria vazia.
public bool Consumir()
{
if (!Ligada) return true;
if (Carga == 0) return false;
Carga--;
return true;
}
public void Recarregar()
{
Carga = Mathf.Min(Carga + recargaPorPortal, capacidade);
}
}
}