Example #1
0
    /// <summary>
    /// 获取当前总经验
    /// </summary>
    /// <param name="pitemData"></param>
    /// <returns></returns>
    public static int GetCurrentTotalExp(this PItem pitemData)
    {
        int       level = pitemData.GetIntentyLevel();
        EquipType type  = Module_Equip.GetEquipTypeByItem(pitemData);
        var       info  = ConfigManager.Find <IntentifyEquipInfo>(o => o.type == type && o.level == level);

        return(pitemData.GetCurrentLevelExp() + (info == null ? 0 : info.exp));
    }
Example #2
0
    private void SetDataInfo(RectTransform rt, PItem info)
    {
        if (info == null)
        {
            return;
        }
        var level = info.GetIntentyLevel();
        var prop  = ConfigManager.Get <PropItemInfo>(info.itemTypeId);

        if (prop == null)
        {
            return;
        }
        int star = prop.quality;

        Util.SetItemInfo(rt, prop, level, 0, true, star);

        GameObject wear = rt.Find("equiped").gameObject;

        bool wearShow = moduleEquip.currentDressClothes.Exists(a => a.itemId == info.itemId);

        if (moduleEquip.weapon != null && moduleEquip.offWeapon != null)
        {
            if (info.itemId == moduleEquip.weapon.itemId || info.itemId == moduleEquip.offWeapon.itemId)
            {
                wearShow = true;
            }
        }

        wear.gameObject.SetActive(wearShow);

        Text txt = rt.Find("equiped/Text").GetComponent <Text>();

        Util.SetText(txt, ConfigText.GetDefalutString(224, 30));

        Image news = rt.Find("new").GetComponent <Image>();

        news.gameObject.SetActive(moduleCangku.NewsProp(info.itemId));

        Image locks = rt.Find("lock").GetComponent <Image>();

        locks.gameObject.SetActive(info.isLock == 1);

        Image max     = rt.Find("levelmax").GetComponent <Image>();
        bool  maxShow = false;
        var   t       = moduleEquip.GetPeiviewEuipeTypeByItem(info);

        if (t == PreviewEquipType.None || t == PreviewEquipType.Enchant)
        {
            maxShow = true;
        }
        max.gameObject.SetActive(maxShow);
    }
