zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Server/Hotfix/Game/Helper/TrialCopyHelper.cs

51 lines
1.8 KiB
C#
Raw Normal View History

using Cal.DataTable;
namespace ET
{
public static class TrialCopyHelper
{
public static async ETTask GetReword(Unit unit, int monsterId, UnOrderMultiMap<long, (int, int)> rewordMap)
{
await ETTask.CompletedTask;
MonsterBase monsterBase = DataTableHelper.Get<MonsterBase>(monsterId);
if (monsterBase == null)
{
Log.Error($"monsterBase ==null where id = {monsterId}");
return;
}
float expAddtion = 1;
PlayerData playerData = unit.GetComponent<PlayerData>();
float drop = 1;
NumericComponent num = unit.GetComponent<NumericComponent>();
if (!unit.IsAlive)
{
expAddtion *= 0.5f;
drop *= 0.5f;
}
//!Exp
long exp = MathHelper.RoundToLong(monsterBase.Exp * playerData.BattleExpSpeed * expAddtion);
num.AddSet(NumericType.Exp, exp);
if (drop != 0)
{
M2C_SendReward rewardRet =DropHelper. Drop(unit, playerData, BattleType.TrialCopy, monsterBase.Dropasubset, rewordMap, drop, "试炼掉落");
SendMessage(unit, num, rewardRet, exp, 0);
}
UnitHelper.Save<Bag>(unit).Coroutine();
}
private static void SendMessage(Unit unit, NumericComponent num, M2C_SendReward rewardRet, long exp, long coin)
{
M2C_SendBag bagRet = new M2C_SendBag();
BagHelper.GetBagInfo(unit, bagRet.BagMapList);
MessageHelper.SendActor(unit, bagRet);
//!发送奖励信息
rewardRet.Exp = exp;
rewardRet.Coin = coin;
MessageHelper.SendActor(unit, rewardRet);
}
}
}