コード例 #1
0
        public Game Create(GameOptionsData options)
        {
            // TODO: Prevent duplicates when using server redirector using INodeProvider.

            var gameCode    = GameCode.GenerateCode(6);
            var gameCodeStr = GameCode.IntToGameName(gameCode);
            var game        = new Game(this, _nodeLocator, _publicIp, gameCode, options);

            if (_nodeLocator.Find(gameCodeStr) == null &&
                _games.TryAdd(gameCode, game))
            {
                _nodeLocator.Save(gameCodeStr, _publicIp);
                _logger.LogDebug("Created game with code {0} ({1}).", game.CodeStr, gameCode);
                return(game);
            }

            _logger.LogWarning("Failed to create game.");
            return(null);
        }