Example #1
0
    public bool HaveEquipCanInlayByEquipPartMode(EquipPartMode mode)
    {
        uint key = (uint)mode;
        List <GameCmd.EquipPos> lst = StructEquipPartInlayData()[key];

        for (int j = 0; j < lst.Count; j++)
        {
            if (null == mlstCanInlayGemType)
            {
                mlstCanInlayGemType = new List <GameCmd.GemType>();
            }
            mlstCanInlayGemType.Clear();
            mlstCanInlayGemType.AddRange(emgr.GeCanInlaytGemTypeByPos(lst[j]));
            for (EquipManager.EquipGridIndexType i = EquipManager.EquipGridIndexType.First; i < EquipManager.EquipGridIndexType.Max; i++)
            {
                for (int x = 0; x < mlstCanInlayGemType.Count; x++)
                {
                    if (JudgeEquipPosCanInlay(lst[j], i, mlstCanInlayGemType[x]))
                    {
                        return(true);
                    }
                }
            }
        }
        return(false);
    }
Example #2
0
    /// <summary>
    /// 构建装备部位镶嵌数据
    /// </summary>
    private void StructEquipPartInlayData()
    {
        if (null == m_dicInlayParts)
        {
            m_dicInlayParts = new Dictionary <EquipPartMode, List <GameCmd.EquipPos> >();
            EquipPartMode           em      = EquipPartMode.AttackPart;
            List <GameCmd.EquipPos> epsList = null;
            for (GameCmd.EquipPos i = GameCmd.EquipPos.EquipPos_Hat; i < GameCmd.EquipPos.EquipPos_Max; i++)
            {
                em = DataManager.Manager <ForgingManager>().GetEquipModeByEquipPos(i);
                if (em == EquipPartMode.None)
                {
                    continue;
                }

                if (!m_dicInlayParts.TryGetValue(em, out epsList))
                {
                    epsList = new List <GameCmd.EquipPos>();
                    m_dicInlayParts.Add(em, epsList);
                }

                if (!epsList.Contains(i))
                {
                    epsList.Add(i);
                }
            }
        }
    }
Example #3
0
    private void InitEquipPosWidgets()
    {
        if (null == m_dic_EquipPartDic)
        {
            m_dic_EquipPartDic = new Dictionary <EquipPartMode, UITabGrid>();
        }
        m_dic_EquipPartDic.Clear();

        StructEquipPartInlayData();

        //生成装备部位
        if (null != m_ctor_InlayScrollView && null != m_trans_UIEquipPosStatusGrid)
        {
            m_ctor_InlayScrollView.RefreshCheck();
            m_ctor_InlayScrollView.Initialize <UIEquipPosStatusGrid>(m_trans_UIEquipPosStatusGrid.gameObject
                                                                     , OnUpdateInlayGrid, OnInlayGridUIEventDlg);
        }

        //列表
        if (null == m_dic_EquipPartDic)
        {
            m_dic_EquipPartDic = new Dictionary <EquipPartMode, UITabGrid>();
        }
        m_dic_EquipPartDic.Clear();
        if (null == m_trans_PartTab)
        {
            Engine.Utility.Log.Error("ForgingPanel->InitForgingWidgets failed Transform ListTab null");
        }
        else
        {
            UITabGrid tabGrid = null;
            Transform ts      = null;
            for (EquipPartMode i = EquipPartMode.AttackPart; i < EquipPartMode.Max; i++)
            {
                ts = m_trans_PartTab.Find(i.ToString() + "Tab");
                if (null == ts)
                {
                    continue;
                }
                tabGrid = ts.GetComponent <UITabGrid>();
                if (null == tabGrid)
                {
                    tabGrid = ts.gameObject.AddComponent <UITabGrid>();
                }
                tabGrid.SetGridData(i);
                tabGrid.RegisterUIEventDelegate(OnUIEventCallback);
                tabGrid.SetName(GetEquipPartModeName(i));
                tabGrid.SetHightLight(false);
                m_dic_EquipPartDic.Add(i, tabGrid);
            }
        }
        RefreshAllTab();
    }
Example #4
0
    public bool HaveEquipCanInlayByIndex()
    {
        int count = 0;

        for (EquipPartMode i = EquipPartMode.AttackPart; i < EquipPartMode.Max; i++)
        {
            if (HaveEquipCanInlayByEquipPartMode(i))
            {
                count++;
            }
        }
        return(count > 0);
    }
Example #5
0
    /// <summary>
    /// 根据分类判断是不是可以强化
    /// </summary>
    /// <param name="mode">攻击 VS 防御 </param>
    /// <returns></returns>
    public bool HaveEquipCanStrengthenByEquipPartMode(EquipPartMode mode)
    {
        uint key = (uint)mode;
        List <GameCmd.EquipPos> lst = StructEquipPartInlayData()[key];

        for (int j = 0; j < lst.Count; j++)
        {
            if (JudgeEquipPosCanStrengthen(lst[j]))
            {
                return(true);
            }
        }
        return(false);
    }
Example #6
0
    /// <summary>
    /// 是不是可以强化
    /// </summary>
    /// <returns></returns>
    public bool HaveEquipCanStrengthen()
    {
        //用来记录有几个页签满足强化条件
        int count = 0;

        for (EquipPartMode i = EquipPartMode.AttackPart; i < EquipPartMode.Max; i++)
        {
            if (HaveEquipCanStrengthenByEquipPartMode(i))
            {
                count++;
            }
        }
        return(count > 0);
    }
