Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }