using UnityEngine; using BaseGames.Core.Events; namespace BaseGames.Player { /// /// 灵泉充能系统(架构 05_PlayerModule §7)。 /// 订阅 EVT_EnemyDied 事件,每次击杀调用 PlayerStats.AddKillPoints(); /// 积分达到阈值时由 PlayerStats 内部自动增加 SpringCharge 并重置积分。 /// 使用灵泉(UseSpring)由 PlayerController 处理输入、SpringState 执行动画与消耗。 /// public class SpringSystem : MonoBehaviour { [SerializeField] private PlayerStats _stats; [SerializeField] private StringEventChannelSO _onEnemyDied; // EVT_EnemyDied private EventSubscription _sub; private bool _subscribed; private void OnEnable() { if (_onEnemyDied != null) { _sub = _onEnemyDied.Subscribe(OnEnemyDied); _subscribed = true; } } private void OnDisable() { if (_subscribed) { _sub.Dispose(); _subscribed = false; } } private void OnEnemyDied(string _enemyId) { _stats?.AddKillPoints(1); } } }