CTT/Server/Hotfix/Game/Handler/Other/C2M_TransLevelHandler.cs

47 lines
1.4 KiB
C#
Executable File

using System;
using System.Collections.Generic;
namespace ET
{
[ActorMessageHandler]
public class C2M_TransLevelHandler : AMActorLocationRpcHandler<Unit, C2M_TransLevel, M2C_TransLevel>
{
protected override async ETTask Run(Unit unit, C2M_TransLevel request, M2C_TransLevel response, Action reply)
{
try
{
int trans = unit.GetComponent<NumericComponent>().GetAsInt(NumericType.Transmigration);
if (trans >= ConstDefine.TransMaterialIdArr.Length)
{
response.Message = "转生达到上限";
reply();
return;
}
int itemid = ConstDefine.TransMaterialIdArr[trans];
if (!BagHelper.HasItem(unit, itemid, 1))
{
response.Message = $"转生需要{BagHelper.GetName(itemid)}";
reply();
return;
}
BagHelper.DeleteItem(unit, itemid, 1);
string ret = await CharacterHelper.Transmigration(unit);
if (ret != null)
{
response.Message = ret;
reply();
return;
}
}
catch (Exception e)
{
Log.Error(e);
}
reply();
await ETTask.CompletedTask;
}
}
}