Beispiel #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);
 }
Beispiel #2
0
        private void AsPlayer(Entities.Game game, Entities.User user, String passphrase, Entities.JoinResponse response, Boolean wasWaiting)
        {
            if (game.IsCurrentPlayer(user.UserId) == false)
            {
                if (_validatePassphrase.Execute(game, passphrase) == false)
                {
                    response.Result |= Entities.Enums.Game.JoinResponseCode.BadPassphrase;
                }
                else if (game.IsFull())
                {
                    response.Result |= Entities.Enums.Game.JoinResponseCode.FullGame;
                }
                else
                {
                    Boolean successful = _joinGame.Execute(game, user, Entities.Enums.GamePlayerType.Player);

                    if (successful == false)
                    {
                        response.Result |= Entities.Enums.Game.JoinResponseCode.FullGame;
                    }
                    else
                    {
                        if (wasWaiting && !game.IsWaiting())
                        {
                            Entities.User newCommander = game.NextCommander(null);

                            if (newCommander != null)
                            {
                                if (_startRound.Execute(game, game.NextCommander(null)) == true)
                                {
                                    response.Result |= Entities.Enums.Game.JoinResponseCode.NewRoundStart;
                                }
                            }
                            else
                            {
                                response.Result |= Entities.Enums.Game.JoinResponseCode.WaitingOnWinnerSelection;
                            }
                        }
                    }
                }
            }
            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;
            }
        }