Beispiel #1
0
    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();
    }
Beispiel #2
0
    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());
    }