Example #3
0
    public void RefreshPanel(PItem data, EquipType type, Dictionary <PItem, int> currentSelect, List <PItem> items)
    {
        this.data = data;
        equipType = type;

        SetPanelVisible(true);
        InitSelectData(currentSelect, items);
        m_dataSource?.SetItems(items);
        m_dataSource?.UpdateItems();
        m_limitIntentifyInfo = moduleEquip.GetLimitIntenInfo(equipType, data.GetIntentyLevel(), data.HasEvolved());
        RefreshDetail();
    }
    public override void RefreshPanel(PItem item, PItem cache)
    {
        base.RefreshPanel(item, cache);
        if (item.InvalidGrowAttr())
        {
            canClick = true;
            return;
        }

        EquipType type       = Module_Equip.GetEquipTypeByID(item.itemTypeId);
        int       level      = item.GetIntentyLevel();
        int       limitLevel = moduleEquip.GetLimitIntenLevel(type, level, true);

        m_currentLevel.text   = level.ToString();
        m_nextLimitLevel.text = limitLevel.ToString();
        if (!m_t)
        {
            canClick = true;
        }
    }
    private List <PItemAttachAttr> GetAttributePreview(PItem data)
    {
        List <PItemAttachAttr> list = new List <PItemAttachAttr>();

        if (data.GetIntentyLevel() > 0 && !data.InvalidGrowAttr())
        {
            PItemAttachAttr[] attris = data.growAttr.equipAttr.fixedAttrs;
            foreach (var attr in attris)
            {
                list.Add(attr);
            }
        }
        else
        {
            PropItemInfo info = data.GetPropItem();
            if (info && info.attributes != null)
            {
                foreach (var a in info.attributes)
                {
                    PItemAttachAttr attr = PacketObject.Create <PItemAttachAttr>();
                    attr.id    = a.id;
                    attr.value = a.value;
                    list.Add(attr);
                }
            }
        }

        var nowLevel = item.growAttr.equipAttr.level;

        if (nowLevel > 0)
        {
            var             value = moduleForging.Insoul_Info[nowLevel].attribute;
            PItemAttachAttr a     = PacketObject.Create <PItemAttachAttr>();
            a.id    = 18;
            a.value = value;
            list.Add(a);
        }
        return(list);
    }
    private void SetBtnClick()
    {
        foreach (Transform obj in m_btnGroup)
        {
            obj.GetComponent <Button>().interactable = true;
            obj.Find("mark").gameObject.SetActive(false);
            obj.GetComponent <Button>().onClick.RemoveAllListeners();
        }

        m_strengBtn.onClick.AddListener(delegate
        {
            if (m_strengHint.activeInHierarchy)
            {
                var max = moduleEquip.GetLimitIntenLevelByExp(Module_Equip.GetEquipTypeByItem(item), item.GetIntentyLevel(), moduleEquip.GetBagTotalIntentyExp() + item.GetCurrentTotalExp(), item.HasEvolved());
                if (max == null)
                {
                    return;
                }
                if (moduleEquip.IntentyRead.ContainsKey(item.itemId))
                {
                    moduleEquip.IntentyRead[item.itemId] = max.level;
                }
                else
                {
                    moduleEquip.IntentyRead.Add(item.itemId, max.level);
                }
            }

            moduleEquip.operateItem = item;
            ShowAsync <Window_Strength>();
        });
        m_advancedBtn.onClick.AddListener(delegate
        {
            if (m_advancedHint.activeInHierarchy)
            {
                int leftLevel      = item.GetIntentyLevel();
                int nextLimitLevel = moduleEquip.GetLimitIntenLevel(Module_Equip.GetEquipTypeByItem(item), leftLevel, true);
                if (moduleEquip.EvolveRead.ContainsKey(item.itemId))
                {
                    moduleEquip.EvolveRead[item.itemId] = nextLimitLevel;
                }
                else
                {
                    moduleEquip.EvolveRead.Add(item.itemId, nextLimitLevel);
                }
            }

            moduleEquip.operateItem = item;
            ShowAsync <Window_Evolution>();
        });
        m_soulBtn.onClick.AddListener(delegate
        {
            if (m_soulHint.activeInHierarchy)
            {
                var wea = ConfigManager.Get <WeaponAttribute>(item.itemTypeId);
                if (wea != null)
                {
                    var read = moduleEquip.InsoulLevel(wea.elementId, (int)item.growAttr.equipAttr.expr, item.growAttr.equipAttr.level);
                    if (moduleEquip.InsoulRead.ContainsKey(item.itemId))
                    {
                        moduleEquip.InsoulRead[item.itemId] = read;
                    }
                    else
                    {
                        moduleEquip.InsoulRead.Add(item.itemId, read);
                    }
                    //记录为已读状态 存储当前可达到的最高级
                }
            }
            moduleForging.InsoulItem = item.Clone();
            ShowAsync <Window_Merge>();
        });
        m_orderBtn.onClick.AddListener(delegate
        {
            if (m_orderHint.activeInHierarchy)
            {
                var have = moduleEquip.UpLoadRead.Exists(a => a == item.itemId);
                if (!have)
                {
                    moduleEquip.UpLoadRead.Add(item.itemId);
                }
            }
            moduleForging.UpLoadItem = item.Clone();
            ShowAsync <Window_Upload>();
        });
        m_sublimaBtn.onClick.AddListener(delegate
        {
            var currentItem = moduleEquip.GetProp(item.itemId);
            if (moduleFurnace.IsSublimationMax(currentItem))
            {
                moduleGlobal.ShowMessage(249, 20);
                return;
            }
            moduleFurnace.currentSublimationItem = currentItem;
            ShowAsync <Window_Sublimation>();
        });
        m_spiritBtn.onClick.AddListener(delegate
        {
            moduleFurnace.currentSoulItem = moduleEquip.GetProp(item.itemId);
            ShowAsync <Window_Soul>();
        });

        m_btnClearSuit?.onClick.AddListener(delegate
        {
            m_clearSuit.Initialize(moduleEquip.GetProp(item.itemId));
        });

        SetBtnHint();
    }
