Files
DanhengServer-OpenSource/GameServer/Server/Packet/Recv/RogueCommon/HandlerHandleRogueCommonPendingActionCsReq.cs
2024-10-05 22:40:41 +08:00

37 lines
1.7 KiB
C#

using EggLink.DanhengServer.GameServer.Game.RogueMagic;
using EggLink.DanhengServer.GameServer.Game.RogueTourn;
using EggLink.DanhengServer.Kcp;
using EggLink.DanhengServer.Proto;
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.RogueCommon;
[Opcode(CmdIds.HandleRogueCommonPendingActionCsReq)]
public class HandlerHandleRogueCommonPendingActionCsReq : Handler
{
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
{
var req = HandleRogueCommonPendingActionCsReq.Parser.ParseFrom(data);
var rogue = connection.Player!.RogueManager?.GetRogueInstance();
if (rogue == null) return;
if (req.BuffSelectResult != null) await rogue.HandleBuffSelect((int)req.BuffSelectResult.BuffSelectId);
if (req.BuffReforgeSelectResult != null) await rogue.HandleBuffReforgeSelect((int)req.BuffReforgeSelectResult.BuffSelectId);
if (req.BuffRerollSelectResult != null) await rogue.HandleRerollBuff();
if (req.BonusSelectResult != null) await rogue.HandleBonusSelect((int)req.BonusSelectResult.BonusId);
if (req.MiracleSelectResult != null) await rogue.HandleMiracleSelect(req.MiracleSelectResult.MiracleSelectId);
if (req.RogueTournFormulaResult != null && rogue is RogueTournInstance tournInstance)
await tournInstance.HandleFormulaSelect((int)req.RogueTournFormulaResult.TournFormulaId);
if (req.MagicUnitSelectResult != null && rogue is RogueMagicInstance magic)
await magic.HandleMagicUnitSelect(req.MagicUnitSelectResult.SelectMagicUnit);
if (req.ScepterSelectResult != null && rogue is RogueMagicInstance magic2)
await magic2.HandleScepterSelect(req.ScepterSelectResult.SelectScepter);
}
}