Example #1
0
    public bool JudgeEquipPosCanInlay(GameCmd.EquipPos pos, EquipManager.EquipGridIndexType index, GameCmd.GemType gemType)
    {
        uint inlayBaseId = 0;
        int  matchNum    = 0;

        if (!emgr.IsUnlockEquipGridIndex(index))
        {
            return(false);
        }
        else if (emgr.TryGetEquipGridInlayGem(pos, index, out inlayBaseId))
        {
            Gem InlayItem = DataManager.Manager <ItemManager>().GetTempBaseItemByBaseID <Gem>(inlayBaseId, ItemDefine.ItemDataType.Gem);
            //镶嵌的宝石小与背包的宝石?
            StructGemInlayDatas(pos);
            GemInlayUpdateData updateData = GetGemInlayUpdateData(gemType);
            if (null != updateData)
            {
                updateData.HaveGemCanInlay = false;
                uint canInlayBaseId = 0;
                if (null != updateData && updateData.TryGetCanInlayGem(out canInlayBaseId))
                {
                    Gem canInlayItem = DataManager.Manager <ItemManager>().GetTempBaseItemByBaseID <Gem>(canInlayBaseId, ItemDefine.ItemDataType.Gem);
                    if (InlayItem != null && canInlayItem != null)
                    {
                        bool higher = canInlayItem.FightPowerNum > InlayItem.FightPowerNum;
                        if (higher)
                        {
                            matchNum++;
                            updateData.HaveGemCanInlay = true;
                        }
                    }
                }
            }
        }
        else
        {
            StructGemInlayDatas(pos);
            GemInlayUpdateData updateData = GetGemInlayUpdateData(gemType);
            if (null != updateData)
            {
                updateData.HaveGemCanInlay = false;
                uint canInlayBaseId = 0;
                if (null != updateData && updateData.TryGetCanInlayGem(out canInlayBaseId))
                {
                    matchNum++;
                    updateData.HaveGemCanInlay = true;
                }
            }
        }
        return(matchNum > 0);
    }
Example #2
0
    /// <summary>
    /// 刷新格子数据
    /// </summary>
    public void UpdateGridData(GameCmd.EquipPos selectPos)
    {
        Reset();
        EquipManager emgr        = DataManager.Manager <EquipManager>();
        uint         inlayBaseId = 0;

        if (emgr.TryGetEquipGridInlayGem(selectPos, data, out inlayBaseId))
        {
            Gem gem = DataManager.Manager <ItemManager>()
                      .GetTempBaseItemByBaseID <Gem>(inlayBaseId, ItemDefine.ItemDataType.Gem);
            if (null != m_spIcon)
            {
                if (!m_spIcon.gameObject.activeSelf)
                {
                    m_spIcon.gameObject.SetActive(true);
                }
                UIManager.GetTextureAsyn(gem.Icon, ref m_inlayCASD, () =>
                {
                    if (null != m_spIcon)
                    {
                        m_spIcon.mainTexture = null;
                    }
                }, m_spIcon);
            }

            if (null != m_spBorder)
            {
                if (!m_spBorder.gameObject.activeSelf)
                {
                    m_spBorder.gameObject.SetActive(true);
                }
                string iconName = UIManager.GetIconName(gem.BorderIcon, true);
                UIManager.GetAtlasAsyn(iconName, ref m_borderCASD, () =>
                {
                    if (null != m_spBorder)
                    {
                        m_spBorder.atlas = null;
                    }
                }, m_spBorder);
            }

            if (null != m_labLv)
            {
                if (!m_labLv.enabled)
                {
                    m_labLv.enabled = true;
                }
                m_labLv.text = DataManager.Manager <TextManager>().GetLocalFormatText(LocalTextType.Local_Txt_Set_4, gem.BaseData.grade);
            }
        }
        else if (emgr.IsUnlockEquipGridIndex(data))
        {
            if (null != m_tsAdd)
            {
                m_tsAdd.gameObject.SetActive(true);
            }
        }
        else
        {
            if (null != m_tsLock)
            {
                m_tsLock.gameObject.SetActive(true);
                m_labLockLv.text = DataManager.Manager <TextManager>().GetLocalFormatText(LocalTextType.Local_Txt_Set_4
                                                                                          , emgr.GetEquipGridUnlockLevel(data));
            }
        }
        bool showRed = DataManager.Manager <ForgingManager>().EquipPosCanInlay(selectPos, this.data);

        SetRedPointStatus(showRed);
    }