초기커밋
This commit is contained in:
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user