public static void Init() { Plugin.ApplyHarmonyPatches(); if (CharacteristicSelectionViewController == null) { CharacteristicSelectionViewController = Resources.FindObjectsOfTypeAll <BeatmapCharacteristicSelectionViewController>().FirstOrDefault(); if (CharacteristicSelectionViewController == null) { Utilities.Logger.Log("Characteristic View Controller null"); return; } CharacteristicSelectionViewController.didSelectBeatmapCharacteristicEvent += CharacteristicSelectionViewController_didSelectBeatmapCharacteristicEvent; } if (MainMenuViewController == null) { SoloFreePlayFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().FirstOrDefault(); PartyFreePlayFlowCoordinator = Resources.FindObjectsOfTypeAll <PartyFreePlayFlowCoordinator>().FirstOrDefault(); MainMenuViewController = Resources.FindObjectsOfTypeAll <MainMenuViewController>().FirstOrDefault(); if (MainMenuViewController == null) { return; } MainMenuViewController.didFinishEvent += MainMenuViewController_didFinishEvent; } }
public static void Init() { Plugin.ApplyHarmonyPatches(); if (MainMenuViewController == null) { SoloFreePlayFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().FirstOrDefault(); PartyFreePlayFlowCoordinator = Resources.FindObjectsOfTypeAll <PartyFreePlayFlowCoordinator>().FirstOrDefault(); MainMenuViewController = Resources.FindObjectsOfTypeAll <MainMenuViewController>().FirstOrDefault(); if (MainMenuViewController == null) { return; } MainMenuViewController.didFinishEvent += MainMenuViewController_didFinishEvent; /* * if (CharacteristicSelectionViewController == null) * { * CharacteristicSelectionViewController = Resources.FindObjectsOfTypeAll<BeatmapCharacteristicSegmentedControlController>().FirstOrDefault(); * if (CharacteristicSelectionViewController != null) * CharacteristicSelectionViewController.didSelectBeatmapCharacteristicEvent += CharacteristicSelectionViewController_didSelectBeatmapCharacteristicEvent; * } */ } }
private void PopDifficultyAndDetails() { bool isSolo = (freePlayFlowCoordinator is SoloFreePlayFlowCoordinator); if (isSolo) { SoloFreePlayFlowCoordinator soloCoordinator = freePlayFlowCoordinator as SoloFreePlayFlowCoordinator; int controllers = 0; if (soloCoordinator.GetPrivateField <StandardLevelDetailViewController>("_levelDetailViewController").isInViewControllerHierarchy) { controllers++; } if (controllers > 0) { soloCoordinator.InvokePrivateMethod("PopViewControllersFromNavigationController", new object[] { soloCoordinator.GetPrivateField <DismissableNavigationController>("_navigationController"), controllers, null, false }); } } else { PartyFreePlayFlowCoordinator partyCoordinator = freePlayFlowCoordinator as PartyFreePlayFlowCoordinator; int controllers = 0; if (partyCoordinator.GetPrivateField <StandardLevelDetailViewController>("_levelDetailViewController").isInViewControllerHierarchy) { controllers++; } if (controllers > 0) { partyCoordinator.InvokePrivateMethod("PopViewControllersFromNavigationController", new object[] { partyCoordinator.GetPrivateField <DismissableNavigationController>("_navigationController"), controllers, null, false }); } } }
static void Postfix(ref PartyFreePlayFlowCoordinator __instance, LevelCompletionResults levelCompletionResults) { // Show end of song UI if (levelCompletionResults.levelEndAction == LevelCompletionResults.LevelEndAction.None) { EndLevelUiCreator.Show(__instance); } }
private void SceneManager_activeSceneChanged(UnityEngine.SceneManagement.Scene arg0, UnityEngine.SceneManagement.Scene arg1) { if (arg1.name == "Menu") { if (_characteristicViewController == null) { _characteristicViewController = Resources.FindObjectsOfTypeAll <BeatmapCharacteristicSelectionViewController>().FirstOrDefault(); if (_characteristicViewController == null) { return; } _characteristicViewController.didSelectBeatmapCharacteristicEvent += _characteristicViewController_didSelectBeatmapCharacteristicEvent; } if (_soloFlowCoordinator == null) { _soloFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().FirstOrDefault(); if (_soloFlowCoordinator == null) { return; } _soloDetailView = _soloFlowCoordinator.GetPrivateField <StandardLevelDetailViewController>("_levelDetailViewController"); _practiceViewController = _soloFlowCoordinator.GetPrivateField <PracticeViewController>("_practiceViewController"); if (_soloDetailView != null) { _soloDetailView.didPressPlayButtonEvent += _soloDetailView_didPressPlayButtonEvent; } else { Log("Detail View Null", Plugin.LogLevel.Info); } if (_practiceViewController != null) { _practiceViewController.didPressPlayButtonEvent += _practiceViewController_didPressPlayButtonEvent; } else { Log("Practice View Null", Plugin.LogLevel.Info); } } if (_partyFlowCoordinator == null) { _partyFlowCoordinator = Resources.FindObjectsOfTypeAll <PartyFreePlayFlowCoordinator>().FirstOrDefault(); } if (saveRequested) { Settings.Save(); saveRequested = false; } } }
public MenuColorSwapper(Config.Menu menuConfig, MenuLightsManager menuLightsManager, MainFlowCoordinator mainFlowCoordinator, CampaignFlowCoordinator campaignFlowCoordinator, SoloFreePlayFlowCoordinator soloFreePlayFlowCoordinator, PartyFreePlayFlowCoordinator partyFreePlayFlowCoordinator, CenterStageScreenController centerStageScreenController) { _menuConfig = menuConfig; _menuLightsManager = menuLightsManager; _mainFlowCoordinator = mainFlowCoordinator; _campaignFlowCoordinator = campaignFlowCoordinator; _centerStageScreenController = centerStageScreenController; _soloFreePlayFlowCoordinator = soloFreePlayFlowCoordinator; _partyFreePlayFlowCoordinator = partyFreePlayFlowCoordinator; }
public MockPartyViewController() { _partyFlowCoordinator = Resources.FindObjectsOfTypeAll <PartyFreePlayFlowCoordinator>().FirstOrDefault(); LevelListViewController level = ReflectionUtil.GetPrivateField <LevelListViewController>(_partyFlowCoordinator, "_levelListViewController"); detail = ReflectionUtil.GetPrivateField <StandardLevelDetailViewController>(_partyFlowCoordinator, "_levelDetailViewController"); BeatmapDifficultyViewController beatmap = ReflectionUtil.GetPrivateField <BeatmapDifficultyViewController>(_partyFlowCoordinator, "_beatmapDifficultyViewController"); _gameplaySetupViewController = ReflectionUtil.GetPrivateField <GameplaySetupViewController>(_partyFlowCoordinator, "_gameplaySetupViewController"); level.didActivateEvent += (first, type) => { if (Data.Steam.SteamAPI.GetConnectionState() != SteamAPI.ConnectionState.CONNECTED || !_partyFlowCoordinator || !_partyFlowCoordinator.isActivated) { return; } _partyFlowCoordinator.InvokePrivateMethod("SetRightScreenViewController", new object[] { MultiplayerLobby.Instance.rightViewController, true }); }; level.didSelectLevelEvent += didSelectLevel; beatmap.didSelectDifficultyEvent += didSelectBeatmap; mPlay = BeatSaberUI.CreateUIButton(detail.rectTransform, "CreditsButton", new Vector2(0f, -24f), new Vector2(40, 9f)); mPlay.SetButtonText("Play with Lobby"); mPlay.SetButtonTextSize(5f); mPlay.gameObject.SetActive(false); mPlay.ToggleWordWrapping(false); mPlay.onClick.AddListener(didSelectPlay); _mainMenuController = Resources.FindObjectsOfTypeAll <MainMenuViewController>().FirstOrDefault(); Button partyButton = ReflectionUtil.GetPrivateField <Button>(_mainMenuController, "_partyButton"); HoverHint hint = Resources.FindObjectsOfTypeAll <HoverHint>().Where(x => x.text == "Play with your friends locally!").First(); _mainMenuController.didActivateEvent += (first, type) => { if (Data.Steam.SteamAPI.GetConnectionState() != SteamAPI.ConnectionState.CONNECTED) { partyButton.SetButtonText("Party"); if (hint) { hint.text = "Play with your friends locally!"; } } else { partyButton.SetButtonText("Online Lobby"); if (hint) { hint.text = "Play with your friends in your steam lobby!"; } } }; }
public MockPartyViewController() { Instance = this; _partyFlowCoordinator = Resources.FindObjectsOfTypeAll <PartyFreePlayFlowCoordinator>().FirstOrDefault(); LevelPackLevelsViewController levels = ReflectionUtil.GetPrivateField <LevelPackLevelsViewController>(_partyFlowCoordinator, "_levelPackLevelsViewController"); LevelPacksViewController levelPacks = ReflectionUtil.GetPrivateField <LevelPacksViewController>(_partyFlowCoordinator, "_levelPacksViewController"); LevelPackDetailViewController levelPackDetail = ReflectionUtil.GetPrivateField <LevelPackDetailViewController>(_partyFlowCoordinator, "_levelPackDetailViewController"); StandardLevelDetailViewController detail = ReflectionUtil.GetPrivateField <StandardLevelDetailViewController>(_partyFlowCoordinator, "_levelDetailViewController"); detailView = ReflectionUtil.GetPrivateField <StandardLevelDetailView>(detail, "_standardLevelDetailView"); _gameplaySetupViewController = ReflectionUtil.GetPrivateField <GameplaySetupViewController>(_partyFlowCoordinator, "_gameplaySetupViewController"); LocalLeaderboardViewController leaderboard = ReflectionUtil.GetPrivateField <LocalLeaderboardViewController>(_partyFlowCoordinator, "_localLeaderboardViewController"); detail.didPresentContentEvent += (controller, type) => { if (type == StandardLevelDetailViewController.ContentType.OwnedAndReady) { didSelectLevel(detail.selectedDifficultyBeatmap); } }; detail.didChangeDifficultyBeatmapEvent += didSelectDifficultyBeatmap; detail.didPressPlayButtonEvent += didPressPlay; levelPackDetail.didActivateEvent += (firstActivation, type) => showLeaderboard(); leaderboard.didActivateEvent += (firstActivation, type) => showLeaderboard(); _mainMenuController = Resources.FindObjectsOfTypeAll <MainMenuViewController>().FirstOrDefault(); Button partyButton = ReflectionUtil.GetPrivateField <Button>(_mainMenuController, "_partyButton"); HoverHint hint = Resources.FindObjectsOfTypeAll <HoverHint>().Where(x => x.text == "Play with your friends locally!").First(); _mainMenuController.didActivateEvent += (first, type) => { if (Data.Steam.SteamAPI.GetConnectionState() != SteamAPI.ConnectionState.CONNECTED) { partyButton.SetButtonText("Party"); if (hint) { hint.text = "Play with your friends locally!"; } } else { partyButton.SetButtonText("Online Lobby"); if (hint) { hint.text = "Play with your friends in your steam lobby!"; } } }; }
public static void InitializeCoordinators() { if (_characteristicViewController == null) { _characteristicViewController = Resources.FindObjectsOfTypeAll <BeatmapCharacteristicSelectionViewController>().FirstOrDefault(); if (_characteristicViewController == null) { return; } _characteristicViewController.didSelectBeatmapCharacteristicEvent += _characteristicViewController_didSelectBeatmapCharacteristicEvent; } if (_soloFlowCoordinator == null) { _soloFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().FirstOrDefault(); if (_soloFlowCoordinator == null) { return; } _soloDetailView = _soloFlowCoordinator.GetField <StandardLevelDetailViewController>("_levelDetailViewController"); _practiceViewController = _soloFlowCoordinator.GetField <PracticeViewController>("_practiceViewController"); if (_soloDetailView != null) { _soloDetailView.didPressPlayButtonEvent += _soloDetailView_didPressPlayButtonEvent; } else { ChromaLogger.Log("Detail View Null", ChromaLogger.Level.WARNING); } if (_practiceViewController != null) { _practiceViewController.didPressPlayButtonEvent += _practiceViewController_didPressPlayButtonEvent; } else { ChromaLogger.Log("Practice View Null", ChromaLogger.Level.WARNING); } } if (_partyFlowCoordinator == null) { _partyFlowCoordinator = Resources.FindObjectsOfTypeAll <PartyFreePlayFlowCoordinator>().FirstOrDefault(); } }
public void OnActiveSceneChanged(Scene prevScene, Scene nextScene) { if (nextScene.name == "MenuCore") { if (_soloFlowCoordinator == null) { _soloFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().FirstOrDefault(); if (_soloFlowCoordinator == null) { return; } _soloDetailView = _soloFlowCoordinator.GetPrivateField <StandardLevelDetailViewController>("_levelDetailViewController"); _practiceViewController = _soloFlowCoordinator.GetPrivateField <PracticeViewController>("_practiceViewController"); if (_soloDetailView != null) { _soloDetailView.didPressPlayButtonEvent += _soloDetailView_didPressPlayButtonEvent; } else { Log("Detail View Null", Plugin.LogLevel.Info); } if (_practiceViewController != null) { _practiceViewController.didPressPlayButtonEvent += _practiceViewController_didPressPlayButtonEvent; } else { Log("Practice View Null", Plugin.LogLevel.Info); } } if (_partyFlowCoordinator == null) { _partyFlowCoordinator = Resources.FindObjectsOfTypeAll <PartyFreePlayFlowCoordinator>().FirstOrDefault(); } if (saveRequested) { Settings.Save(); saveRequested = false; } } }