using QuestStateEnum = BaseGames.Core.Events.QuestState;
namespace BaseGames.Quest
{
///
/// 任务管理器的公开契约。ServiceLocator.Get<IQuestManager>() 获取实例,
/// 避免外部代码直接依赖 QuestManager 具体类型。
///
public interface IQuestManager
{
/// 接取任务(幂等)。
void AcceptQuest(string questId);
/// 完成任务并发放奖励。rewardTarget 接收奖励(如玩家)。
void CompleteQuest(string questId, IRewardTarget rewardTarget);
/// 返回当前任务状态。未知 questId 返回 Unavailable。
QuestStateEnum GetState(string questId);
/// 判断任务是否满足完成条件。
bool IsReadyToComplete(string questId);
}
}