Files
2025-08-31 18:14:07 -04:00

54 lines
1.3 KiB
C#

using System;
using UnityEngine;
using UnityEngine.Serialization;
namespace Ingvar.LiveWatch.TowerDefenceDemo
{
public class EnergyManager : MonoBehaviour
{
public event Action EnergyChanged;
public int CurrentEnergy
{
get => _energy;
set
{
if (_energy == value)
return;
_energy = value;
EnergyChanged?.Invoke();
}
}
private int _energy;
private LevelScene _levelScene;
private void Awake()
{
_levelScene = FindObjectOfType<LevelScene>();
}
private void Start()
{
Watch.GetOrAdd("Energy", () => CurrentEnergy)
.SetSortOrder(TD_WatchSortOrder.Energy);
}
private void OnEnable()
{
_levelScene.MobManager.MobDiedByHp += OnMobDiedByHp;
}
public void ResetEnergy()
{
CurrentEnergy = _levelScene.LevelConfig.StartGold;
}
private void OnMobDiedByHp(MobMain mob)
{
var reward = _levelScene.EconomyConfig.MobKillRewards[mob.Type];
CurrentEnergy += reward;
}
}
}