public void OnClickSort(GameObject obj) { m_PopupState.value = false; eRuneSort sort_type = eRuneSort.Grade; switch (obj.name) { case "btn_grade": sort_type = eRuneSort.Grade; break; case "btn_level": sort_type = eRuneSort.Level; break; case "btn_idn": sort_type = eRuneSort.IDN; break; } if (SortType == sort_type) { m_SortDirection.SetSpriteActive(!IsAscending); } else { m_SortDirection.SetSpriteActive(false); } SortType = sort_type; m_PopupLabel.text = Localization.Get("HeroSort" + SortType); OnSortCallback(); }
public List <Rune> GetSortedList(eRuneSort sort, bool is_ascending = false, List <Rune> runes = null) { if (runes == null) { runes = Runes.Where(r => r.CreatureIdx == 0).ToList(); } IOrderedEnumerable <Rune> list = null; if (is_ascending == true) { switch (sort) { case eRuneSort.Grade: list = runes.OrderBy(c => c.Info.Grade); break; case eRuneSort.Level: list = runes.OrderBy(c => c.Level); break; case eRuneSort.IDN: list = runes.OrderBy(c => c.Info.IconID); break; } } else { switch (sort) { case eRuneSort.Grade: list = runes.OrderByDescending(c => c.Info.Grade); break; case eRuneSort.Level: list = runes.OrderByDescending(c => c.Level); break; case eRuneSort.IDN: list = runes.OrderByDescending(c => c.Info.IDN); break; } } if (list == null) { return(runes); } return(list.ThenByDescending(c => c.Info.Grade).ThenByDescending(c => c.Level).ThenByDescending(c => c.Info.IconID).ThenByDescending(c => c.RuneIdx).ToList()); }