Exemple #1
0
    public void OnClickCreateGame()
    {
        uiCreateGameProgress = uiCreateGameProgress ?? FindObjectOfType <CreateGameProgressUi>();

        var selectedMap      = GetSelectedMap();
        var selectedGameRule = GetSelectedGameRule();

        if (selectedMap == null)
        {
            return;
        }

        var defaultBotCount   = selectedGameRule == null ? 0 : selectedGameRule.DefaultBotCount;
        var defaultMatchTime  = selectedGameRule == null ? 0 : selectedGameRule.DefaultMatchTime;
        var defaultMatchKill  = selectedGameRule == null ? 0 : selectedGameRule.DefaultMatchKill;
        var defaultMatchScore = selectedGameRule == null ? 0 : selectedGameRule.DefaultMatchScore;
        var botCount          = inputBotCount == null ? defaultBotCount : int.Parse(inputBotCount.text);
        var matchTime         = inputMatchTime == null ? defaultMatchTime : int.Parse(inputMatchTime.text);
        var matchKill         = inputMatchKill == null ? defaultMatchKill : int.Parse(inputMatchKill.text);
        var matchScore        = inputMatchScore == null ? defaultMatchScore : int.Parse(inputMatchScore.text);
        var gameRuleName      = selectedGameRule == null ? "" : selectedGameRule.name;

        var settings = new Dictionary <string, string> {
            { MsfDictKeys.RoomName, inputRoomName == null ? "" : inputRoomName.text },
            { MsfDictKeys.SceneName, selectedMap.scene.SceneName },
            { MsfDictKeys.MapName, selectedMap.scene.SceneName },
            { MsfDictKeys.MaxPlayers, inputMaxPlayer == null ? "0" : inputMaxPlayer.text },
            { MsfDictKeys.IsPublic, true.ToString() },
            { IOGamesModule.IsFirstRoomKey, false.ToString() },
            { IOGamesModule.RoomSpawnTypeKey, IOGamesModule.RoomSpawnTypeUser },
            { BaseNetworkGameRule.BotCountKey, botCount.ToString() },
            { BaseNetworkGameRule.MatchTimeKey, matchTime.ToString() },
            { BaseNetworkGameRule.MatchKillKey, matchKill.ToString() },
            { BaseNetworkGameRule.MatchScoreKey, matchScore.ToString() },
            { IOGamesModule.GameRuleNameKey, gameRuleName },
        };

        Msf.Client.Spawners.RequestSpawn(settings, "", (requestController, errorMsg) =>
        {
            if (requestController == null)
            {
                uiCreateGameProgress.gameObject.SetActive(false);
                Msf.Events.Fire(Msf.EventNames.ShowDialogBox, DialogBoxData.CreateError("Failed to create a game: " + errorMsg));

                Debug.LogError("Failed to create a game: " + errorMsg);
            }
            uiCreateGameProgress.Display(requestController);
        });
    }