Ejemplo n.º 1
0
        /// <summary>
        /// Decide which platform to change to based on the type of the <see cref="ScenesTransitionSetupDataSO"/>
        /// </summary>
        // ReSharper disable once AsyncVoidMethod
        internal async void OnTransitionDidFinish(ScenesTransitionSetupDataSO?setupData, DiContainer container)
        {
            CustomPlatform platform = setupData switch
            {
                MenuScenesTransitionSetupDataSO or null when _lobbyGameStateModel.gameState == MultiplayerGameState.None => _platformManager.MenuPlatform,
                           StandardLevelScenesTransitionSetupDataSO when _platformManager.APIRequestedPlatform is not null => _platformManager.APIRequestedPlatform,
                StandardLevelScenesTransitionSetupDataSO standardLevelScenesTransitionSetupDataSO when standardLevelScenesTransitionSetupDataSO.difficultyBeatmap.parentDifficultyBeatmapSet.beatmapCharacteristic.requires360Movement => _platformManager.A360Platform,
                StandardLevelScenesTransitionSetupDataSO or MissionLevelScenesTransitionSetupDataSO or TutorialScenesTransitionSetupDataSO => _platformManager.SingleplayerPlatform,
                           MultiplayerLevelScenesTransitionSetupDataSO when container.HasBinding <MultiplayerLocalActivePlayerFacade>() => _platformManager.MultiplayerPlatform,
                _ => _platformManager.DefaultPlatform
            };

            _container = container;
            _environmentHider.OnTransitionDidFinish(setupData, container);
            await ChangeToPlatformAsync(platform);
        }