mirror of
https://git.lewd.wtf/PGR/ascnet
synced 2025-12-14 11:24:36 +01:00
TeamExp on stage settle
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using AscNet.Common.MsgPack;
|
||||
using AscNet.Common.Database;
|
||||
using AscNet.Common.MsgPack;
|
||||
using AscNet.Common.Util;
|
||||
using AscNet.Table.share.fuben;
|
||||
using AscNet.Table.V2.share.reward;
|
||||
@@ -204,9 +205,13 @@ namespace AscNet.GameServer.Handlers
|
||||
session.SendResponse(new FightSettleResponse() { Code = 20032004 }, packet.Id);
|
||||
return;
|
||||
}
|
||||
|
||||
List<RewardGoods> rewards = new();
|
||||
List<RewardTable> rewardTables = TableReaderV2.Parse<RewardTable>().Where(x => session.stage.Stages.ContainsKey(req.Result.StageId) ? x.Id == stageTable.FinishDropId : (x.Id == stageTable.FinishDropId || x.Id == stageTable.FirstRewardId)).ToList();
|
||||
|
||||
NotifyItemDataList notifyItemData = new();
|
||||
notifyItemData.ItemDataList.Add(session.inventory.Do(Inventory.TeamExp, stageTable.TeamExp ?? 0));
|
||||
|
||||
foreach (var rewardGoodsId in rewardTables.SelectMany(x => x.SubIds))
|
||||
{
|
||||
RewardGoodsTable? rewardGood = TableReaderV2.Parse<RewardGoodsTable>().FirstOrDefault(x => x.Id == rewardGoodsId);
|
||||
@@ -227,9 +232,7 @@ namespace AscNet.GameServer.Handlers
|
||||
// TODO: Implement other types. Other types are behaving weirdly
|
||||
if (rewardType == RewardType.Item)
|
||||
{
|
||||
NotifyItemDataList notifyItemData = new();
|
||||
notifyItemData.ItemDataList.Add(session.inventory.Do(rewardGood.TemplateId, rewardGood.Count));
|
||||
session.SendPush(notifyItemData);
|
||||
|
||||
rewards.Add(new()
|
||||
{
|
||||
@@ -242,6 +245,9 @@ namespace AscNet.GameServer.Handlers
|
||||
}
|
||||
}
|
||||
|
||||
session.SendPush(notifyItemData);
|
||||
session.ExpSanityCheck();
|
||||
|
||||
StageDatum stageData = new()
|
||||
{
|
||||
StageId = req.Result.StageId,
|
||||
|
||||
Reference in New Issue
Block a user