예제 #1
0
    /// <summary>
    /// ソート条件追加
    /// </summary>
    /// <param name="_type"></param>
    /// <param name="_order"></param>
    public void AddSortInfo(SORT_PARAM _type, SORT_ORDER _order)
    {
        //特定のソートでは順序を反転する
        switch (_type)
        {
        case SORT_PARAM.FAVORITE:
            _order = (_order == SORT_ORDER.ASCENDING) ? SORT_ORDER.DESCENDING : SORT_ORDER.ASCENDING;
            break;
        }

        sortInfoList.Add(new SortInfo(_type, _order));
    }
예제 #2
0
    private bool CheckType(SORT_PARAM _type, System.Type _paramType)
    {
        if (paramType.IsOverRange((int)_type))
        {
            Debug.LogError(string.Format("OVERRANGE_TYPE:{0}", _type));
            return(false);
        }

        if (_paramType != paramType[(int)_type])
        {
            return(false);
        }

        return(true);
    }
예제 #3
0
    /// <summary>
    /// フィルタ処理(ユニット)
    /// </summary>
    /// <param name="_filter"></param>
    public void FilterUnitTo(SortFilterBase _filter)
    {
        bool bActive = false;

        for (int i = 0; i < _filter.m_Types.Length; i++)
        {
            SORT_PARAM param = _filter.m_Types[i];

            if (bActive)
            {
                break;
            }

            switch (param)
            {
            case SORT_PARAM.ID:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.draw_id);
                break;

            case SORT_PARAM.LEVEL:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.level);
                break;

            case SORT_PARAM.HP:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.hp);
                break;

            case SORT_PARAM.POW:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.pow);
                break;

            case SORT_PARAM.PLUS:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.plus);
                break;

            case SORT_PARAM.COST:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.cost);
                break;

            case SORT_PARAM.RARITY:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.rare);
                break;

            case SORT_PARAM.ELEMENT:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.element_int);
                break;

            case SORT_PARAM.KIND:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.kind_int);
                break;

            case SORT_PARAM.SUB_KIND:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.sub_kind_int);
                break;

            case SORT_PARAM.LIMMIT_OVER:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.limitover_lv);
                break;

            case SORT_PARAM.CHARM:     //double
                bActive = ((SortFilter <double>)_filter).FilterTo(UnitParam.charm);
                break;

            case SORT_PARAM.PARTY:     //bool
                bActive = ((SortFilter <bool>)_filter).FilterTo(UnitParam.party_assign);
                break;

            case SORT_PARAM.FAVORITE:     //bool
                bActive = ((SortFilter <bool>)_filter).FilterTo(UnitParam.favorite);
                break;

            case SORT_PARAM.GET_TIME:     //long
                bActive = ((SortFilter <long>)_filter).FilterTo(UnitParam.get_time);
                break;

            case SORT_PARAM.UNIQUE_ID:    //long
                bActive = ((SortFilter <long>)_filter).FilterTo(UnitParam.unique_id);
                break;

            case SORT_PARAM.RANK:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.rank);
                break;

            case SORT_PARAM.LOGIN_TIME:    //long
                bActive = ((SortFilter <long>)_filter).FilterTo(UnitParam.login_time);
                break;

            case SORT_PARAM.FRIEND_STATE:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.friend_state);
                break;

            case SORT_PARAM.RATIO_UP:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.ratio_up);
                break;

            case SORT_PARAM.LIMITED:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.limited);
                break;

            case SORT_PARAM.GROUP_ID:
                bActive = ((SortFilter <int>)_filter).FilterTo(UnitParam.group_id);
                break;

            default:
                Debug.Assert(true, "FilterUnitTo no tyoe");
                break;
            }
        }

        isActive = bActive;
    }
