/// <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)); }
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); }
/// <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; }
/// <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)); } } } }
/// <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)); }
public SortInfo(SORT_PARAM _type, SORT_ORDER _order) { m_Type = _type; m_Order = _order; }
/// <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); }