using CommonAI.Zone.Instance; using CommonLang; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CommonAI.Zone.Helper { public enum QuestState : byte { Uncharted = 0, Accepted = 1, Commited = 2, } public class QuestData { public readonly string QuestID; public QuestState State = QuestState.Uncharted; public HashMap Attributes = new HashMap(); public QuestData(string id) { this.QuestID = id; } } public abstract class IQuestAdapter : IDisposable { private InstanceZone mZone; public IQuestAdapter(InstanceZone zone) { mZone = zone; } public InstanceZone Zone { get { return mZone; } } /// /// 【第三方系统通知】任务已接受 /// /// /// public virtual void OnQuestAcceptedHandler(string playerUUID, string quest) { mZone.gs_OnQuestAccepted(playerUUID, quest); } /// /// 【第三方系统通知】任务已完成 /// /// /// public virtual void OnQuestCommittedHandler(string playerUUID, string quest) { mZone.gs_OnQuestCommitted(playerUUID, quest); } /// /// 【第三方系统通知】任务已放弃 /// /// /// public virtual void OnQuestDroppedHandler(string playerUUID, string quest) { mZone.gs_OnQuestDropped(playerUUID, quest); } /// /// 【第三方系统通知】任务状态已改变 /// /// /// /// /// public virtual void OnQuestStatusChangedHandler(string playerUUID, string quest, string key, string value) { mZone.gs_OnQuestStatusChanged(playerUUID, quest, key, value); } /// /// 【战斗模块请求】接受任务 /// /// /// /// public abstract void DoAcceptQuest(string playerUUID, string quest, string args); //向玩家发送消息 public abstract void DoSendMsgToPlayer(string playerUUID, CommonLang.Protocol.IMessage msg); /// /// 【战斗模块请求】 /// /// /// /// public abstract void DoCommitQuest(string playerUUID, string quest, string args); /// /// 【战斗模块请求】 /// /// /// /// public abstract void DoDropQuest(string playerUUID, string quest, string args); /// /// 【战斗模块请求】 /// /// /// /// /// public abstract void DoUpdateQuestStatus(string playerUUID, string quest, string key, string value); public virtual void Dispose() { } } }