예제 #4
0
    /// <summary>
    /// ソート&フィルタ情報の設定
    /// </summary>
    /// <param name="sortInfo"></param>
    public void SetUpSortData(LocalSaveSortInfo sortInfo)
    {
        ClearSortInfo();
        ClearFilter();

        //--------------------------------
        // ソートの設定
        //--------------------------------
        if (sortInfo != null)
        {
            if (sortInfo.m_SortType == (int)MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_FAVORITE_SORT)
            {
                // お好みソート
                if (sortInfo != null && sortInfo.m_FavoriteSorts != null)
                {
                    // 使用中優先
                    if (sortInfo.m_FavoriteSortIsUsePriority)
                    {
                        AddSortInfo(SORT_PARAM.PARTY, SORT_ORDER.ASCENDING);
                    }

                    // ソート
                    for (int i = 0; i < sortInfo.m_FavoriteSorts.Length; i++)
                    {
                        SORT_PARAM sortparam = SortUtil.GetSortParam((MAINMENU_SORT_SEQ)sortInfo.m_FavoriteSorts[i].m_SortType);
                        if (sortparam == SORT_PARAM.NONE)
                        {
                            continue;
                        }

                        AddSortInfo(sortparam,
                                    (sortInfo.m_FavoriteSorts[i].m_IsAscOrder) ? SORT_ORDER.ASCENDING : SORT_ORDER.DESCENDING);
                    }
                }
            }
            else if (sortInfo.m_SortType != (int)MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_DEFAULT)
            {
                // 通常ソート
                SORT_PARAM sortparam = SortUtil.GetSortParam((MAINMENU_SORT_SEQ)sortInfo.m_SortType);
                if (sortparam != SORT_PARAM.NONE)
                {
                    AddSortInfo(sortparam, (sortInfo.m_SortIsAscOrder) ? SORT_ORDER.ASCENDING : SORT_ORDER.DESCENDING);
                }
            }
        }

        //--------------------------------
        // フィルタの設定
        //--------------------------------
        if (sortInfo != null)
        {
            // レア度
            if (SortUtil.CheckFilterWorking(sortInfo.m_FilterRares))
            {
                AddFilter <int>(SORT_PARAM.RARITY, sortInfo.m_FilterRares);
            }

            // 属性
            if (SortUtil.CheckFilterWorking(sortInfo.m_FilterElements))
            {
                AddFilter <int>(SORT_PARAM.ELEMENT, SortUtil.GetFilterNumElements(sortInfo.m_FilterElements));
            }

            // 種族
            if (SortUtil.CheckFilterWorking(sortInfo.m_FilterKinds))
            {
                if (sortInfo.m_FilterIsIncludeKindsSub)
                {
                    AddFilter <int>(new SORT_PARAM[] { SORT_PARAM.KIND, SORT_PARAM.SUB_KIND }, SortUtil.GetFilterNumKindss(sortInfo.m_FilterKinds));
                }
                else
                {
                    AddFilter <int>(SORT_PARAM.KIND, SortUtil.GetFilterNumKindss(sortInfo.m_FilterKinds));
                }
            }
        }
    }
예제 #5
0
 /// <summary>
 /// フィルタ追加
 /// </summary>
 /// <typeparam name="T1"></typeparam>
 /// <param name="_type"></param>
 /// <param name="_data"></param>
 public void AddFilter <T1>(SORT_PARAM _type, T1[] _data)
 {
     SORT_PARAM[] _tmp = new SORT_PARAM[1];
     _tmp[0] = _type;
     filterList.Add(new SortFilter <T1>(_tmp, _data));
 }
예제 #6
0
 public SortInfo(SORT_PARAM _type, SORT_ORDER _order)
 {
     m_Type  = _type;
     m_Order = _order;
 }
예제 #7
0
    /// <summary>
    /// ソートタイプの変換
    /// </summary>
    /// <param name="sortType"></param>
    /// <returns></returns>
    public static SORT_PARAM GetSortParam(MAINMENU_SORT_SEQ sortType)
    {
        SORT_PARAM sortParam = SORT_PARAM.NONE;

        switch (sortType)
        {
        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_ATTACK:
            sortParam = SORT_PARAM.POW;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_FAVORITE:
            sortParam = SORT_PARAM.FAVORITE;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_COST:
            sortParam = SORT_PARAM.COST;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_HP:
            sortParam = SORT_PARAM.HP;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_ELEMENT:
            sortParam = SORT_PARAM.ELEMENT;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_ID:
            sortParam = SORT_PARAM.ID;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_GET:
            sortParam = SORT_PARAM.GET_TIME;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_KIND:
            sortParam = SORT_PARAM.KIND;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_PLUS:
            sortParam = SORT_PARAM.PLUS;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_LOGIN_TIME:
            sortParam = SORT_PARAM.LOGIN_TIME;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_RANK:
            sortParam = SORT_PARAM.RANK;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_LEVEL:
            sortParam = SORT_PARAM.LEVEL;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_RARE:
            sortParam = SORT_PARAM.RARITY;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_LIMIT_OVER:
            sortParam = SORT_PARAM.LIMMIT_OVER;
            break;

        case MAINMENU_SORT_SEQ.SEQ_SORT_TYPE_CHARM:
            sortParam = SORT_PARAM.CHARM;
            break;

        default:
#if BUILD_TYPE_DEBUG
            Debug.LogError("SortType NG!! - " + sortType);
#endif
            break;
        }

        return(sortParam);
    }