public static void StarGame(this GameRoom gameRoom) { Actor_StartGame actor_StartGame = new Actor_StartGame(); actor_StartGame.RoomConfigs = gameRoom.RoomConfig.Configs; actor_StartGame.RoomId = gameRoom.RoomId; foreach (var player in gameRoom.PlayerDic.Values) { actor_StartGame.PlayerInfos.Add(ChessPlayerFactory.CopySerialize(player)); } foreach (var player in gameRoom.PlayerDic) { player.Value.StartGame(actor_StartGame); } foreach (var player in actor_StartGame.PlayerInfos) { ChessPlayerFactory.DisposeSerializePlayer(player); } }
public static async Task <GameRoom> Create(M2S_StartGame m2S_StartGame) { try { GameRoom gameRoom = ComponentFactory.Create <GameRoom>(); //添加玩家 foreach (var playerInfo in m2S_StartGame.MatchPlayerInfos) { gameRoom.PlayerDic[playerInfo.SeatIndex] = await ChessPlayerFactory.Create(playerInfo, gameRoom); } await gameRoom.AddComponent <MailBoxComponent>().AddLocation(); return(gameRoom); } catch (System.Exception ex) { Log.Error(ex); throw; } }