초기커밋
This commit is contained in:
73
GameServer/Contents/Quest/QuestHandler/QuestRewardHandler.cs
Normal file
73
GameServer/Contents/Quest/QuestHandler/QuestRewardHandler.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using ServerCore; using ServerBase;
|
||||
using ServerCommon;
|
||||
|
||||
|
||||
using MetaAssets;
|
||||
|
||||
|
||||
using UGQDatabase.Models;
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class QuestRewardHandler
|
||||
{
|
||||
public readonly Player m_player;
|
||||
public UInt32 m_quest_id { get; set; } = 0;
|
||||
public UInt32 m_quest_revision { get; set; } = 0;
|
||||
public EQuestType m_quest_type { get; set; } = EQuestType.NONE;
|
||||
public GameQuestDataEntity? m_ugq_game_data { get; set; } = null;
|
||||
|
||||
public bool m_is_repeat_ugq_quest { get; set; } = false;
|
||||
|
||||
public QuestBaseInfo? m_quest_meta_info { get; set; } = null;
|
||||
public ServerCommon.Quest? m_quest { get; set; } = null;
|
||||
public ServerCommon.EndQuest? m_end_quest { get; set; } = null;
|
||||
|
||||
public bool m_has_ugq_daily_reward { get; set; } = false;
|
||||
public Int32 m_ugq_daily_bonus_gold { get; set; } = 0;
|
||||
|
||||
public Int32 m_replaced_reward_group_id { get; set; } = 0;
|
||||
public List<MetaAssets.Reward> m_rewards { get; set; } = new();
|
||||
|
||||
public List<MetaAssets.Reward> m_rewarded_money { get; set; } = new();
|
||||
public List<Item> m_rewarded_items { get; set; } = new();
|
||||
|
||||
public bool m_has_already_end_quest { get; set; } = false;
|
||||
|
||||
public QuestRewardHandler(Player player, UInt32 questId, UInt32 questRevision)
|
||||
{
|
||||
m_player = player;
|
||||
m_quest_id = questId;
|
||||
m_quest_revision = questRevision;
|
||||
}
|
||||
|
||||
public async Task<Result> init()
|
||||
{
|
||||
var quest_action = m_player.getEntityAction<QuestAction>();
|
||||
|
||||
(var result, var quest_meta_all_base_info) = await QuestMetaManager.It.getQuestMeta(m_player, m_quest_id, m_quest_revision);
|
||||
if (result.isFail()) return result;
|
||||
m_quest_meta_info = quest_meta_all_base_info.m_quest_base_info;
|
||||
|
||||
NullReferenceCheckHelper.throwIfNull(m_quest_meta_info, () => $"player is null !!!");
|
||||
|
||||
if (quest_meta_all_base_info.m_quest_data_entity is not null)
|
||||
{
|
||||
m_ugq_game_data = quest_meta_all_base_info.m_quest_data_entity;
|
||||
}
|
||||
|
||||
m_replaced_reward_group_id = m_quest_meta_info.RewardGroupId;
|
||||
result = quest_action.getQuest(m_quest_meta_info.QuestType, m_quest_id, out var quest);
|
||||
if (result.isFail()) return result;
|
||||
|
||||
m_quest = quest;
|
||||
|
||||
var end_quest_action = m_player.getEntityAction<EndQuestAction>();
|
||||
m_has_already_end_quest = end_quest_action.hasEndQuest(m_quest_id, m_quest_revision);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public Player getPlayer() => m_player;
|
||||
}
|
||||
Reference in New Issue
Block a user