Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
 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);
     }
 }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
            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();
        }