Exemplo n.º 1
0
        /// <summary>
        /// Creating gameBattleField for the player
        /// </summary>
        /// <param name="ownerId"></param>
        /// <param name="battleFieldId"></param>
        /// <returns></returns>
        public BattleFieldResult CreateGameBattleField(int ownerId, int battleFieldId)
        {
            var owner  = _userRepository.GetById(ownerId);
            var result = new BattleFieldResult();

            if (owner == null)
            {
                result.IsError      = true;
                result.ErrorMessage = "There is no user with such Id";
                return(result);
            }

            var battleField = _battleFieldRepository.GetById(battleFieldId);

            if (battleField == null)
            {
                result.IsError      = true;
                result.ErrorMessage = "There is no battlefield with such Id";
                return(result);
            }

            var gameBattleField = new GameBattleField(battleField);

            gameBattleField.Owner = owner;

            _gameBattleFieldRepository.Add(gameBattleField);
            _gameBattleFieldRepository.Save();

            result.IsWaiting         = true;
            result.GameBattleFieldId = gameBattleField.Id;

            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Waiting for other player to start the game
        /// </summary>
        /// <param name="gameBattleFieldId"></param>
        /// <returns></returns>
        public BattleFieldResult WaitingForPlayer(int gameBattleFieldId)
        {
            var result = new BattleFieldResult();
            var userGameBattleField = _gameBattleFieldRepository.GetById(gameBattleFieldId);

            if (userGameBattleField == null)
            {
                result.IsError           = true;
                result.ErrorMessage      = "There is no gameBattlefield with such Id";
                result.GameBattleFieldId = gameBattleFieldId;
                return(result);
            }

            if (!userGameBattleField.IsWaiting)
            {
                result.GameBattleFieldId = userGameBattleField.Id;
                result.GameId            = userGameBattleField.GameId;
                return(result);
            }

            var gameBattleField = _gameBattleFieldRepository.GetAll().
                                  FirstOrDefault(gb => gb.IsWaiting && gb.Id != gameBattleFieldId);

            if (gameBattleField == null)
            {
                result.IsWaiting         = true;
                result.GameBattleFieldId = gameBattleFieldId;
                return(result);
            }

            var gameBattleFields = new List <GameBattleField>()
            {
                userGameBattleField,
                gameBattleField
            };

            result.GameId = CreateGame(gameBattleFields);
            return(result);
        }