public static void Prefix(MainMenu __instance, HBSRadioSet ___topLevelMenu) { try { ___topLevelMenu.RadioButtons.Find((HBSButton x) => x.GetText() == "Campaign") .gameObject.SetActive(false); } catch (Exception e) { Mod.Log.Error("Failed to disable the campaign!"); Mod.Log.Error(e); } }
static void Prefix(MainMenu __instance) { try { HBSRadioSet topLevelMenu = (HBSRadioSet)ReflectionHelper.GetPrivateField(__instance, "topLevelMenu"); topLevelMenu.RadioButtons.Find((HBSButton x) => x.GetText() == "Campaign").SetText("Sandbox"); } catch (Exception e) { Logger.LogError(e); } }
private static void Prefix(MainMenu __instance) { try { FieldInfo field = __instance.GetType().GetField("topLevelMenu", BindingFlags.NonPublic | BindingFlags.Instance); HBSRadioSet topLevelMenu = (HBSRadioSet)field.GetValue(__instance); topLevelMenu.RadioButtons.Find((HBSButton x) => x.GetText() == "Career").gameObject.SetActive(false); HBS.Logging.Logger.HandleUnityLog("NotPlayingWithTheRealMechCommanders - Remove Career button for offline Roguetech play", string.Empty, LogType.Log); } catch (Exception e) { HBS.Logging.Logger.HandleUnityLog("NotPlayingWithTheRealMechCommanders - Exception Removing Career button for offline Roguetech play", e.ToString(), LogType.Exception); } }
public static void Prefix(HBSRadioSet ___topLevelMenu) { Mod.Log.Info($"Disabling the campaign button on the main menu."); try { foreach (HBSButton button in ___topLevelMenu.RadioButtons) { if (button.gameObject != null && button.gameObject.name == "button-CAMPAIGN") { button.gameObject.SetActive(false); } } } catch (Exception e) { Mod.Log.Error("Failed to disable the campaign!"); Mod.Log.Error(e); } }
public void SetupQuickSkirmishMenu() { GameObject mainMenuScreenGo = GameObject.Find("uixPrfPanl_mainMenu-Screen_V3(Clone)"); GameObject layoutMainNavigationGo = GameObject.Find("layout_main-nav"); GameObject mainNavigationActions = layoutMainNavigationGo.FindRecursive("layout-actions-radioSet"); GameObject skirmishButton = mainNavigationActions.FindRecursive("button-SKIRMISH"); GameObject quickSkirmishButtonGo = GameObject.Instantiate(skirmishButton); quickSkirmishButtonGo.name = "button-QUICK-SKIRMISH"; RectTransform quickSkirmishButtonTransform = (RectTransform)quickSkirmishButtonGo.transform; quickSkirmishButtonTransform.SetParent(mainNavigationActions.transform, false); // Reposition submenus RectTransform layoutActionsCampaignTransform = layoutMainNavigationGo.FindRecursive("layout-actions-Campaign").GetComponent <RectTransform>(); layoutActionsCampaignTransform.anchoredPosition = new Vector2(-183, layoutActionsCampaignTransform.anchoredPosition.y); RectTransform layoutActionsSkirmishTransform = layoutMainNavigationGo.FindRecursive("layout-actions-Skirmish").GetComponent <RectTransform>(); layoutActionsSkirmishTransform.anchoredPosition = new Vector2(30, layoutActionsSkirmishTransform.anchoredPosition.y); // Resize the navigation area holding the buttons RectTransform mainNavigationActionsTransform = (RectTransform)mainNavigationActions.transform; mainNavigationActionsTransform.sizeDelta = new Vector2(900, mainNavigationActionsTransform.sizeDelta.y); // Resize the background image behind the buttons RectTransform mainNavigationActionsBackgroundTransform = (RectTransform)mainNavigationActions.FindRecursive("bgFill").transform; mainNavigationActionsBackgroundTransform.sizeDelta = new Vector2(0, mainNavigationActionsBackgroundTransform.sizeDelta.y); // Set the button text TextMeshProUGUI quickSkirmishText = quickSkirmishButtonGo.FindRecursive("button_text").GetComponent <TextMeshProUGUI>(); quickSkirmishText.SetText("Quick Skirmish"); // Change the decoration position RectTransform leftDecorationTransform = (RectTransform)mainMenuScreenGo.FindRecursive("bracket-left").transform; RectTransform rightDecorationTransform = (RectTransform)mainMenuScreenGo.FindRecursive("bracket-right").transform; leftDecorationTransform.anchoredPosition = new Vector2(-190, leftDecorationTransform.anchoredPosition.y); rightDecorationTransform.anchoredPosition = new Vector2(190, rightDecorationTransform.anchoredPosition.y); HBSRadioSet mainMenuRadioSet = mainNavigationActions.GetComponent <HBSRadioSet>(); mainMenuRadioSet.AddButtonToRadioSet(quickSkirmishButtonGo.GetComponent <HBSButton>()); // Set up click event HBSDOTweenToggle quickSkirmishToggleButton = quickSkirmishButtonGo.GetComponent <HBSDOTweenToggle>(); UnityEvent onClickEvent = new UnityEvent(); quickSkirmishToggleButton.OnClicked = onClickEvent; onClickEvent.RemoveAllListeners(); onClickEvent.AddListener(OnQuickSkirmishButtonClicked); // Check if there are any valid last used lances, if not - disable the button CloudUserSettings playerSettings = ActiveOrDefaultSettings.CloudSettings; LastUsedLances lastUsedLances = playerSettings.LastUsedLances; if (lastUsedLances.Count <= 0) { quickSkirmishToggleButton.SetState(ButtonState.Unavailable, true); } }
static void Postfix(SGNavigationList __instance, HBSRadioSet ___radioSet, SGNavigationButton ___argoButton) { if (__instance.navParent != null) { Mod.Log.Info?.Write($"SGNL:Start - adding new button."); SimGameState simulation = UnityGameInstance.BattleTechGame.Simulation; try { // Create the store button Mod.Log.Info?.Write(" - Creating store button"); GameObject storeButtonGO = GameObject.Instantiate(___argoButton.gameObject); storeButtonGO.SetActive(true); storeButtonGO.transform.position = ___argoButton.gameObject.transform.position; storeButtonGO.transform.SetParent(___argoButton.gameObject.transform.parent); storeButtonGO.transform.localScale = Vector3.one; storeButtonGO.transform.SetSiblingIndex(1); storeButton = storeButtonGO.GetComponent <SGNavigationButton>(); Traverse storeButtonT = Traverse.Create(storeButton).Field("id"); storeButtonT.SetValue(DropshipLocation.SHIP); storeButton.SetupElement(__instance, ___radioSet, "Store", LazySingletonBehavior <UIManager> .Instance.UILookAndColorConstants.DropshipRoomCaptainsQuartersIcon, simulation); // Create the staff button Mod.Log.Info?.Write(" - Creating staff button"); GameObject staffButtonGO = GameObject.Instantiate(___argoButton.gameObject); staffButtonGO.SetActive(true); staffButtonGO.transform.position = ___argoButton.gameObject.transform.position; staffButtonGO.transform.SetParent(___argoButton.gameObject.transform.parent); staffButtonGO.transform.localScale = Vector3.one; staffButtonGO.transform.SetSiblingIndex(7); staffButton = staffButtonGO.GetComponent <SGNavigationButton>(); Traverse staffButtonT = Traverse.Create(staffButton).Field("id"); staffButtonT.SetValue(DropshipLocation.CMD_CENTER); staffButton.SetupElement(__instance, ___radioSet, "CMD Staff", LazySingletonBehavior <UIManager> .Instance.UILookAndColorConstants.DropshipRoomCommandCenterIcon, simulation); staffButton.AddFlyoutButton("Darius", DropshipMenuType.Darius); staffButton.AddFlyoutButton("Yang", DropshipMenuType.Yang); staffButton.AddFlyoutButton("Sumire", DropshipMenuType.Sumire); staffButton.AddFlyoutButton("Farah", DropshipMenuType.Farah); if (simulation.GetCharacterStatus(SimGameState.SimGameCharacterType.ALEXANDER)) { staffButton.AddFlyoutButton("Alexander", DropshipMenuType.Alexander); } // Create the memorial button Mod.Log.Info?.Write(" - Creating memorial button"); GameObject memorialButtonGO = GameObject.Instantiate(___argoButton.gameObject); memorialButtonGO.SetActive(true); memorialButtonGO.transform.position = ___argoButton.gameObject.transform.position; memorialButtonGO.transform.SetParent(___argoButton.gameObject.transform.parent); memorialButtonGO.transform.localScale = Vector3.one; memorialButtonGO.transform.SetSiblingIndex(9); memorialButton = memorialButtonGO.GetComponent <SGNavigationButton>(); Traverse memorialButtonT = Traverse.Create(memorialButton).Field("id"); memorialButtonT.SetValue(DropshipLocation.BARRACKS); memorialButton.SetupElement(__instance, ___radioSet, "Memorial", LazySingletonBehavior <UIManager> .Instance.UILookAndColorConstants.DropshipRoomBarracksIcon, simulation); //memorialButton.AddFlyoutButton("Memorial Wall", DropshipMenuType.MemorialWall); } catch (Exception e) { Mod.Log.Info?.Write("Error: " + e.Message); } } }
private static void InitTabs(MechLabPanel mechLabPanel, MechLabInventoryWidget mechLabInventoryWidget) { Control.LogDebug("- Init Tabs"); mechlab = mechLabPanel; widget = mechLabInventoryWidget; icon_cache = new Traverse(mechlab.dataManager).Property <SVGCache>("SVGCache").Value; inv_helper = new InventoryHelper(widget); Control.LogDebug("-- hide old tabs"); inv_helper.tabAllToggleObj.Value.gameObject.SetActive(false); inv_helper.tabEquipmentToggleObj.Value.gameObject.SetActive(false); inv_helper.tabMechPartToggleObj.Value.gameObject.SetActive(false); inv_helper.tabWeaponsToggleObj.Value.gameObject.SetActive(false); var go = inv_helper.tabWeaponsToggleObj.Value.gameObject; tab_radioset = go.transform.parent.GetComponent <HBSRadioSet>(); tab_radioset.ClearRadioButtons(); foreach (var settingsTab in Control.Settings.Tabs) { Control.LogDebug($"--- create tab [{settingsTab.Caption}]"); var tab = GameObject.Instantiate(inv_helper.tabWeaponsToggleObj.Value.gameObject); tab.SetActive(true); tab.transform.position = go.transform.position; tab.transform.SetParent(go.transform.parent); tab.transform.localScale = Vector3.one; var radio = tab.GetComponent <HBSDOTweenToggle>(); radio.OnClicked.RemoveAllListeners(); radio.OnClicked.AddListener(() => TabPressed(settingsTab)); tabs.Add(radio); var text = tab.GetComponentInChildren <TextMeshProUGUI>(true); if (text != null) { text.SetText(settingsTab.Caption); } tab_radioset.RadioButtons.Add(radio); } Control.LogDebug($"-- create small buttons"); go = inv_helper.filterBtnAll.Value; var grid = go.transform.parent.gameObject.GetComponent <GridLayoutGroup>(); grid.spacing = new Vector2(8, 8); ShowChilds(go, ""); inv_helper.filterRadioSet.Value.ClearRadioButtons(); for (int i = 0; i < 14; i++) { Control.LogDebug($"--- Create Button #{i}"); try { GameObject button = GameObject.Instantiate(go); var info = new button_info(); info.go = button; info.go_icon = button.transform.Find("bttn-bal/bg_fill/bttn_icon").gameObject; info.icon = info.go_icon.gameObject.GetComponent <SVGImage>(); info.tooltip = button.GetComponentInChildren <HBSTooltip>(); info.go_text = button.transform.Find("bttn-bal/bg_fill/bttn_text").gameObject; info.text = info.go_text.gameObject.GetComponent <TextMeshProUGUI>(); info.go_tag = button.transform.Find("bttn-bal/bg_fill/numberLabel-optional").gameObject; info.tag = info.go_tag.GetComponentInChildren <TextMeshProUGUI>(); info.toggle = button.GetComponentInChildren <HBSDOTweenToggle>(); button.SetActive(true); button.transform.SetParent(go.transform.parent); button.transform.localScale = Vector3.one; info.toggle.OnClicked.RemoveAllListeners(); var num = i; info.toggle.OnClicked.AddListener(() => FilterPressed(num)); info.go_tag.SetActive(true); info.tag.text = $"# {i}"; buttons.Add(info); inv_helper.filterRadioSet.Value.AddButtonToRadioSet(info.toggle); } catch (Exception e) { Control.LogError(e.Message + " " + e.StackTrace); } } inv_helper.filterRadioSet.Value.defaultButton = buttons.FirstOrDefault()?.toggle; inv_helper.filterRadioSet.Value.Reset(); }