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