using CommonAI.Zone.Attributes; using CommonAI.Zone.Instance; using CommonLang.Property; using System; using System.Collections.Generic; using System.Linq; using System.Text; using CommonAI.Zone.EventTrigger; namespace CommonAI.Zone.ZoneEditor.EventTrigger { [DescAttribute("接受任务(常量)", "任务")] public class AcceptQuest : AbstractAction { [DescAttribute("单位")] public UnitValue Unit = new UnitValue.Trigging(); [QuestIDAttribute] [DescAttribute("任务ID")] public string Quest; [DescAttribute("参数")] public StringValue Args = new StringValue.VALUE(""); public override string ToString() { return string.Format("接受任务[{0}]", Quest); } public override void DoAction(EventTriggerAdapter api, EventArguments args) { InstancePlayer p = Unit.GetValue(api, args) as InstancePlayer; if (p != null) { api.ZoneAPI.doAcceptQuest(p, Quest, Args.GetValue(api, args)); } } } [DescAttribute("提交完成任务(常量)", "任务")] public class CommitQuest : AbstractAction { [DescAttribute("单位")] public UnitValue Unit = new UnitValue.Trigging(); [QuestIDAttribute] [DescAttribute("任务ID")] public string Quest; [DescAttribute("参数")] public StringValue Args = new StringValue.VALUE(""); public override string ToString() { return string.Format("完成任务[{0}]", Quest); } public override void DoAction(EventTriggerAdapter api, EventArguments args) { InstancePlayer p = Unit.GetValue(api, args) as InstancePlayer; if (p != null) { api.ZoneAPI.doCommitQuest(p, Quest, Args.GetValue(api, args)); } } } [DescAttribute("放弃任务(常量)", "任务")] public class DropQuest : AbstractAction { [DescAttribute("单位")] public UnitValue Unit = new UnitValue.Trigging(); [QuestIDAttribute] [DescAttribute("任务ID")] public string Quest; [DescAttribute("参数")] public StringValue Args = new StringValue.VALUE(""); public override string ToString() { return string.Format("放弃任务[{0}]", Quest); } public override void DoAction(EventTriggerAdapter api, EventArguments args) { InstancePlayer p = Unit.GetValue(api, args) as InstancePlayer; if (p != null) { api.ZoneAPI.doDropQuest(p, Quest, Args.GetValue(api, args)); } } } [DescAttribute("更新任务子状态(常量)", "任务")] public class UpdateQuestStatus : AbstractAction { [DescAttribute("单位")] public UnitValue Unit = new UnitValue.Trigging(); [QuestIDAttribute] [DescAttribute("任务ID")] public string Quest; [DescAttribute("字段")] public StringValue Key = new StringValue.VALUE("key"); [DescAttribute("值")] public StringValue Value = new StringValue.VALUE("value"); public override string ToString() { return string.Format("更新任务[{0}]状态{1}={2}", Quest, Key, Value); } public override void DoAction(EventTriggerAdapter api, EventArguments args) { InstancePlayer p = Unit.GetValue(api, args) as InstancePlayer; if (p != null) { api.ZoneAPI.doUpdateQuestStatus(p, Quest, Key.GetValue(api, args), Value.GetValue(api, args)); } } } [DescAttribute("接受任务(变量)", "任务")] public class AcceptQuestVar : AbstractAction { [DescAttribute("单位")] public UnitValue Unit = new UnitValue.Trigging(); [DescAttribute("任务ID")] public StringValue QuestID = new TriggingQuestIdentify(); [DescAttribute("参数")] public StringValue Args = new StringValue.VALUE(""); public override string ToString() { return string.Format("接受任务[{0}]", QuestID); } public override void DoAction(EventTriggerAdapter api, EventArguments args) { InstancePlayer p = Unit.GetValue(api, args) as InstancePlayer; string quest_id = QuestID.GetValue(api, args); if (p != null && !string.IsNullOrEmpty(quest_id)) { api.ZoneAPI.doAcceptQuest(p, quest_id, Args.GetValue(api, args)); } } } [DescAttribute("提交完成任务(变量)", "任务")] public class CommitQuestVar : AbstractAction { [DescAttribute("单位")] public UnitValue Unit = new UnitValue.Trigging(); [DescAttribute("任务ID")] public StringValue QuestID = new TriggingQuestIdentify(); [DescAttribute("参数")] public StringValue Args = new StringValue.VALUE(""); public override string ToString() { return string.Format("完成任务[{0}]", QuestID); } public override void DoAction(EventTriggerAdapter api, EventArguments args) { InstancePlayer p = Unit.GetValue(api, args) as InstancePlayer; string quest_id = QuestID.GetValue(api, args); if (p != null && !string.IsNullOrEmpty(quest_id)) { api.ZoneAPI.doCommitQuest(p, quest_id, Args.GetValue(api, args)); } } } [DescAttribute("放弃任务(变量)", "任务")] public class DropQuestVar : AbstractAction { [DescAttribute("单位")] public UnitValue Unit = new UnitValue.Trigging(); [DescAttribute("任务ID")] public StringValue QuestID = new TriggingQuestIdentify(); [DescAttribute("参数")] public StringValue Args = new StringValue.VALUE(""); public override string ToString() { return string.Format("放弃任务[{0}]", QuestID); } public override void DoAction(EventTriggerAdapter api, EventArguments args) { InstancePlayer p = Unit.GetValue(api, args) as InstancePlayer; string quest_id = QuestID.GetValue(api, args); if (p != null && !string.IsNullOrEmpty(quest_id)) { api.ZoneAPI.doDropQuest(p, quest_id, Args.GetValue(api, args)); } } } [DescAttribute("更新任务子状态(变量)", "任务")] public class UpdateQuestStatusVar : AbstractAction { [DescAttribute("单位")] public UnitValue Unit = new UnitValue.Trigging(); [DescAttribute("任务ID")] public StringValue QuestID = new TriggingQuestIdentify(); [DescAttribute("字段")] public StringValue Key = new StringValue.VALUE("key"); [DescAttribute("值")] public StringValue Value = new StringValue.VALUE("value"); public override string ToString() { return string.Format("更新任务[{0}]状态{1}={2}", QuestID, Key, Value); } public override void DoAction(EventTriggerAdapter api, EventArguments args) { InstancePlayer p = Unit.GetValue(api, args) as InstancePlayer; string quest_id = QuestID.GetValue(api, args); if (p != null && !string.IsNullOrEmpty(quest_id)) { api.ZoneAPI.doUpdateQuestStatus(p, quest_id, Key.GetValue(api, args), Value.GetValue(api, args)); } } } }