private void SendCreateGameMessage(ServerGameInfo sgi) { GamesMessage msg = CreateBasicGamesMsg(sgi); msg.Operation = (byte)MessageOperation.Add; BroadcastExcl(msg, -1); }
private void SendJoinGameMessage(ServerGameInfo sgi, short id) { GameInfoMessage msg = MessageFactory.Create(MessageType.GameParams) as GameInfoMessage; msg.GameInfo = sgi.GetGameInfo(); SendMessage(msg, id); }
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); }
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); } }
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); }
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); } } }
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(); }
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); }