public void CloseCampaign(CampaignFlowCoordinator campaignFlowCoordinator) { _campaignFlowCoordinator.InvokePrivateMethod("SetTitle", new object[] { "Campaign", ViewController.AnimationType.In }); _campaignFlowCoordinator.didFinishEvent += BeatSaberUI.MainFlowCoordinator.HandleCampaignFlowCoordinatorDidFinish; _campaignFlowCoordinator.didFinishEvent -= CloseCampaign; _missionNodeSelectionManager.didSelectMissionNodeEvent -= HandleMissionNodeSelectionManagerDidSelectMissionNode; _missionLevelDetailViewController.didPressPlayButtonEvent += _missionSelectionNavigationController.HandleMissionLevelDetailViewControllerDidPressPlayButton; _missionResultsViewController.retryButtonPressedEvent -= HandleMissionResultsViewControllerRetryButtonPressed; _missionSelectionMapViewController.didSelectMissionLevelEvent -= HandleMissionSelectionMapViewControllerDidSelectMissionLevel; _missionResultsViewController.continueButtonPressedEvent -= HandleMissionResultsViewControllerContinueButtonPressed; _missionLevelDetailViewController.didPressPlayButtonEvent -= HandleMissionLevelDetailViewControllerDidPressPlayButtonPlay; _missionLevelDetailViewController.didPressPlayButtonEvent -= HandleMissionLevelDetailViewControllerDidPressPlayButtonDownload; _mapScrollView.GetPrivateField <RectTransform>("_contentRectTransform").SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, baseMapHeight); unlockAllMissions = false; foreach (MissionNode node in curCampaignNodes) { Destroy(node.gameObject); } foreach (MissionStage stage in curMissionStages) { Destroy(stage.gameObject); } _campaignFlowCoordinator.GetPrivateField <MenuLightsManager>("_menuLightsManager").SetColorPreset(baseDefaultLights, animated: true); DismissFlowCoordinator(_campaignFlowCoordinator); }
public void HandleMissionSelectionMapViewControllerDidSelectMissionLevel(MissionSelectionMapViewController viewController, MissionNode missionNode) { Challenge challenge = (missionNode.missionData as CustomMissionDataSO).challenge; _campaignChallengeLeaderbaordViewController.lastClicked = challenge; _campaignFlowCoordinator.InvokePrivateMethod("SetRightScreenViewController", new object[] { _campaignChallengeLeaderbaordViewController, false }); _campaignChallengeLeaderbaordViewController.UpdateLeaderboards(); _challengeName.text = challenge.name; _challengeName.alignment = TextAlignmentOptions.Bottom; List <GameplayModifierParamsSO> modParams = _gameplayModifiersModel.GetModifierParams(missionNode.missionData.gameplayModifiers); foreach (string modName in challenge.externalModifiers.Keys) { if (!ChallengeExternalModifiers.getInfo.ContainsKey(modName)) { continue; } foreach (ExternalModifierInfo modInfo in ChallengeExternalModifiers.getInfo[modName](challenge.externalModifiers[modName])) { modParams.Add(APITools.CreateModifierParam(modInfo.icon, modInfo.name, modInfo.desc)); } } foreach (UnlockableItem item in challenge.unlockableItems) { modParams.Add(item.GetModifierParam()); } if (challenge.unlockMap) { modParams.Add(APITools.CreateModifierParam(Assets.UnlockableSongIcon, "Unlockable Song", "Unlock this song on completion")); } LoadModifiersPanel(modParams); }