//TODO: use a transpiler instead
        static void Postfix(RoR2.UI.ItemIcon __instance, RoR2.ItemIndex newItemIndex, int newItemCount)
        {
            var itemDef = ItemCatalog.GetItemDef(newItemIndex);

            if (__instance.tooltipProvider != null && itemDef != null)
            {
                var itemDescription = Language.GetString(itemDef.descriptionToken);
                itemDescription += "\n\n" + ItemStatProvider.ProvideStatsForItem(newItemIndex, newItemCount);

                __instance.tooltipProvider.overrideBodyText = itemDescription;
            }
        }
Esempio n. 2
0
        private void ItemIcon_SetItemIndex(On.RoR2.UI.ItemIcon.orig_SetItemIndex orig, RoR2.UI.ItemIcon self, ItemIndex newItemIndex, int newItemCount)
        {
            orig(self, newItemIndex, newItemCount);

            if (newItemIndex == itemDef.itemIndex)
            {
                Transform parent = self.transform.parent;
                if (parent)
                {
                    RoR2.UI.ItemInventoryDisplay itemInventoryDisplay = parent.GetComponent <RoR2.UI.ItemInventoryDisplay>();
                    if (itemInventoryDisplay && itemInventoryDisplay.inventory)
                    {
                        MysticsItemsManuscript manuscript = itemInventoryDisplay.inventory.GetComponent <MysticsItemsManuscript>();
                        if (manuscript)
                        {
                            globalStringBuilder.Clear();
                            globalStringBuilder.Append(Language.GetString(self.tooltipProvider.bodyToken) + "\r\n");
                            globalStringBuilder.Append("\r\n");
                            globalStringBuilder.Append(Language.GetString("MYSTICSITEMS_STATCHANGE_LIST_HEADER"));
                            foreach (var buffType in manuscript.buffOrder)
                            {
                                globalStringBuilder.Append("\r\n");
                                globalStringBuilder.Append(
                                    Language.GetStringFormatted(
                                        "MYSTICSITEMS_STATCHANGE_LIST_" + buffType.ToString().ToUpperInvariant(),
                                        "+" + (manuscript.buffStacks[buffType] * statBonus).ToString(System.Globalization.CultureInfo.InvariantCulture)
                                        )
                                    );
                            }
                            globalStringBuilder.Append(tooltipString);
                            self.tooltipProvider.overrideBodyText = globalStringBuilder.ToString();
                            globalStringBuilder.Clear();
                        }
                    }
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(self.tooltipProvider.overrideBodyText) && self.tooltipProvider.overrideBodyText.Contains(tooltipString))
                {
                    self.tooltipProvider.overrideBodyText = "";
                }
            }
        }
Esempio n. 3
0
        private void ItemIcon_SetItemIndex(On.RoR2.UI.ItemIcon.orig_SetItemIndex orig, RoR2.UI.ItemIcon self, ItemIndex newItemIndex, int newItemCount)
        {
            orig(self, newItemIndex, newItemCount);

            if (newItemIndex == itemDef.itemIndex)
            {
                Transform parent = self.transform.parent;
                if (parent)
                {
                    RoR2.UI.ItemInventoryDisplay itemInventoryDisplay = parent.GetComponent <RoR2.UI.ItemInventoryDisplay>();
                    if (itemInventoryDisplay && itemInventoryDisplay.inventory)
                    {
                        MysticsItemsMysticSwordBehaviour swordBehaviour = itemInventoryDisplay.inventory.GetComponent <MysticsItemsMysticSwordBehaviour>();
                        if (swordBehaviour)
                        {
                            globalStringBuilder.Clear();
                            globalStringBuilder.Append(Language.GetString(self.tooltipProvider.bodyToken) + "\r\n");
                            globalStringBuilder.Append("\r\n");
                            globalStringBuilder.Append(Language.GetString("MYSTICSITEMS_STATCHANGE_LIST_HEADER"));
                            globalStringBuilder.Append("\r\n");
                            globalStringBuilder.Append(
                                Language.GetStringFormatted(
                                    "MYSTICSITEMS_STATCHANGE_LIST_DAMAGE",
                                    "+" + (Mathf.RoundToInt(swordBehaviour.damageBonus * 100f)).ToString(System.Globalization.CultureInfo.InvariantCulture)
                                    )
                                );
                            globalStringBuilder.Append(tooltipString);
                            self.tooltipProvider.overrideBodyText = globalStringBuilder.ToString();
                            globalStringBuilder.Clear();
                        }
                    }
                }
            }
            else
            {
                if (!string.IsNullOrEmpty(self.tooltipProvider.overrideBodyText) && self.tooltipProvider.overrideBodyText.Contains(tooltipString))
                {
                    self.tooltipProvider.overrideBodyText = "";
                }
            }
        }
Esempio n. 4
0
 private void ItemIcon_Awake(On.RoR2.UI.ItemIcon.orig_Awake orig, RoR2.UI.ItemIcon self)
 {
     orig(self);
     self.gameObject.AddComponent <YeetButton>();
 }