mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-03 04:36:03 +08:00
34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using EggLink.DanhengServer.Enums.Mission;
|
|
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Lineup;
|
|
using EggLink.DanhengServer.Kcp;
|
|
using EggLink.DanhengServer.Proto;
|
|
|
|
namespace EggLink.DanhengServer.GameServer.Server.Packet.Recv.Lineup;
|
|
|
|
[Opcode(CmdIds.ChangeLineupLeaderCsReq)]
|
|
public class HandlerChangeLineupLeaderCsReq : Handler
|
|
{
|
|
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
|
|
{
|
|
var req = ChangeLineupLeaderCsReq.Parser.ParseFrom(data);
|
|
var player = connection.Player!;
|
|
if (player.LineupManager!.GetCurLineup() == null)
|
|
{
|
|
await connection.SendPacket(new PacketChangeLineupLeaderScRsp());
|
|
return;
|
|
}
|
|
|
|
var lineup = player.LineupManager!.GetCurLineup()!;
|
|
if (lineup.BaseAvatars?.Count <= (int)req.Slot)
|
|
{
|
|
await connection.SendPacket(new PacketChangeLineupLeaderScRsp());
|
|
return;
|
|
}
|
|
|
|
var leaderAvatarId = lineup.BaseAvatars![(int)req.Slot].BaseAvatarId;
|
|
lineup.LeaderAvatarId = leaderAvatarId;
|
|
await player.MissionManager!.HandleFinishType(MissionFinishTypeEnum.TeamLeaderChange);
|
|
|
|
await connection.SendPacket(new PacketChangeLineupLeaderScRsp(req.Slot));
|
|
}
|
|
} |