maint: added livewatch asset

This commit is contained in:
Chris
2025-08-31 18:14:07 -04:00
parent 7f5d95787b
commit ae2371a6fa
385 changed files with 150792 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
using System;
using UnityEngine;
namespace Ingvar.LiveWatch.TowerDefenceDemo
{
public class HealthManager : MonoBehaviour
{
public event Action HealthChanged;
public int CurrentHealth
{
get => _health;
set
{
if (_health == value)
return;
_health = value;
HealthChanged?.Invoke();
}
}
public int MaxHealth => _levelScene.LevelConfig.MaxHealth;
private LevelScene _levelScene;
private int _health;
private void Awake()
{
_levelScene = FindObjectOfType<LevelScene>();
}
private void Start()
{
Watch.GetOrAdd("Health", () => CurrentHealth)
.SetSortOrder(TD_WatchSortOrder.Health);
}
private void OnEnable()
{
_levelScene.MobManager.MobReachedFinish += OnMobReachedFinish;
}
private void OnDisable()
{
_levelScene.MobManager.MobReachedFinish -= OnMobReachedFinish;
}
public void ResetHealth()
{
CurrentHealth = MaxHealth;
}
private void OnMobReachedFinish(MobMain mob)
{
CurrentHealth = Mathf.Clamp(CurrentHealth - 1, 0, MaxHealth);
HealthChanged?.Invoke();
}
}
}