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); }
/// <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); } } } }
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(); }
public bool HaveEquipCanInlayByIndex() { int count = 0; for (EquipPartMode i = EquipPartMode.AttackPart; i < EquipPartMode.Max; i++) { if (HaveEquipCanInlayByEquipPartMode(i)) { count++; } } return(count > 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); }
/// <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); }
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); }
/// <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)); }
/// <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(); }
/// <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); }
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); }