예제 #1
0
        private IEnumerator Initialize()
        {
            yield return(LauncherConnection.InitializeConnection());

            if (!ApplicationStarter.InitializeAssetManager())
            {
                Log.Error("InitializeAssetManager: misssing AssetReferenceMap", 100, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Main.cs");
                Quit();
            }
            if (!ApplicationStarter.InitializeRuntimeData())
            {
                Log.Error("InitializeAssetManager: missing LocalizedTextData or BootTextCollection", 107, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Main.cs");
                Quit();
            }
            SplashState splashState = new SplashState();

            StateManager.GetDefaultLayer().SetChildState(splashState, 0);
            yield return(ApplicationStarter.ReadBootConfig());

            if (!BootConfig.initialized)
            {
                yield return(GoToCatastrophicFailureState(InitializationFailure.BootConfigInitialisation));

                yield break;
            }
            if (ApplicationConfig.showServerSelection)
            {
                ApplicationConfig.versionCheckResult = VersionChecker.Result.Success;
            }
            else
            {
                string text = ApplicationConfig.configUrl;
                if (string.IsNullOrEmpty(text))
                {
                    text = BootConfig.remoteConfigUrl;
                }
                Log.Info("configUrl=" + text, 136, "C:\\BuildAgents\\AgentB\\work\\cub_client_win64_develop\\client\\DofusCube.Unity\\Assets\\Core\\Code\\Main.cs");
                yield return(ApplicationStarter.ReadRemoteConfig(text));

                if (!ApplicationConfig.initialized)
                {
                    yield return(GoToInitializationFailedState(InitializationFailure.ApplicationConfigInitialisation));

                    yield break;
                }
            }
            ApplicationConfig.PrintConfig();
            if (ApplicationConfig.versionCheckResult == VersionChecker.Result.None)
            {
                yield return(ApplicationStarter.ReadVersion(ApplicationConfig.versionFileUrl));
            }
            if (!ApplicationConfig.IsVersionValid())
            {
                yield return(GoToInitializationFailedState(InitializationFailure.UnvalidVersion));

                yield break;
            }
            this.StartCoroutine(CheckServerStatus());
            if (ApplicationConfig.haapiAllowed)
            {
                HaapiManager.Initialize();
            }
            string bundlesUrl     = ApplicationConfig.bundlesUrl;
            bool   patchAvailable = ApplicationConfig.versionCheckResult == VersionChecker.Result.PatchAvailable;

            yield return(ApplicationStarter.ConfigureAssetManager(bundlesUrl, patchAvailable));

            if (!AssetManager.get_isReady())
            {
                yield return(GoToInitializationFailedState(InitializationFailure.AssetManagerInitialisation));

                yield break;
            }
            if (patchAvailable)
            {
                yield return(ApplicationStarter.CheckPatch());
            }
            yield return(AudioManager.Load());

            PlayerPreferences.InitializeAudioPreference();
            yield return(RuntimeData.Load());

            if (!RuntimeData.isReady)
            {
                yield return(GoToInitializationFailedState(InitializationFailure.RuntimeDataInitialisation));

                yield break;
            }
            ConnectionHandler.Initialize();
            while (!m_serverStatusChecked)
            {
                yield return(null);
            }
            StatesUtility.GotoLoginState();
        }