Exemplo n.º 1
0
        static bool TrainerPanel_OnSkillSlotSelected_Pre(TrainerPanel __instance, SkillTreeSlotDisplay _display)
        {
            // Cache
            SkillSlot          slot            = _display.FocusedSkillSlot;
            SkillSchool        tree            = __instance.m_trainerTree;
            Image              currencyIcon    = __instance.m_imgRemainingCurrency;
            Text               currencyLeft    = __instance.m_remainingSilver;
            Image              currencyReqIcon = __instance.m_requirementDisplay.m_imgSilverIcon;
            CharacterInventory inventory       = __instance.LocalCharacter.Inventory;

            // Defaults
            tree.AlternateCurrecy                    = -1;
            tree.AlternateCurrencyIcon               = null;
            currencyIcon.overrideSprite              = null;
            currencyIcon.rectTransform.pivot         = 0.5f.ToVector2();
            currencyIcon.rectTransform.localScale    = 1f.ToVector2();
            currencyReqIcon.rectTransform.pivot      = 0.5f.ToVector2();
            currencyReqIcon.rectTransform.localScale = 1f.ToVector2();
            currencyLeft.text = inventory.ContainedSilver.ToString();

            // Price
            if (_formulaToggle)
            {
                slot.m_requiredMoney = GetPrice(__instance.LocalCharacter, slot);
            }

            // Currency
            if (_learnMutuallyExclusiveSkills && HasMutuallyExclusiveSkill(__instance.LocalCharacter, slot))
            {
                if (_exclusiveSkillCostsTsar)
                {
                    tree.AlternateCurrecy                    = SkillPrices._exclusiveSkillRequirement.ItemID;
                    tree.AlternateCurrencyIcon               = _exclusiveSkillRequirement.Icon;
                    currencyIcon.overrideSprite              = _exclusiveSkillRequirement.Icon;
                    currencyIcon.rectTransform.pivot         = ALTERNATE_CURRENCY_ICON_PIVOT;
                    currencyIcon.rectTransform.localScale    = ALTERNATE_CURRENCY_ICON_SCALE;
                    currencyReqIcon.rectTransform.pivot      = ALTERNATE_CURRENCY_ICON_PIVOT;
                    currencyReqIcon.rectTransform.localScale = ALTERNATE_CURRENCY_ICON_SCALE;
                    currencyLeft.text    = inventory.ItemCount(_exclusiveSkillRequirement.ItemID).ToString();
                    slot.m_requiredMoney = _exclusiveSkillRequirement.Amount;
                }
                else
                {
                    slot.m_requiredMoney = (slot.m_requiredMoney * _exclusiveSkillCostMultiplier / 100f).Round();
                }
            }

            return(true);
        }
Exemplo n.º 2
0
        public static bool Prefix(SkillTreeSlotDisplay __instance, SkillTreeSlotDisplay _slotToLink)
        {
            RectTransform rectTransform = At.GetValue(typeof(SkillTreeSlotDisplay), __instance, "m_link") as RectTransform;
            bool          flag          = rectTransform != null;

            if (flag)
            {
                rectTransform.gameObject.SetActive(true);
                Rect rect = rectTransform.rect;
                rect.height             = Vector2.Distance(_slotToLink.RectTransform.anchoredPosition, __instance.RectTransform.anchoredPosition);
                rectTransform.sizeDelta = rect.size;
                Vector2 vector = _slotToLink.RectTransform.anchoredPosition - __instance.RectTransform.anchoredPosition;
                float   num    = Mathf.Atan2(vector.y, vector.x) * 57.29578f;
                rectTransform.rotation = Quaternion.Euler(0f, 0f, num - 90f);
            }
            return(false);
        }