/// <summary> /// Convert item to node. /// </summary> /// <returns>The node.</returns> /// <param name="item">Item.</param> protected virtual TreeNode <URuneTypeTreeItemData> Item2Node(URuneTypeTreeViewDataSource item) { var nodeItem = new URuneTypeTreeItemData(item.Name, item.Icon); nodeItem.Value = item.Value; nodeItem.Tag = item.Tag; nodeItem.nRuneId = item.RuneId; nodeItem.Icon = item.Icon; nodeItem.nRuneType = item.RuneType; nodeItem.sRuneDesc = item.RuneDesc; return(new TreeNode <URuneTypeTreeItemData>(nodeItem, new ObservableList <TreeNode <URuneTypeTreeItemData> >(), item.IsExpanded, item.IsVisible)); }
///////////////////////////////////主显示部分////////////////////////////////////////// // 切页的时候显示部分,参数数据应该包括:镶嵌点情况,左侧全部符文剩余情况(这个目前有点难做,放着) ,右侧属性加成情况 public void SetStoreShow(Dictionary <int, List <RuneItemInfo> > dicRuneTypeStore, Dictionary <int, int> dicAllRuneSlotInfo, int nPropertyType, List <int> lLevelState) { if (!IsSelfShowType()) { return; } LogicDataCenter.runePageDataManager.UpdateRuneInlayTypeLeftStore(); bool bHallMarkExpanded = false; bool bGlyphExpanded = false; bool bSigilExpanded = false; bool bCreamExpanded = false; foreach (TreeNode <URuneTypeTreeItemData> itemData in RuneTypeTree.Nodes) { if (itemData.IsExpanded) { if (itemData.Item.Name == this.sCream) { bCreamExpanded = true; } else if (itemData.Item.Name == this.sHalMark) { bHallMarkExpanded = true; } else if (itemData.Item.Name == this.sGlyph) { bGlyphExpanded = true; } else if (itemData.Item.Name == this.sSigil) { bSigilExpanded = true; } } } Data.Clear(); foreach (int nRuneInlayType in dicRuneTypeStore.Keys) { if (nRuneInlayType == (int)RuneType.ENUM_RUNETYPE_HALLMARK) { URuneTypeTreeViewDataSource itemData3 = new URuneTypeTreeViewDataSource(); itemData3.Name = this.sHalMark; itemData3.IsExpanded = bHallMarkExpanded; Data.Add(itemData3); } else if (nRuneInlayType == (int)RuneType.ENUM_RUNETYPE_GLYPH) { URuneTypeTreeViewDataSource itemData1 = new URuneTypeTreeViewDataSource(); itemData1.Name = this.sGlyph; itemData1.IsExpanded = bGlyphExpanded; Data.Add(itemData1); } else if (nRuneInlayType == (int)RuneType.ENUM_RUNETYPE_SIGIL) { URuneTypeTreeViewDataSource itemData2 = new URuneTypeTreeViewDataSource(); itemData2.Name = this.sSigil; itemData2.IsExpanded = bSigilExpanded; Data.Add(itemData2); } else if (nRuneInlayType == (int)RuneType.ENUM_RUNETYPE_CREAM) { URuneTypeTreeViewDataSource itemData0 = new URuneTypeTreeViewDataSource(); itemData0.Name = this.sCream; itemData0.IsExpanded = bCreamExpanded; Data.Add(itemData0); } foreach (RuneItemInfo runeItemInfo in dicRuneTypeStore[nRuneInlayType]) { SSchemeRuneConfig runeConfig = RunePage.Instance.allRunePageTable[runeItemInfo.nRuneId] as SSchemeRuneConfig; if (runeConfig == null) { continue; } if (nPropertyType != (int)RunePropertyType.ENUM_RUNEPROPERTYTYPE_ALL && nPropertyType != runeConfig.nRunePropertyType) { continue; } if (!lLevelState.Contains(runeConfig.nRuneLevel)) { continue; } int nSlotRuneCount = 0; foreach (int nRuneId in dicAllRuneSlotInfo.Values) { if (nRuneId == runeItemInfo.nRuneId) { nSlotRuneCount++; } } int nRuneCount = runeItemInfo.nRuneNum - nSlotRuneCount; if (nRuneCount <= 0) { continue; } string[] sRuneValueArray = ((string)(runeConfig.szParametersValueArray)).Split(';'); UBB.toHtml(ref runeConfig.szRuneName, UBB_FORMAT_TYPE.UGUI); string[] sRuneNameArray = ((string)(runeConfig.szRuneName)).Split(';'); if (sRuneNameArray.Length != sRuneValueArray.Length) { Debug.LogWarning("SetStoreShow : runeinfo.csv doubleproperty config is wrong"); return; } URuneTypeTreeViewDataSource runeItemData = new URuneTypeTreeViewDataSource(); int nPropertyNameType = runeConfig.nPropertyNameType; for (int i = 0; i < sRuneValueArray.Length; i++) { double nRuneProValue = (double.Parse(sRuneValueArray[i])); runeItemData.Name = runeItemData.Name + this.GetPropertyName(nPropertyNameType, nRuneProValue) + " " + sRuneNameArray[i]; } runeItemData.Depth = 1; runeItemData.Value = nRuneCount; runeItemData.RuneId = runeItemInfo.nRuneId; runeItemData.RuneType = runeConfig.nRuneInlayType; UBB.toHtml(ref runeConfig.szRuneDESC, UBB_FORMAT_TYPE.UGUI); runeItemData.RuneDesc = runeConfig.szRuneDESC; runeItemData.Icon = USpriteManager.Instance.GetSprite(USpriteManager.ESpriteType.EST_Rune, WndID.WND_ID_PLAYERFRAME, runeConfig.nRuneInlayType, runeConfig.nRuneIconId); Data.Add(runeItemData); } } if (this.IsVisible()) { SetRuneTypeTreeViewDataSource(); } }