protected override void DidActivate(bool firstActivation, bool addedToHierarchy, bool screenSystemEnabling) { if (firstActivation) { SetTitle("Custom Campaigns"); showBackButton = true; _campaignFlowCoordinator = Resources.FindObjectsOfTypeAll <CampaignFlowCoordinator>().First(); _missionMapAnimationController = Resources.FindObjectsOfTypeAll <MissionMapAnimationController>().First(); _missionNodesManager = Resources.FindObjectsOfTypeAll <MissionNodesManager>().First(); _missionStagesManager = Resources.FindObjectsOfTypeAll <MissionStagesManager>().First(); _missionConnectionsGenerator = Resources.FindObjectsOfTypeAll <MissionConnectionsGenerator>().First(); _missionSelectionMapViewController = Resources.FindObjectsOfTypeAll <MissionSelectionMapViewController>().First(); _missionNodeSelectionManager = Resources.FindObjectsOfTypeAll <MissionNodeSelectionManager>().First(); _missionLevelDetailViewController = Resources.FindObjectsOfTypeAll <MissionLevelDetailViewController>().First(); _missionResultsViewController = Resources.FindObjectsOfTypeAll <MissionResultsViewController>().First(); _playButton = _missionLevelDetailViewController.GetPrivateField <Button>("_playButton"); _mapScrollView = _missionSelectionMapViewController.GetPrivateField <ScrollView>("_mapScrollView"); _mapScrollViewItemsVisibilityController = _mapScrollView.GetComponent <ScrollViewItemsVisibilityController>(); _backgroundImage = _mapScrollView.GetComponentsInChildren <Image>().First(x => x.name == "Map"); _missionSelectionNavigationController = _campaignFlowCoordinator.GetPrivateField <MissionSelectionNavigationController>("_missionSelectionNavigationController"); _gameplayModifierInfoListItemsList = _missionLevelDetailViewController.GetPrivateField <GameplayModifierInfoListItemsList>("_gameplayModifierInfoListItemsList"); _modifiersPanelGO = _missionLevelDetailViewController.GetPrivateField <GameObject>("_modifiersPanelGO"); _gameplayModifiersModel = _missionLevelDetailViewController.GetPrivateField <GameplayModifiersModelSO>("_gameplayModifiersModel"); BSMLParser.instance.Parse(Utilities.GetResourceContent(Assembly.GetExecutingAssembly(), "BeatSaberCustomCampaigns.Views.challenge-detail.bsml"), _missionLevelDetailViewController.gameObject, this); _campaignProgressModel = _campaignFlowCoordinator.GetPrivateField <CampaignProgressModel>("_campaignProgressModel"); _campaignListViewController = BeatSaberUI.CreateViewController <CampaignListViewController>(); _campaignDetailViewController = BeatSaberUI.CreateViewController <CampaignDetailViewController>(); _campaignTotalLeaderboardViewController = BeatSaberUI.CreateViewController <CampaignTotalLeaderboardViewController>(); _campaignListNavigationController = BeatSaberUI.CreateViewController <NavigationController>(); _campaignListViewController.clickedCampaign += ShowDetails; _campaignDetailViewController.clickedPlay += OpenCampaign; _campaignChallengeLeaderbaordViewController = BeatSaberUI.CreateViewController <CampaignChallengeLeaderboardViewController>(); _unlockedItemsViewController = BeatSaberUI.CreateViewController <UnlockedItemsViewController>(); } if (addedToHierarchy) { SetBaseCampaignEnabled(false); SetViewControllerToNavigationController(_campaignListNavigationController, _campaignListViewController); ProvideInitialViewControllers(_campaignListNavigationController); } }
public void SetBaseCampaignEnabled(bool enabled) { try { if (!enabled) { _mapScrollView.OnDestroy(); _mapScrollView.Awake(); if (!_missionNodesManager.IsInitialized) { _missionNodesManager.Awake(); } baseNodes = _missionNodesManager.GetPrivateField <MissionNode[]>("_allMissionNodes"); baseRoot = _missionNodesManager.GetPrivateField <MissionNode>("_rootMissionNode"); baseFinal = _missionNodesManager.GetPrivateField <MissionNode>("_finalMissionNode"); baseMissionStages = _missionStagesManager.GetPrivateField <MissionStage[]>("_missionStages"); baseBackground = _backgroundImage.sprite; baseBackAlpha = _backgroundImage.color.a; baseMapHeight = _mapScrollView.GetPrivateField <RectTransform>("_contentRectTransform").sizeDelta.y; baseDefaultLights = _campaignFlowCoordinator.GetPrivateField <MenuLightsPresetSO>("_defaultLightsPreset"); } foreach (MissionNode node in baseNodes) { node.transform.localPosition += new Vector3(0, enabled ? 10000 : -10000, 0); node.gameObject.SetActive(true); } if (enabled) { _missionNodesManager.SetPrivateField("_rootMissionNode", baseRoot); _missionNodesManager.SetPrivateField("_finalMissionNode", baseFinal); _missionStagesManager.SetPrivateField("_missionStages", baseMissionStages); _backgroundImage.sprite = baseBackground; _backgroundImage.color = new Color(1, 1, 1, baseBackAlpha); _campaignFlowCoordinator.SetPrivateField("_defaultLightsPreset", baseDefaultLights); _mapScrollView.GetPrivateField <RectTransform>("_contentRectTransform").SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, baseMapHeight); CampaignInit(); } _pageUpModifiersButton.gameObject.SetActive(!enabled); _pageDownModifiersButton.gameObject.SetActive(!enabled); _challengeName.gameObject.SetActive(!enabled); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } }