public override void SetActive(bool active)
        {
            if (!active)
            {
                Recipes.Clear();
                if (EpicLoot.HasAuga)
                {
                    EffectSelectors.Clear();
                }
                else
                {
                    foreach (var toggle in EffectSelectors)
                    {
                        toggle.gameObject.SetActive(false);
                    }
                }
            }

            if (EpicLoot.HasAuga)
            {
                if (active)
                {
                    var augmentsAvailableText = Auga.API.CustomVariantPanel_Enable("$mod_epicloot_augment_availableeffects", (showing) =>
                    {
                        if (showing)
                        {
                            ShowAvailableAugmentsDialog();
                        }
                    });

                    AvailableAugmentsDialog = augmentsAvailableText.gameObject.GetComponent <AugmentsAvailableDialog>();
                    if (AvailableAugmentsDialog == null)
                    {
                        AvailableAugmentsDialog = augmentsAvailableText.gameObject.AddComponent <AugmentsAvailableDialog>();
                    }
                    AvailableAugmentsDialog.Description = augmentsAvailableText;
                }
                else
                {
                    Auga.API.CustomVariantPanel_Disable();
                }
            }
            else
            {
                AvailableAugmentsButton.gameObject.SetActive(active);
                if (AvailableAugmentsDialog.gameObject.activeSelf && !active)
                {
                    AvailableAugmentsDialog.OnClose();
                }
                if (ChoiceDialog.gameObject.activeSelf && !active)
                {
                    ChoiceDialog.OnClose();
                }
            }

            base.SetActive(active);
        }
