// 筛选对应符文是否装备的条件进行排序并输出。 [4/17/2015 Zmy] private void SortEquipRune(EM_SORT_RUNE_ITEM ntype, ref List <BaseItem> _Returnlist) { if (ntype == (int)EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_ALL) { return; } // 先筛选出已装备的符文进行排序。并剔除掉 [4/17/2015 Zmy] List <BaseItem> _Rune = ReturnRuneType(ntype); for (int i = _Rune.Count - 1; i >= 0; i--) { if (_Rune[i].IsEquip()) { _Returnlist.Add(_Rune[i]); _Rune.RemoveAt(i); } } _Returnlist.Sort(new RuneComparer()); // 在对剩余未装备的符文进行排序并添加输出list [4/17/2015 Zmy] _Rune.Sort(new RuneComparer()); for (int i = 0; i < _Rune.Count; ++i) { _Returnlist.Add(_Rune[i]); } }
//对符文进行排序 [4/17/2015 Zmy] public List <BaseItem> SortRuneItemByType(EM_SORT_RUNE_ITEM nType) { List <BaseItem> _list = new List <BaseItem>(); _list.Clear(); switch (nType) { case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_ALL: List <BaseItem> _allRune = ReturnItemType((int)EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_EQUIP, EM_ITEM_TYPE.EM_ITEM_TYPE_RUNE); //先筛选出已装备的,并从列表中剔除出去(注意要不改变原有的数据内存) [4/17/2015 Zmy] for (int i = _allRune.Count - 1; i >= 0; i--) { if (_allRune[i].IsEquip()) { _list.Add(_allRune[i]); _allRune.RemoveAt(i); } } _list.Sort(new RuneComparer()); //未装备的按品质 等级 类型排序一次 [4/17/2015 Zmy] _allRune.Sort(new RuneComparer()); for (int i = 0; i < _allRune.Count; ++i) { _list.Add(_allRune[i]); } break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_SPECIAL: SortEquipRune(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_SPECIAL, ref _list); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_RED: SortEquipRune(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_RED, ref _list); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_GREEN: SortEquipRune(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_GREEN, ref _list); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_PURPLE: SortEquipRune(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_PURPLE, ref _list); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_BLUE: SortEquipRune(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_BLUE, ref _list); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_NEWGUIDE: SortEquipRune(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_NEWGUIDE, ref _list); break; default: break; } return(_list); }
// 返回道具背包里指定类型的符文 [4/17/2015 Zmy] public List <BaseItem> ReturnRuneType(EM_SORT_RUNE_ITEM nType) { List <BaseItem> _list = ReturnItemType((int)EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_EQUIP, EM_ITEM_TYPE.EM_ITEM_TYPE_RUNE); for (int i = _list.Count - 1; i >= 0; i--) { switch (nType) { case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_SPECIAL: if (_list[i].GetItemRowData().getRune_type() < (int)EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_SPECIAL) { _list.RemoveAt(i); } break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_RED: if (_list[i].GetItemRowData().getRune_type() != (int)EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_RED) { _list.RemoveAt(i); } break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_GREEN: if (_list[i].GetItemRowData().getRune_type() != (int)EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_GREEN) { _list.RemoveAt(i); } break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_PURPLE: if (_list[i].GetItemRowData().getRune_type() != (int)EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_PURPLE) { _list.RemoveAt(i); } break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_BLUE: if (_list[i].GetItemRowData().getRune_type() != (int)EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_BLUE) { _list.RemoveAt(i); } break; default: break; } } return(_list); }
public void SelectRune(EM_SORT_RUNE_ITEM nType) { _curRuneList.Clear(); List <BaseItem> runeList = new List <BaseItem>(); switch (nType) { case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_ALL: runeList = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_ALL); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_SPECIAL: runeList = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_SPECIAL); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_RED: runeList = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_RED); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_GREEN: runeList = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_GREEN); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_PURPLE: runeList = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_PURPLE); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_BLUE: runeList = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_BLUE); break; default: break; } for (int i = 0; i < runeList.Count; ++i) { RuneTempData rune = new RuneTempData(); rune.item = runeList[i]; rune.isSelect = false; _curRuneList.Add(rune); } RelodRune(); }
public void SelectRune(EM_SORT_RUNE_ITEM nType) { rune.Clear(); m_CurType = nType; switch (nType) { case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_ALL: rune = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_ALL); RelodRune(); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_SPECIAL: rune = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_SPECIAL); RelodRune(); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_RED: rune = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_RED); RelodRune(); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_GREEN: rune = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_GREEN); RelodRune(); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_PURPLE: rune = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_PURPLE); RelodRune(); break; case EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_BLUE: rune = ObjectSelf.GetInstance().CommonItemContainer.SortRuneItemByType(EM_SORT_RUNE_ITEM.EM_SORT_RUNE_ITEM_BLUE); RelodRune(); break; default: break; } }