using System; namespace BaseGames.Spells { /// /// 法术管理服务接口。UI 层(SpellSlotWidget)通过此接口读取法术状态, /// 与 SpellManager 具体实现解耦,支持测试场景下的 Mock 替换。 /// public interface ISpellService { /// 当前装备的法术;null 表示未装备。 SpellSO EquippedSpell { get; } /// 冷却进度(0 = 就绪,1 = 刚施放)。 float CooldownFraction { get; } /// 法术当前是否可施放(已装备且冷却完毕)。 bool IsReady { get; } /// /// 法术装备或卸下时触发。参数为新法术,null 表示已卸下。 /// UI 订阅此事件可实现零延迟的图标刷新,无需轮询。 /// event Action OnSpellChanged; } }