Example #2
0
        public override void TryInitialize(InventoryGui inventoryGui, int tabIndex, Action <TabController> onTabPressed)
        {
            base.TryInitialize(inventoryGui, tabIndex, onTabPressed);

            if (ChoiceDialog == null)
            {
                ChoiceDialog = CreateDialog <AugmentChoiceDialog>(inventoryGui, "AugmentChoiceDialog");

                var background = ChoiceDialog.gameObject.transform.Find("Frame").gameObject.RectTransform();
                ChoiceDialog.MagicBG        = Object.Instantiate(inventoryGui.m_recipeIcon, background);
                ChoiceDialog.MagicBG.name   = "MagicItemBG";
                ChoiceDialog.MagicBG.sprite = EpicLoot.GetMagicItemBgSprite();
                ChoiceDialog.MagicBG.color  = Color.white;

                ChoiceDialog.NameText    = Object.Instantiate(inventoryGui.m_recipeName, background);
                ChoiceDialog.Description = Object.Instantiate(inventoryGui.m_recipeDecription, background);
                ChoiceDialog.Description.rectTransform.anchoredPosition += new Vector2(0, -47);
                ChoiceDialog.Description.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 340);
                ChoiceDialog.Icon = Object.Instantiate(inventoryGui.m_recipeIcon, background);

                var closeButton = ChoiceDialog.gameObject.GetComponentInChildren <Button>();
                Object.Destroy(closeButton.gameObject);

                for (int i = 0; i < 3; i++)
                {
                    var button = Object.Instantiate(inventoryGui.m_craftButton, background);
                    var rt     = button.gameObject.RectTransform();
                    rt.anchoredPosition = new Vector2(0, -155 - (i * 45));
                    rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 40);
                    ChoiceDialog.EffectChoiceButtons.Add(button);
                }
            }

            if (AvailableAugmentsDialog == null)
            {
                AvailableAugmentsDialog = CreateDialog <AugmentsAvailableDialog>(inventoryGui, "AvailableAugmentsDialog");

                var background = AvailableAugmentsDialog.gameObject.transform.Find("Frame").gameObject.RectTransform();
                AvailableAugmentsDialog.MagicBG        = Object.Instantiate(inventoryGui.m_recipeIcon, background);
                AvailableAugmentsDialog.MagicBG.name   = "MagicItemBG";
                AvailableAugmentsDialog.MagicBG.sprite = EpicLoot.GetMagicItemBgSprite();
                AvailableAugmentsDialog.MagicBG.color  = Color.white;

                AvailableAugmentsDialog.NameText    = Object.Instantiate(inventoryGui.m_recipeName, background);
                AvailableAugmentsDialog.Description = Object.Instantiate(inventoryGui.m_recipeDecription, background);
                AvailableAugmentsDialog.Description.rectTransform.anchoredPosition += new Vector2(0, -110);
                AvailableAugmentsDialog.Description.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 460);
                AvailableAugmentsDialog.Description.resizeTextForBestFit = true;
                AvailableAugmentsDialog.Icon = Object.Instantiate(inventoryGui.m_recipeIcon, background);

                var closeButton = AvailableAugmentsDialog.gameObject.GetComponentInChildren <Button>();
                closeButton.onClick = new Button.ButtonClickedEvent();
                closeButton.onClick.AddListener(AvailableAugmentsDialog.OnClose);
                closeButton.transform.SetAsLastSibling();
            }

            if (AvailableAugmentsButton == null)
            {
                AvailableAugmentsButton = Object.Instantiate(inventoryGui.m_variantButton, inventoryGui.m_variantButton.transform.parent, true);
                AvailableAugmentsButton.gameObject.name = "AvailableAugmentsButton";
                AvailableAugmentsButton.gameObject.SetActive(false);
                AvailableAugmentsButton.onClick = new Button.ButtonClickedEvent();
                AvailableAugmentsButton.onClick.AddListener(ShowAvailableAugmentsDialog);

                var text = AvailableAugmentsButton.GetComponentInChildren <Text>();
                text.text = "Available Effects";

                var rt = AvailableAugmentsButton.gameObject.RectTransform();
                rt.anchoredPosition += new Vector2(50, 0);
                rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 150);
            }
        }
        public override void TryInitialize(InventoryGui inventoryGui, int tabIndex, Action <TabController> onTabPressed)
        {
            base.TryInitialize(inventoryGui, tabIndex, onTabPressed);

            if (ChoiceDialog == null)
            {
                if (EpicLoot.HasAuga)
                {
                    var resultDialog = Auga.API.Workbench_CreateNewResultsPanel();
                    resultDialog.SetActive(false);

                    ChoiceDialog = resultDialog.AddComponent <AugmentChoiceDialog>();

                    var icon = ChoiceDialog.transform.Find("InventoryElement/icon").GetComponent <Image>();
                    ChoiceDialog.MagicBG        = Object.Instantiate(icon, icon.transform.parent);
                    ChoiceDialog.MagicBG.name   = "MagicItemBG";
                    ChoiceDialog.MagicBG.sprite = EpicLoot.GetMagicItemBgSprite();
                    ChoiceDialog.MagicBG.color  = Color.white;
                    ChoiceDialog.MagicBG.rectTransform.anchorMin        = new Vector2(0, 0);
                    ChoiceDialog.MagicBG.rectTransform.anchorMax        = new Vector2(1, 1);
                    ChoiceDialog.MagicBG.rectTransform.sizeDelta        = new Vector2(0, 0);
                    ChoiceDialog.MagicBG.rectTransform.anchoredPosition = new Vector2(0, 0);

                    ChoiceDialog.NameText = ChoiceDialog.transform.Find("Topic").GetComponent <Text>();

                    var closeButton = ChoiceDialog.gameObject.GetComponentInChildren <Button>();
                    Object.Destroy(closeButton.gameObject);

                    var tooltip = (RectTransform)ChoiceDialog.transform.Find("TooltipScrollContainer");
                    tooltip.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 360);
                    var scrollbar = (RectTransform)ChoiceDialog.transform.Find("ScrollBar");
                    scrollbar.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 360);

                    for (var i = 0; i < 3; i++)
                    {
                        var button = Auga.API.MediumButton_Create(resultDialog.transform, $"AugmentButton{i}", string.Empty);
                        Auga.API.Button_SetTextColors(button, Color.white, Color.white, Color.white, Color.white, Color.white, Color.white);
                        button.navigation = new Navigation {
                            mode = Navigation.Mode.None
                        };
                        var rt = (RectTransform)button.transform;
                        rt.anchoredPosition = new Vector2(0, -220 - (i * 40));
                        rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 295);
                        ChoiceDialog.EffectChoiceButtons.Add(button);
                    }
                }
                else
                {
                    ChoiceDialog = CreateDialog <AugmentChoiceDialog>(inventoryGui, "AugmentChoiceDialog");

                    var background = ChoiceDialog.gameObject.transform.Find("Frame").gameObject.RectTransform();
                    ChoiceDialog.MagicBG        = Object.Instantiate(inventoryGui.m_recipeIcon, background);
                    ChoiceDialog.MagicBG.name   = "MagicItemBG";
                    ChoiceDialog.MagicBG.sprite = EpicLoot.GetMagicItemBgSprite();
                    ChoiceDialog.MagicBG.color  = Color.white;

                    ChoiceDialog.NameText    = Object.Instantiate(inventoryGui.m_recipeName, background);
                    ChoiceDialog.Description = Object.Instantiate(inventoryGui.m_recipeDecription, background);
                    ChoiceDialog.Description.rectTransform.anchoredPosition += new Vector2(0, -47);
                    ChoiceDialog.Description.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 340);
                    ChoiceDialog.Icon = Object.Instantiate(inventoryGui.m_recipeIcon, background);

                    var closeButton = ChoiceDialog.gameObject.GetComponentInChildren <Button>();
                    Object.Destroy(closeButton.gameObject);

                    for (var i = 0; i < 3; i++)
                    {
                        var button = Object.Instantiate(inventoryGui.m_craftButton, background);
                        var rt     = button.gameObject.RectTransform();
                        rt.anchoredPosition = new Vector2(0, -155 - (i * 45));
                        rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 40);
                        ChoiceDialog.EffectChoiceButtons.Add(button);
                    }
                }
            }

            if (!EpicLoot.HasAuga)
            {
                if (AvailableAugmentsDialog == null)
                {
                    AvailableAugmentsDialog = CreateDialog <AugmentsAvailableDialog>(inventoryGui, "AvailableAugmentsDialog");

                    var background = AvailableAugmentsDialog.gameObject.transform.Find("Frame").gameObject.RectTransform();
                    AvailableAugmentsDialog.MagicBG        = Object.Instantiate(inventoryGui.m_recipeIcon, background);
                    AvailableAugmentsDialog.MagicBG.name   = "MagicItemBG";
                    AvailableAugmentsDialog.MagicBG.sprite = EpicLoot.GetMagicItemBgSprite();
                    AvailableAugmentsDialog.MagicBG.color  = Color.white;

                    AvailableAugmentsDialog.NameText    = Object.Instantiate(inventoryGui.m_recipeName, background);
                    AvailableAugmentsDialog.Description = Object.Instantiate(inventoryGui.m_recipeDecription, background);
                    AvailableAugmentsDialog.Description.rectTransform.anchoredPosition += new Vector2(0, -110);
                    AvailableAugmentsDialog.Description.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 460);
                    AvailableAugmentsDialog.Description.resizeTextForBestFit = true;
                    AvailableAugmentsDialog.Icon = Object.Instantiate(inventoryGui.m_recipeIcon, background);

                    var closeButton = AvailableAugmentsDialog.gameObject.GetComponentInChildren <Button>();
                    closeButton.onClick = new Button.ButtonClickedEvent();
                    closeButton.onClick.AddListener(AvailableAugmentsDialog.OnClose);
                    closeButton.transform.SetAsLastSibling();
                }

                if (AvailableAugmentsButton == null)
                {
                    AvailableAugmentsButton = Object.Instantiate(inventoryGui.m_variantButton, inventoryGui.m_variantButton.transform.parent, true);
                    AvailableAugmentsButton.gameObject.name = "AvailableAugmentsButton";
                    AvailableAugmentsButton.gameObject.SetActive(false);
                    AvailableAugmentsButton.onClick = new Button.ButtonClickedEvent();
                    AvailableAugmentsButton.onClick.AddListener(ShowAvailableAugmentsDialog);

                    var text = AvailableAugmentsButton.GetComponentInChildren <Text>();
                    text.text = Localization.instance.Localize("$mod_epicloot_augment_availableeffects");

                    var rt = AvailableAugmentsButton.gameObject.RectTransform();
                    rt.anchoredPosition += new Vector2(50, 0);
                    rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 150);
                }
            }
        }