초기커밋
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
using Amazon.Runtime.Internal;
|
||||
using Nettention.Proud;
|
||||
using ServerCommon;
|
||||
using ServerCore; using ServerBase;
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
public class RandomBoxItemReference
|
||||
{
|
||||
public SelectedGacha? m_gacha_data { get; set; } = null;
|
||||
public ushort m_num { get; set; } = 1;
|
||||
public string m_item_guid { get; set; } = string.Empty;
|
||||
public List<MetaAssets.Reward> m_rewards { get; set; } = new ();
|
||||
|
||||
public Item? m_deleted_item_nullable { get; set; } = null;
|
||||
|
||||
//public List<MetaAssets.Reward> m_rewarded_money { get; set; } = new();
|
||||
//public List<Item> m_rewarded_items { get; set; } = new();
|
||||
|
||||
public CommonResult m_common_result { get; set; } = new();
|
||||
}
|
||||
|
||||
public class RandomBoxItemUseAction : EntityActionBase
|
||||
{
|
||||
public RandomBoxItemUseAction(EntityBase owner) : base(owner)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void onClear()
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
public override async Task<Result> onInit()
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
|
||||
var result = new Result();
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<Result> getGachaReward(RandomBoxItemReference randomBoxItemRef)
|
||||
{
|
||||
var owner = getOwner() as Player;
|
||||
NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!");
|
||||
|
||||
IReward reward_proc = new RewardRandomItemBox(owner, owner.getUserGuid(), randomBoxItemRef);
|
||||
var result = await RewardManager.It.proceedRewardProcess(reward_proc);
|
||||
reward_proc.postRewardProcess();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<Result> deleteRandomBox(RandomBoxItemReference randomBoxItemRef)
|
||||
{
|
||||
var item_guid = randomBoxItemRef.m_item_guid;
|
||||
var num = randomBoxItemRef.m_num;
|
||||
var owner = getOwner() as Player;
|
||||
NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!");
|
||||
|
||||
var inventory_action = owner.getEntityAction<InventoryActionBase>();
|
||||
|
||||
(var result, var removed_item) = await inventory_action.tryDeleteItemByGuid(item_guid, num);
|
||||
if (result.isFail())
|
||||
{
|
||||
var err_msg = $"Failed to tryDeleteItemByGuid() !!! : {result.toBasicString()} - {owner.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return result;
|
||||
}
|
||||
randomBoxItemRef.m_deleted_item_nullable = removed_item;
|
||||
return result;
|
||||
}
|
||||
|
||||
public Result conditionCheck(ref RandomBoxItemReference randomBoxItemRef)
|
||||
{
|
||||
var owner = getOwner() as Player;
|
||||
NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!");
|
||||
|
||||
var inventory_action = owner.getEntityAction<InventoryActionBase>();
|
||||
|
||||
var result = new Result();
|
||||
var item_guid = randomBoxItemRef.m_item_guid;
|
||||
|
||||
var item = inventory_action.tryGetItemByItemGuid(item_guid);
|
||||
if (item is null)
|
||||
{
|
||||
var err_msg = $"Failed to tryGetItemByItemGuid !!! : itemGuid:{item_guid} : {this.getTypeName()}";
|
||||
result.setFail(ServerErrorCode.ItemNotFound, err_msg);
|
||||
Log.getLogger().error(result.toBasicString());
|
||||
return result;
|
||||
}
|
||||
|
||||
var item_meta = item.getItemMeta();
|
||||
if (item_meta is null)
|
||||
{
|
||||
var err_msg = $"Not found meta of Item !!! : temMetaId:{item_guid}";
|
||||
result.setFail(ServerErrorCode.ItemNotFound, err_msg);
|
||||
return result;
|
||||
}
|
||||
|
||||
if (false == item_meta.canRewardFromItem())
|
||||
{
|
||||
var err_msg = $"RandomBoxItemDataInvalid itemId({item_meta.ItemId})";
|
||||
result.setFail(ServerErrorCode.RandomBoxItemDataInvalid, err_msg);
|
||||
return result;
|
||||
}
|
||||
|
||||
if (false == MetaData.Instance._GachaMetaTable.TryGetValue(item_meta.GachaGroupId, out var gachaData))
|
||||
{
|
||||
var err_msg = $"Not Exist GachaData gachaGroupId = {item_meta.GachaGroupId}";
|
||||
result.setFail(ServerErrorCode.NotExistGachaData, err_msg);
|
||||
return result;
|
||||
}
|
||||
|
||||
randomBoxItemRef.m_gacha_data = gachaData;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public void useRandomBoxItem()
|
||||
{
|
||||
string err_msg = $"need code implement !!!!";
|
||||
Log.getLogger().error(err_msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user