예제 #1
0
    /// <summary>
    /// 比較関数
    /// </summary>
    /// <param name="_objA"></param>
    /// <param name="_objB"></param>
    /// <returns></returns>

    private int SortUnitCompare(SortObjectBase _objA, SortObjectBase _objB)
    {
        int _ret = 0;

        for (int i = 0; i < sortInfoList.Count; i++)
        {
            _ret = _objA.CompareUnitTo(sortInfoList[i], _objB);

            if (_ret != 0)
            {
                return(_ret);
            }
        }

        return(_ret);
    }
예제 #2
0
    public int CompareUnitTo(SortInfo info, SortObjectBase _obj)
    {
        int _ret = 0;

        switch (info.m_Type)
        {
        case SORT_PARAM.ID:
            _ret = _obj.UnitParam.draw_id - UnitParam.draw_id;
            break;

        case SORT_PARAM.LEVEL:
            _ret = _obj.UnitParam.level - UnitParam.level;
            break;

        case SORT_PARAM.HP:
            _ret = _obj.UnitParam.hp - UnitParam.hp;
            break;

        case SORT_PARAM.POW:
            _ret = _obj.UnitParam.pow - UnitParam.pow;
            break;

        case SORT_PARAM.PLUS:
            _ret = _obj.UnitParam.plus - UnitParam.plus;
            break;

        case SORT_PARAM.COST:
            _ret = _obj.UnitParam.cost - UnitParam.cost;
            break;

        case SORT_PARAM.RARITY:
            _ret = _obj.UnitParam.rare - UnitParam.rare;
            break;

        case SORT_PARAM.ELEMENT:
            _ret = _obj.UnitParam.element_int - UnitParam.element_int;
            break;

        case SORT_PARAM.KIND:
            _ret = _obj.UnitParam.kind_int - UnitParam.kind_int;
            break;

        case SORT_PARAM.SUB_KIND:
            _ret = _obj.UnitParam.sub_kind_int - UnitParam.sub_kind_int;
            break;

        case SORT_PARAM.LIMMIT_OVER:
            _ret = _obj.UnitParam.limitover_lv - UnitParam.limitover_lv;
            break;

        case SORT_PARAM.CHARM:     //double
            _ret = CompareToDouble(UnitParam.charm, _obj.UnitParam.charm);
            break;

        case SORT_PARAM.PARTY:     //bool
            _ret = CompareToBool(UnitParam.party_assign, _obj.UnitParam.party_assign);
            break;

        case SORT_PARAM.FAVORITE:     //bool
            _ret = CompareToBool(UnitParam.favorite, _obj.UnitParam.favorite);
            break;

        case SORT_PARAM.GET_TIME:     //long
            _ret = CompareToLong(UnitParam.get_time, _obj.UnitParam.get_time);
            break;

        case SORT_PARAM.UNIQUE_ID:    //long
            _ret = CompareToLong(UnitParam.unique_id, _obj.UnitParam.unique_id);
            break;

        case SORT_PARAM.RANK:
            _ret = _obj.UnitParam.rank - UnitParam.rank;
            break;

        case SORT_PARAM.LOGIN_TIME:
            _ret = CompareToLong(UnitParam.login_time, _obj.UnitParam.login_time);
            break;

        case SORT_PARAM.FRIEND_STATE:
            _ret = _obj.UnitParam.friend_state - UnitParam.friend_state;
            break;

        case SORT_PARAM.RATIO_UP:
            _ret = _obj.UnitParam.ratio_up - UnitParam.ratio_up;
            break;

        case SORT_PARAM.LIMITED:
            _ret = _obj.UnitParam.limited - UnitParam.limited;
            break;

        case SORT_PARAM.GROUP_ID:
            _ret = _obj.UnitParam.group_id - UnitParam.group_id;
            break;

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

        if (info.m_Order == SORT_ORDER.ASCENDING)
        {
            _ret *= -1;
        }

        return(_ret);
    }