47 lines
1.4 KiB
C#
47 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
|
|
}
|