Files
DanhengServer-OpenSource/GameServer/Game/MultiPlayer/MarbleGame/Sync/MarbleGameInfoSyncData.cs
2025-05-10 23:08:38 +08:00

57 lines
1.8 KiB
C#

using EggLink.DanhengServer.Enums.Fight;
using EggLink.DanhengServer.GameServer.Game.MultiPlayer.MarbleGame.Seal;
using EggLink.DanhengServer.Proto;
namespace EggLink.DanhengServer.GameServer.Game.MultiPlayer.MarbleGame.Sync;
public class MarbleGameInfoSyncData(
MarbleNetWorkMsgEnum type,
MarbleSyncType syncType,
MarbleGameRoomInstance room,
List<MarbleGameSealSyncData> syncDatas) : MarbleGameBaseSyncData(type)
{
public override FightGameInfo ToProto()
{
return new FightGameInfo
{
GameMessageType = (uint)MessageType,
MarbleGameSyncInfo = new MarbleGameSyncInfo
{
MarbleSyncType = syncType,
CurRound = (uint)room.CurRound,
AllowedMoveSealList =
{
(room.Players[(int)room.CurMoveTeamType - 1] as MarbleGamePlayerInstance)!.AllowMoveSealList.Select(
x =>
(uint)x)
},
MarbleGameSyncData = { syncDatas.Select(x => x.ToProto()) },
FirstPlayerActionEnd = room.CurMoveTeamType == MarbleTeamType.TeamA
}
};
}
}
public class MarbleGameInfoLaunchingSyncData(
MarbleNetWorkMsgEnum type,
MarbleSyncType syncType,
float time,
int itemId,
List<BaseMarbleGameSyncData> syncDatas) : MarbleGameBaseSyncData(type)
{
public override FightGameInfo ToProto()
{
return new FightGameInfo
{
GameMessageType = (uint)MessageType,
MarbleGameSyncInfo = new MarbleGameSyncInfo
{
Launching = true,
MarbleSyncType = syncType,
MoveTotalTime = time,
QueuePosition = (uint)itemId,
MarbleGameSyncData = { syncDatas.Select(x => x.ToProto()) }
}
};
}
}