Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        ///////////////////////////////////主显示部分//////////////////////////////////////////
        // 切页的时候显示部分,参数数据应该包括:镶嵌点情况,左侧全部符文剩余情况(这个目前有点难做,放着) ,右侧属性加成情况
        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();
            }
        }