using MetaAssets; using ServerCommon; using ServerCore; using ServerBase; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GameServer { public class QuestRefuseAction : EntityActionBase { public QuestRefuseAction(EntityBase owner) : base(owner) {} public override async Task onInit() { await Task.CompletedTask; var result = new Result(); return result; } public override void onClear() { return; } public async Task refuseQuestConditionCheck(UInt32 questId) { var result = new Result(); var owner = getOwner() as Player; NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!"); var quest_action = owner.getEntityAction(); var quest_mail_action = owner.getEntityAction(); (result, var quest_meta_all_base_info) = await QuestMetaManager.It.getQuestMeta(questId); if (result.isFail()) return result; var quest_base_info = quest_meta_all_base_info.m_quest_base_info; NullReferenceCheckHelper.throwIfNull(quest_base_info, () => $"quest_base_info is null !!!"); if (false == quest_base_info.QuestType.Equals(nameof(EQuestType.NORMAL))) { result.setFail(ServerErrorCode.QuestRefuseOnlyNormal, $"QuestID : {questId}, questType not normal"); return result; } if (true == quest_base_info.AssignType.Equals(EAssignType.MAIL.ToString())) { var quest_type = EnumHelper.convertEnumTypeAndValueStringToEnum(quest_base_info.QuestType, EQuestType.NORMAL); result = quest_mail_action.hasQuestMail(quest_type, questId, true); if (result.isFail()) return result; } return result; } } }