초기커밋
This commit is contained in:
29
GameServer/Contents/Reward/IReward.cs
Normal file
29
GameServer/Contents/Reward/IReward.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using ServerCommon;
|
||||
using System.Collections.Concurrent;
|
||||
|
||||
using Amazon.DynamoDBv2.DocumentModel;
|
||||
|
||||
|
||||
using static ClientToGameMessage.Types;
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
|
||||
public interface IReward
|
||||
{
|
||||
Task<Result> prepareReward();
|
||||
Task<Result> addReward();
|
||||
Task<Result> finalizeReward();
|
||||
void postRewardProcess();
|
||||
|
||||
//List<CurrencyMaxNoti> getCurrencyMaxNoties();
|
||||
//List<Item> getRewardItems();
|
||||
//List<ItemEntity> getItemEntities();
|
||||
//List<ILogInvoker> getCurrencyLogInvokers();
|
||||
//List<ILogInvoker> getItemLogInvokers();
|
||||
//List<ILogInvoker> getItemDeleteInvokers();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
174
GameServer/Contents/Reward/RewardBase.cs
Normal file
174
GameServer/Contents/Reward/RewardBase.cs
Normal file
@@ -0,0 +1,174 @@
|
||||
using Amazon.DynamoDBv2.Model.Internal.MarshallTransformations;
|
||||
using GameServer;
|
||||
using MetaAssets;
|
||||
using ServerCommon;
|
||||
using ServerControlCenter;
|
||||
using ServerCore; using ServerBase;
|
||||
using META_ID = System.UInt32;
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
public abstract class RewardBase : IReward
|
||||
{
|
||||
private Player m_owner;
|
||||
private string m_user_guid = string.Empty;
|
||||
private List<MetaAssets.Reward> m_rewards = new();
|
||||
//List<ILogInvoker> m_currency_invokers = new();
|
||||
//List<ILogInvoker> m_item_invokers = new();
|
||||
//List<CurrencyMaxNoti> m_currency_max_noties = new();
|
||||
//private List<Money> obtained_reward = new();
|
||||
|
||||
private List<MetaAssets.Reward> m_rewarded_moneys = new();
|
||||
private List<Item> m_rewarded_items = new();
|
||||
|
||||
public RewardBase(Player owner, string user_guid)
|
||||
{
|
||||
m_owner = owner;
|
||||
m_user_guid = user_guid;
|
||||
|
||||
//m_currency_invokers = new();
|
||||
//m_item_invokers = new();
|
||||
//m_currency_max_noties = new();
|
||||
//m_rewarda = rewards;
|
||||
}
|
||||
|
||||
public RewardBase(Player owner, string user_guid, List<MetaAssets.Reward> rewards)
|
||||
{
|
||||
m_owner = owner;
|
||||
m_user_guid = user_guid;
|
||||
//m_currency_invokers = new();
|
||||
//m_item_invokers = new();
|
||||
//m_currency_max_noties = new();
|
||||
m_rewards = rewards;
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상전 처리해야되는 것들 처리
|
||||
//=====================================================================================
|
||||
public virtual Task<Result> prepareReward()
|
||||
{
|
||||
var result = new Result();
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
|
||||
|
||||
public async Task<Result> addReward()
|
||||
{
|
||||
//item인것만 모아서 tryCheckTakableInBagInven 한번 태운다
|
||||
var result = await itemMaxCheck(m_rewards);
|
||||
if (result.isFail()) return result;
|
||||
|
||||
|
||||
foreach (var reward in m_rewards)
|
||||
{
|
||||
if (reward.Currency != null)
|
||||
{
|
||||
var money_action = m_owner.getEntityAction<MoneyAction>();
|
||||
result = await money_action.changeMoney((CurrencyType)reward.Currency.Id, reward.Currency.Value);
|
||||
if (result.isFail()) return result;
|
||||
m_rewarded_moneys.Add(reward);
|
||||
}
|
||||
else if (reward.Item != null)
|
||||
{
|
||||
var inventory_action = m_owner.getEntityAction<InventoryActionBase>();
|
||||
|
||||
(result, var items) = await inventory_action.tryTakalbleToBag((META_ID)reward.Item.Id, (ushort)reward.Item.Count);
|
||||
|
||||
if (result.isFail()) return result;
|
||||
|
||||
m_rewarded_items.AddRange(items);
|
||||
}
|
||||
else if (reward.SeasonPassExp != null)
|
||||
{
|
||||
var season_pass_action = m_owner.getEntityAction<SeasonPassAction>();
|
||||
result = season_pass_action.IncreaseExp((UInt32)reward.SeasonPassExp.Value);
|
||||
if (result.isFail()) return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
var err_msg = $"reward_data type InvalidType";
|
||||
result.setFail(ServerErrorCode.RewardInvalidType, err_msg);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private async Task<Result> itemMaxCheck(List<MetaAssets.Reward> rewards)
|
||||
{
|
||||
Dictionary<META_ID, Int16> item_dictionary = new();
|
||||
|
||||
foreach (var reward in rewards)
|
||||
{
|
||||
if (reward.Item == null) continue;
|
||||
|
||||
var id = (META_ID)reward.Item.Id;
|
||||
var item_cnt = (UInt16)reward.Item.Count;
|
||||
if (false == item_dictionary.TryGetValue(id, out var cnt))
|
||||
{
|
||||
item_dictionary.TryAdd(id, (Int16)reward.Item.Count);
|
||||
}
|
||||
else
|
||||
{
|
||||
var sum = item_cnt + cnt;
|
||||
item_dictionary[id] = (Int16)sum;
|
||||
}
|
||||
}
|
||||
|
||||
if (item_dictionary.Count > 0)
|
||||
{
|
||||
var inventory_action = m_owner.getEntityAction<InventoryActionBase>();
|
||||
var bag_inven = inventory_action.getBagInven();
|
||||
|
||||
return await bag_inven.tryCheckTakableInBagInven(item_dictionary);
|
||||
}
|
||||
|
||||
return new();
|
||||
}
|
||||
|
||||
public virtual Task<Result> finalizeReward()
|
||||
{
|
||||
var result = new Result();
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
|
||||
public void postRewardProcess()
|
||||
{
|
||||
//prepare();
|
||||
|
||||
|
||||
//sendNoti();
|
||||
}
|
||||
|
||||
|
||||
public Player getOwner()
|
||||
{
|
||||
return m_owner;
|
||||
}
|
||||
|
||||
public string getUserGuid()
|
||||
{
|
||||
return m_user_guid;
|
||||
}
|
||||
|
||||
public void setRewardMetas(List<MetaAssets.Reward> rewards)
|
||||
{
|
||||
m_rewards = rewards;
|
||||
}
|
||||
|
||||
|
||||
public List<Item> getRewardedItems()
|
||||
{
|
||||
return m_rewarded_items;
|
||||
}
|
||||
|
||||
|
||||
public List<MetaAssets.Reward> getRewardedMoneys()
|
||||
{
|
||||
return m_rewarded_moneys;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
40
GameServer/Contents/Reward/RewardClaim.cs
Normal file
40
GameServer/Contents/Reward/RewardClaim.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using GameServer;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GameServer.Reward;
|
||||
|
||||
public class RewardClaim : RewardBase
|
||||
{
|
||||
private ClaimRewardReference m_claim_reward_ref;
|
||||
|
||||
public RewardClaim(Player player, string userGuid, ClaimRewardReference claimRewardReference) : base(player, userGuid, claimRewardReference.m_reward_data)
|
||||
{
|
||||
m_claim_reward_ref = claimRewardReference;
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상전 처리해야되는 것들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> prepareReward()
|
||||
{
|
||||
return Task.FromResult(new Result());
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상처리 후 필요한 로직들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> finalizeReward()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
m_claim_reward_ref.m_rewared_money.AddRange(getRewardedMoneys());
|
||||
m_claim_reward_ref.m_rewarded_items.AddRange(getRewardedItems());
|
||||
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
}
|
||||
130
GameServer/Contents/Reward/RewardManager.cs
Normal file
130
GameServer/Contents/Reward/RewardManager.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
using Google.Protobuf;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
using ServerCommon.BusinessLogDomain;
|
||||
using MetaAssets;
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class RewardManager : Singleton<RewardManager>
|
||||
{
|
||||
//private static readonly RewardManager _instance = new();
|
||||
//public static RewardManager Instance { get { return _instance; } }
|
||||
|
||||
|
||||
//public RewardManager() { }
|
||||
|
||||
|
||||
public async Task<Result> proceedRewardProcess(IReward rewardBase)
|
||||
{
|
||||
var result = await rewardBase.prepareReward();
|
||||
if (result.isFail()) return result;
|
||||
|
||||
result = await rewardBase.addReward();
|
||||
if (result.isFail()) return result;
|
||||
|
||||
result = await rewardBase.finalizeReward();
|
||||
if (result.isFail()) return result;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void postRewardProcess(IReward rewardBase)
|
||||
{
|
||||
rewardBase.postRewardProcess();
|
||||
}
|
||||
|
||||
|
||||
public (Result, MetaAssets.Reward?) makeRewardFromItemStr(string itemIdStr, string countStr)
|
||||
{
|
||||
var result = new Result();
|
||||
string err_msg = string.Empty;
|
||||
|
||||
result = convertStrToItemId(itemIdStr, out int itemId);
|
||||
if(result.isFail()) return (result, null);
|
||||
|
||||
result = convertStrToItemCount(countStr, out int count);
|
||||
if (result.isFail()) return (result, null);
|
||||
|
||||
|
||||
if (false == MetaData.Instance._ItemTable.TryGetValue(itemId, out ItemMetaData? itemData))
|
||||
{
|
||||
err_msg = $"Not found meta of Item !!! : ItemMetaId:{itemId}";
|
||||
result.setFail(ServerErrorCode.CartMetaDataNotFound, err_msg);
|
||||
Log.getLogger().error(err_msg);
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
MetaAssets.Reward reward = ItemMetaHelper.convertFromItemIdToReward(itemData.ItemId, count);
|
||||
|
||||
return (result, reward);
|
||||
}
|
||||
|
||||
public Result makeItemIdFromStr(string itemIdStr, string countStr, out int itemId, out int count)
|
||||
{
|
||||
var result = new Result();
|
||||
itemId = 0;
|
||||
count = 0;
|
||||
result = convertStrToItemId(itemIdStr, out itemId);
|
||||
if (result.isFail()) return result;
|
||||
|
||||
result = convertStrToItemCount(countStr, out count);
|
||||
if (result.isFail()) return result;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private Result convertStrToItemId(string itemIdStr, out int itemId)
|
||||
{
|
||||
var result = new Result();
|
||||
if (int.TryParse(itemIdStr, out itemId) == false)
|
||||
{
|
||||
var err_msg = $"convertStrToItemId {itemIdStr} is not number";
|
||||
result.setFail(ServerErrorCode.ItemParsingFromStringToIntErorr, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
return result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private Result convertStrToItemCount(string countStr, out int itemCount)
|
||||
{
|
||||
var result = new Result();
|
||||
if (int.TryParse(countStr, out itemCount) == false)
|
||||
{
|
||||
var err_msg = $"convertStrToItemCount {countStr} is not number";
|
||||
result.setFail(ServerErrorCode.ItemValueParsingFromStringToIntErorr, err_msg);
|
||||
Log.getLogger().error(err_msg);
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public (Result, List<MetaAssets.RewardMetaData>?) makeRewardsInfo(string rewardGroupIdStr)
|
||||
{
|
||||
var result = new Result();
|
||||
string err_msg = string.Empty;
|
||||
if (int.TryParse(rewardGroupIdStr, out int rewardGroupId) == false)
|
||||
{
|
||||
err_msg = $"makeRewardInfo {rewardGroupIdStr} is not number";
|
||||
result.setFail(ServerErrorCode.RewardGroupIdParsingFromStringToIntErorr, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
if (false == MetaData.Instance._RewardMetaTable.TryGetValue(rewardGroupId, out var rewardDatas))
|
||||
{
|
||||
err_msg = $"_RewardDataTable not exist info rewardGroupId = {rewardGroupId}";
|
||||
result.setFail(ServerErrorCode.RewardInfoNotExist, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
return (result, null);
|
||||
}
|
||||
return (result, rewardDatas);
|
||||
}
|
||||
}
|
||||
90
GameServer/Contents/Reward/RewardQuest.cs
Normal file
90
GameServer/Contents/Reward/RewardQuest.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
using Amazon.DynamoDBv2.DocumentModel;
|
||||
using GameServer;
|
||||
using Newtonsoft.Json;
|
||||
using ServerCommon;
|
||||
using ServerCore; using ServerBase;
|
||||
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class RewardQuest : RewardBase
|
||||
{
|
||||
QuestRewardHandler m_quest_reward_handler;
|
||||
|
||||
public RewardQuest(Player player, string userGuid, QuestRewardHandler questRewardRef) : base(player, userGuid)
|
||||
{
|
||||
m_quest_reward_handler = questRewardRef;
|
||||
setRewardMetas(questRewardRef.m_rewards);
|
||||
|
||||
//m_res = res;
|
||||
//m_quest_log_invoker = new QuestRewardBusinessLog(LogActionType.QuestMainReward, )
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상전 처리해야되는 것들 처리, 여기선 퀘스트 삭제 처리하고, EndQuest 추가 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> prepareReward()
|
||||
{
|
||||
var result = new Result();
|
||||
//기존 퀘스트 삭제 처리
|
||||
var quest = m_quest_reward_handler.m_quest;
|
||||
if (quest == null)
|
||||
{
|
||||
//정상 로직대로라면 퀘스트가 null일수가 없는데 일단 예외처리
|
||||
var err_msg = $"questRewardRef quest is null. questRewardRef = {JsonConvert.SerializeObject(m_quest_reward_handler)}";
|
||||
result.setFail(ServerErrorCode.QuestInvalidValue, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
var quest_attribute = quest.getEntityAttribute<QuestAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(quest_attribute, () => $"quest_attribute is null !!!");
|
||||
quest_attribute.deleteEntityAttribute();
|
||||
|
||||
//완료 퀘스트 생성
|
||||
m_quest_reward_handler.m_end_quest = new EndQuest(getOwner(), getUserGuid(), m_quest_reward_handler.m_quest_id, m_quest_reward_handler.m_quest_revision);
|
||||
var end_quest_attribute = m_quest_reward_handler.m_end_quest.getEntityAttribute<EndQuestAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(end_quest_attribute, () => $"end_quest_attribute is null !!!");
|
||||
|
||||
var end_quest_doc = new EndQuestDoc(getOwner().getUserGuid(), m_quest_reward_handler.m_quest_id, m_quest_reward_handler.m_quest_revision);
|
||||
end_quest_attribute.syncOriginDocBaseWithNewDoc<EndQuestAttribute>(end_quest_doc);
|
||||
|
||||
var end_quest_attrib = end_quest_doc.getAttrib<EndQuestAttrib>();
|
||||
NullReferenceCheckHelper.throwIfNull(end_quest_attrib, () => $"end_quest_attrib is null !!!");
|
||||
|
||||
end_quest_attrib.m_last_end_time = DateTimeHelper.Current;
|
||||
end_quest_attrib.m_end_count = 1;
|
||||
end_quest_attrib.m_quest_id = m_quest_reward_handler.m_quest_id;
|
||||
end_quest_attribute.modifiedEntityAttribute(true);
|
||||
|
||||
if (m_quest_reward_handler.m_has_ugq_daily_reward)
|
||||
{
|
||||
var daily_reward_attribute = getOwner().getEntityAttribute<UgqDailyRewardCountAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(daily_reward_attribute, () => $"daily_reward_attribute is null !!!");
|
||||
|
||||
NullReferenceCheckHelper.throwIfNull(m_quest_reward_handler.m_ugq_game_data, () => $"m_quest_reward_handler.m_ugq_game_data is null !!!");
|
||||
if (true == daily_reward_attribute.m_ugq_daily_reward_count.TryGetValue(m_quest_reward_handler.m_ugq_game_data.GradeType, out var cnt))
|
||||
{
|
||||
cnt++;
|
||||
daily_reward_attribute.m_ugq_daily_reward_count.AddOrUpdate(m_quest_reward_handler.m_ugq_game_data.GradeType, cnt, (key, old) => cnt);
|
||||
daily_reward_attribute.modifiedEntityAttribute(true);
|
||||
}
|
||||
}
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상처리 후 필요한 로직들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> finalizeReward()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
m_quest_reward_handler.m_rewarded_money.AddRange(getRewardedMoneys());
|
||||
m_quest_reward_handler.m_rewarded_items.AddRange(getRewardedItems());
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
|
||||
}
|
||||
40
GameServer/Contents/Reward/RewardQuestTask.cs
Normal file
40
GameServer/Contents/Reward/RewardQuestTask.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using GameServer;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class RewardQuestTask : RewardBase
|
||||
{
|
||||
QuestTaskUpdateHandler quest_task_update_handler;
|
||||
public RewardQuestTask(Player player, QuestTaskUpdateHandler questTaskUpdateHandler) : base(player, player.getUserGuid())
|
||||
{
|
||||
quest_task_update_handler = questTaskUpdateHandler;
|
||||
setRewardMetas(quest_task_update_handler.m_rewards);
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상전 처리해야되는 것들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> prepareReward()
|
||||
{
|
||||
var result = new Result();
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상처리 후 필요한 로직들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> finalizeReward()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
quest_task_update_handler.m_rewarded_money.AddRange(getRewardedMoneys());
|
||||
quest_task_update_handler.m_rewarded_items.AddRange(getRewardedItems());
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
}
|
||||
42
GameServer/Contents/Reward/RewardRandomItemBox.cs
Normal file
42
GameServer/Contents/Reward/RewardRandomItemBox.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using GameServer;
|
||||
using Nettention.Proud;
|
||||
using ServerCommon;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class RewardRandomItemBox : RewardBase
|
||||
{
|
||||
protected RandomBoxItemReference m_random_box_item_ref = new();
|
||||
|
||||
public RewardRandomItemBox(Player player, string userGuid, RandomBoxItemReference itemRef) : base(player, userGuid, itemRef.m_rewards)
|
||||
{
|
||||
m_random_box_item_ref = itemRef;
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상전 처리해야되는 것들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> prepareReward()
|
||||
{
|
||||
return Task.FromResult(new Result());
|
||||
}
|
||||
|
||||
|
||||
//=====================================================================================
|
||||
// 보상처리 후 필요한 로직들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> finalizeReward()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
//m_random_box_item_ref.m_rewarded_money.AddRange(getRewardedMoneys());
|
||||
//m_random_box_item_ref.m_rewarded_items.AddRange(getRewardedItems());
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
}
|
||||
36
GameServer/Contents/Reward/RewardSeasonPass.cs
Normal file
36
GameServer/Contents/Reward/RewardSeasonPass.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using GameServer;
|
||||
using Nettention.Proud;
|
||||
using ServerCommon;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class RewardSeasonPass : RewardBase
|
||||
{
|
||||
public RewardSeasonPass(Player player, string userGuid, List<MetaAssets.Reward> rewards) : base(player, userGuid, rewards)
|
||||
{
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상전 처리해야되는 것들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> prepareReward()
|
||||
{
|
||||
return Task.FromResult(new Result());
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상처리 후 필요한 로직들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> finalizeReward()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
}
|
||||
36
GameServer/Contents/Reward/RewardUseProp.cs
Normal file
36
GameServer/Contents/Reward/RewardUseProp.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using GameServer;
|
||||
using Nettention.Proud;
|
||||
using ServerCommon;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class RewardUseProp : RewardBase
|
||||
{
|
||||
public RewardUseProp(Player player, string userGuid, List<MetaAssets.Reward> rewards) : base(player, userGuid, rewards)
|
||||
{
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상전 처리해야되는 것들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> prepareReward()
|
||||
{
|
||||
return Task.FromResult(new Result());
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
// 보상처리 후 필요한 로직들 처리
|
||||
//=====================================================================================
|
||||
public override Task<Result> finalizeReward()
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user