Example #7
0
    public static void BindItemInfo(RectTransform rt, PItem info)
    {
        if (info == null)
        {
            return;
        }
        var prop = ConfigManager.Get <PropItemInfo>(info.itemTypeId);

        if (prop == null)
        {
            return;
        }

        int  star     = 0;
        int  level    = 0;
        bool wearShow = false;
        bool maxShow  = false;

        RectTransform normal   = rt.Find("0").GetComponent <RectTransform>();
        RectTransform rune     = rt.Find("1").GetComponent <RectTransform>();
        var           ctNormal = normal.Find("numberdi/count").GetComponent <Text>();
        var           ctRune   = rune.Find("numberdi/count").GetComponent <Text>();

        if (prop.itemType == PropType.Rune)
        {
            if (info.growAttr != null)
            {
                level    = info.growAttr.runeAttr.level;
                star     = info.growAttr.runeAttr.star;
                maxShow  = moduleRune.IsMaxLv(info.growAttr.runeAttr.level);
                wearShow = moduleRune.currentEquip.Exists(a => a.itemId == info.itemId);
            }

            Util.SetItemInfo(rune, prop, level, 0, true, star);
            ctRune.gameObject.SetActive(false);
        }
        else if ((prop.attributes != null && prop.attributes.Length > 0) || prop.itemType == PropType.Weapon)
        {
            star  = prop.quality;
            level = info.GetIntentyLevel();

            var t = moduleEquip.GetPeiviewEuipeTypeByItem(info);
            if (t == PreviewEquipType.None || t == PreviewEquipType.Enchant)
            {
                maxShow = true;
            }
            wearShow = moduleEquip.currentDressClothes.Exists(a => a.itemId == info.itemId);
            if (moduleEquip.weapon != null && moduleEquip.offWeapon != null)
            {
                if (info.itemId == moduleEquip.weapon.itemId || info.itemId == moduleEquip.offWeapon.itemId)
                {
                    wearShow = true;
                }
            }

            Util.SetItemInfo(normal, prop, level, 0, true, star);
            ctNormal.gameObject.SetActive(false);
        }
        else
        {
            star = prop.quality;
            Util.SetItemInfo(normal, prop, 0, (int)info.num, false);
            ctNormal.gameObject.SetActive(true);
        }

        var rtChild = normal;

        normal.gameObject.SetActive(true);
        rune.gameObject.SetActive(false);
        if (prop.itemType == PropType.Rune)
        {
            rtChild = rune;
            rune.gameObject.SetActive(true);
            normal.gameObject.SetActive(false);
        }

        var wear = rtChild.Find("get");      //是否佩戴
        var hint = rtChild.Find("mark");     //是否可合成
        var mews = rtChild.Find("new");
        var max  = rtChild.Find("levelmax"); //最高级

        Image locks = rtChild.Find("lock").GetComponent <Image>();

        locks.gameObject.SetActive(info.isLock == 1);
        wear.SafeSetActive(wearShow);

        var equipText = rtChild.Find("get/Text")?.GetComponent <Text>();

        if (equipText)
        {
            equipText.color = moduleRune.GetCurQualityColor(GeneralConfigInfo.defaultConfig.qualitys, star);
        }
        Util.SetText(equipText, (int)TextForMatType.RuneUIText, 48);
        max.SafeSetActive(maxShow);
        mews.SafeSetActive(false);
        hint.SafeSetActive(false);
        ctNormal.color = GeneralConfigInfo.defaultConfig.WareHouse;
        if ((WareType)prop.lableType == WareType.Debris)
        {
            Compound compose = ConfigManager.Get <Compound>(prop.compose);//合成/分解信息
            if (compose == null)
            {
                return;
            }
            var fenmu = compose.sourceNum;
            var fenzi = info.num;
            var str   = fenzi.ToString() + "/" + fenmu.ToString();
            Util.SetText(ctNormal, str);
            if (fenzi < fenmu)
            {
                Util.SetText(ctNormal, GeneralConfigInfo.GetNoEnoughColorString(str));
            }
        }
        if (!m_decomBtn.isOn)
        {
            moduleCangku.GetCanCompse();
            var cPos = moduleCangku.AllCompse.Find(a => a.itemId == info.itemId);
            hint.SafeSetActive(cPos != null);
            var isNew = moduleCangku.newProp.Find(a => a.itemId == info.itemId);
            mews.SafeSetActive(isNew != null);
            var bt = rtChild.gameObject.GetComponentDefault <Button>();
            bt.onClick.RemoveAllListeners();
            bt.onClick.AddListener(delegate
            {
                SetItemClick(bt, info);
            });
        }
    }