Esempio n. 1
0
 public Game(Entities.Game game, Int32 currentUserId = 0)
 {
     this.GameID = game.GameID;
     this.Title = game.Title;
     this.IsPrivate = game.IsPrivate;
     this.PointToWin = game.PointToWin;
     this.MaxNumberOfPlayers = game.MaxNumberOfPlayers;
     this.DateCreated = game.DateCreated;
     this.PlayedLast = game.PlayedLast;
     this.GameDecks = game.GameDecks;
     this.PlayerCount = game.PlayerCount;
     this.Players = game.Players;
     this.SpectatorCount = game.SpectatorCount;
     this.MaxNumberOfSpectators = game.MaxNumberOfSpectators;
     this.IsPersistent = game.IsPersistent;
     this.OfficialDeckCount = game.OfficialDeckCount;
     this.AllowSpectators = game.MaxNumberOfSpectators > 0;
     this.IsFull = game.IsFull();
     this.IsCurrentPlayer = game.IsCurrentPlayer(currentUserId);
     this.MaxSpectatorsReached = game.MaxSpectatorsReached();
     this.IsCurrentSpectator = game.IsCurrentSpectator(currentUserId);
 }
Esempio n. 2
0
        private void AsSpectator(Entities.Game game, Entities.User user, String passphrase, Entities.JoinResponse response)
        {
            if (game.IsCurrentSpectator(user.UserId) == false)
            {
                if (_validatePassphrase.Execute(game, passphrase) == false)
                {
                    response.Result |= Entities.Enums.Game.JoinResponseCode.BadPassphrase;
                }
                else if (game.MaxSpectatorsReached())
                {
                    response.Result |= Entities.Enums.Game.JoinResponseCode.SpectatorsFull;
                }
                else
                {
                    Boolean successful = _joinGame.Execute(game, user, Entities.Enums.GamePlayerType.Spectator);

                    if (successful == false)
                    {
                        response.Result |= Entities.Enums.Game.JoinResponseCode.SpectatorsFull;
                    }
                }
            }
            else
            {
                response.Result |= Entities.Enums.Game.JoinResponseCode.SuccessfulAlreadyPlayer;
            }

            if (response.Result.HasFlag(Entities.Enums.Game.JoinResponseCode.BadPassphrase) == false &&
                response.Result.HasFlag(Entities.Enums.Game.JoinResponseCode.FullGame) == false)
            {
                response.Game = game;
            }
        }