コード例 #1
0
ファイル: GameService.cs プロジェクト: generateui/SettleIn
        private void TryCreateNewGame(GameAction action)
        {
            //check if player has already a game
            foreach (ServerGame game in _Games)
            {
                //check if player is already hosting
                if (game.Host.Equals(action.Sender))
                {
                    string message = "You are already hosting a game, game creation failed";

                    MessageFromServerAction messageBack = new MessageFromServerAction();
                    messageBack.Message = message;
                    messageBack.Sender = _ServerUser.ID;

                    Whisper(action.Sender, messageBack);
                    return;
                }

                //check if player is already in another game
                if (game.Users != null)
                {
                    foreach (XmlUser player in game.Users)
                    {
                        if (player.Equals(action.Sender))
                        {
                            string message = String.Format("You are already in the game '{0}'", game.Game.Settings.Name);

                            MessageFromServerAction messageBack =
                                new MessageFromServerAction();
                            messageBack.Message = message;
                            messageBack.Sender = _ServerUser.ID;

                            Whisper(action.Sender, messageBack);
                            return;
                        }
                    }
                }

            }

            int gameID = GetNewGameID();
            // create game, user is not in another game hosting or playing
            ServerGame serverGame =
                new ServerGame(((TryCreateGameAction)action).GameSettings);
            serverGame.Host = _CurrentPerson;
            serverGame.ID = gameID;
            serverGame.Users.Add(_CurrentPerson);
            _Games.Add(serverGame);

            //create the message
            GameCreatedAction newGameMessage = new GameCreatedAction();
            newGameMessage.Sender = _ServerUser.ID;
            newGameMessage.ID = gameID;
            newGameMessage.Game = ((TryCreateGameAction)action).GameSettings;

            //broadcast the message
            BroadcastMessage(newGameMessage, null);
        }
コード例 #2
0
ファイル: Lobby.xaml.cs プロジェクト: generateui/SettleIn
 private void AddGame(GameCreatedAction action)
 {
     _GamesPending.Add(new XmlGame() { Settings = action.Game, ID = action.ID });
 }