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); } } }