Example #7
0
    void RefreshTabRedPoint(EquipPartMode mode, UITabGrid tab)
    {
        bool value = false;

        if (IsPanelMode(ForgingPanelMode.Strengthen))
        {
            value = DataManager.Manager <ForgingManager>().HaveEquipCanStrengthenByEquipPartMode(mode);
        }
        else if (IsPanelMode(ForgingPanelMode.Inlay))
        {
            value = DataManager.Manager <ForgingManager>().HaveEquipCanInlayByEquipPartMode(mode);
        }
        tab.SetRedPointStatus(value);
    }
Example #8
0
    /// <summary>
    /// 获取装备部位分类的名称
    /// </summary>
    /// <param name="mode"></param>
    /// <returns></returns>
    private string GetEquipPartModeName(EquipPartMode mode)
    {
        LocalTextType key = LocalTextType.LocalText_None;

        switch (mode)
        {
        case EquipPartMode.AttackPart:
            key = LocalTextType.Local_TXT_Attack;
            break;

        case EquipPartMode.DefendPart:
            key = LocalTextType.Local_TXT_Defend;
            break;
        }
        return(DataManager.Manager <TextManager>().GetLocalText(key));
    }
Example #9
0
    /// <summary>
    /// 设置选中装备部位
    /// </summary>
    /// <param name="ep"></param>
    /// <param name="force"></param>
    private void SetSelectPart(GameCmd.EquipPos ep, bool force = false, bool needFocus = false)
    {
        if (null == m_ctor_InlayScrollView || null == m_dicInlayParts || (ep == m_emSelectInlayPos && !force))
        {
            return;
        }
        List <GameCmd.EquipPos> eps = null;
        //刷新数据
        UIEquipPosStatusGrid grid = null;
        EquipPartMode        epm  = DataManager.Manager <ForgingManager>().GetEquipModeByEquipPos(m_emSelectInlayPos);

        if (m_dicInlayParts.TryGetValue(epm, out eps) && eps.Contains(m_emSelectInlayPos))
        {
            grid = m_ctor_InlayScrollView.GetGrid <UIEquipPosStatusGrid>(eps.IndexOf(m_emSelectInlayPos));
            if (null != grid)
            {
                grid.SetHightLight(false);
            }
        }
        epm = DataManager.Manager <ForgingManager>().GetEquipModeByEquipPos(ep);
        if (m_dicInlayParts.TryGetValue(epm, out eps) && eps.Contains(ep))
        {
            grid = m_ctor_InlayScrollView.GetGrid <UIEquipPosStatusGrid>(eps.IndexOf(ep));
            if (null != grid)
            {
                grid.SetHightLight(true);
            }
        }
        m_emSelectInlayPos = ep;
        if (needFocus && m_dicInlayParts.TryGetValue(epm, out eps))
        {
            m_ctor_InlayScrollView.FocusGrid(eps.IndexOf(ep));
        }
        if (IsPanelMode(ForgingPanelMode.Inlay))
        {
            //更新镶嵌数据
            UpdateInlayInfo();
            //构建宝石列表
            BuildGemList();
        }
        else if (IsPanelMode(ForgingPanelMode.Strengthen))
        {
            UpdateStrengthen();
        }

        RefreshBtnState();
    }
Example #10
0
    /// <summary>
    /// 设置当前部位模式
    /// </summary>
    /// <param name="mode"></param>
    /// <param name="force"></param>
    private void SetSelectEquipPartMode(EquipPartMode mode, bool force = false, bool defaultSelectData = true)
    {
        if (m_emEquipPartMode == mode && !force)
        {
            return;
        }
        UITabGrid tabGrid = null;

        if (null != m_dic_EquipPartDic && m_dic_EquipPartDic.TryGetValue(m_emEquipPartMode, out tabGrid))
        {
            tabGrid.SetHightLight(false);
        }

        if (null != m_dic_EquipPartDic && m_dic_EquipPartDic.TryGetValue(mode, out tabGrid))
        {
            tabGrid.SetHightLight(true);
        }
        m_emEquipPartMode = mode;
        BuildEquipPartList(defaultSelectData);
    }
Example #11
0
    public EquipPartMode GetEquipModeByEquipPos(GameCmd.EquipPos ep)
    {
        EquipPartMode em = EquipPartMode.None;

        //圣魂、官印、披风无法镶嵌
        if (ep == GameCmd.EquipPos.EquipPos_SoulOne || ep == GameCmd.EquipPos.EquipPos_SoulTwo ||
            ep == GameCmd.EquipPos.EquipPos_Office || ep == GameCmd.EquipPos.EquipPos_Capes)
        {
            em = EquipPartMode.None;
        }
        else if (ep == GameCmd.EquipPos.EquipPos_Equip ||
                 ep == GameCmd.EquipPos.EquipPos_AdornlOne ||
                 ep == GameCmd.EquipPos.EquipPos_AdornlTwo ||
                 ep == GameCmd.EquipPos.EquipPos_Shield)
        {
            em = EquipPartMode.AttackPart;
        }
        else
        {
            em = EquipPartMode.DefendPart;
        }
        return(em);
    }