Files
caliverse_server/GameServer/Contents/Quest/Action/QuestRefuseAction.cs
2025-05-01 07:20:41 +09:00

64 lines
2.0 KiB
C#

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<Result> onInit()
{
await Task.CompletedTask;
var result = new Result();
return result;
}
public override void onClear()
{
return;
}
public async Task<Result> refuseQuestConditionCheck(UInt32 questId)
{
var result = new Result();
var owner = getOwner() as Player;
NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!");
var quest_action = owner.getEntityAction<QuestAction>();
var quest_mail_action = owner.getEntityAction<QuestMailAction>();
(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;
}
}
}