Ejemplo n.º 1
0
        private void SendCreateGameMessage(ServerGameInfo sgi)
        {
            GamesMessage msg = CreateBasicGamesMsg(sgi);

            msg.Operation = (byte)MessageOperation.Add;
            BroadcastExcl(msg, -1);
        }
Ejemplo n.º 2
0
        private void SendJoinGameMessage(ServerGameInfo sgi, short id)
        {
            GameInfoMessage msg = MessageFactory.Create(MessageType.GameParams) as GameInfoMessage;

            msg.GameInfo = sgi.GetGameInfo();
            SendMessage(msg, id);
        }
Ejemplo n.º 3
0
 private void RemoveGame(ServerGameInfo sgi)
 {
     lock (((ICollection)_games).SyncRoot) {
         _games.Remove(sgi.Name);
     }
     InfoLog.WriteInfo(string.Format(Resources.ActionStringFormat, "game removal"), EPrefix.ServerAction);
     InfoLog.WriteInfo("Removed game: " + sgi.Name, EPrefix.ServerAction);
 }
Ejemplo n.º 4
0
 public void CreateGameNoError(GameInfo gi)
 {
     lock (((ICollection)_games).SyncRoot) {
         ServerGameInfo sgi = new ServerGameInfo(gi, _sender);
         _games.Add(gi.Name, sgi);
         SendCreateGameMessage(sgi);
         InfoLog.WriteInfo(string.Format(Resources.ActionStringFormat, "create game"), EPrefix.ServerAction);
         InfoLog.WriteInfo("Created game: " + gi.Name, EPrefix.ServerAction);
     }
 }
Ejemplo n.º 5
0
        private static GamesMessage CreateBasicGamesMsg(ServerGameInfo sgi)
        {
            List <GameInfo> list = new List <GameInfo>();

            list.Add(sgi.GetGameInfo());
            GamesMessage msg = MessageFactory.Create(MessageType.Games) as GamesMessage;

            msg.ListGameInfo = list;
            return(msg);
        }
Ejemplo n.º 6
0
 private void PreparePlayersForServerGame(ServerGameInfo sgi)
 {
     lock (((ICollection)_players).SyncRoot) {
         foreach (IPlayerID pid in sgi.Players.Values)
         {
             Player p = _players[pid.GetID()];
             p.State = PlayerStateMachine.Transform(p.State, MenuAction.GameStart);
             _players.Remove(p.Id);
         }
     }
 }
Ejemplo n.º 7
0
 private void CreateServerGame(ServerGameInfo sgi)
 {
     Serv.GameServer gs = new Yad.Net.GameServer.Server.GameServer(sgi);
     gs.EnterMsgHandlerChange(this._server);
     lock (((ICollection)_gameServerList).SyncRoot)
     {
         _gameServerList.Add(gs);
     }
     gs.OnGameEnd     += new GameEndDelegate(OnGameServerEnd);
     gs.OnPlayerLeave += new PlayerGameLeaveDelegate(OnPlayerGameLeave);
     gs.StartGameServer();
 }
Ejemplo n.º 8
0
        public ResultType CreateGame(GameInfo gi)
        {
            if (GameNumber == MaxGameNumber)
            {
                return(ResultType.MaxServerGameError);
            }
            ResultType result;

            lock (((ICollection)_games).SyncRoot) {
                result = IsValid(gi);
                if (result != ResultType.Successful)
                {
                    return(result);
                }
                ServerGameInfo sgi = new ServerGameInfo(gi, _sender);
                _games.Add(gi.Name, sgi);
                SendCreateGameMessage(sgi);
                InfoLog.WriteInfo(string.Format(Resources.ActionStringFormat, "create game"), EPrefix.ServerAction);
                InfoLog.WriteInfo("Created game: " + gi.Name, EPrefix.ServerAction);
            }
            return(result);
        }