示例#1
0
    /// <summary>
    /// ���еĽ�������
    /// </summary>
    /// <param name="hasGetArenaRewardList"></param>
    /// <param name="allRewardDataList"></param>
    public List <int> SortAllReward(List <int> hasGetArenaRewardList, Dictionary <int, ArenaRewardData> allRewardDataList)
    {
        List <int>            allSortRewardList    = new List <int>();
        List <SortRewardData> canGetSortRewardList = new List <SortRewardData>(); // δ��ȡ�Ľ����б�
        List <SortRewardData> doingSortRewardList  = new List <SortRewardData>(); // �����еĽ����б�
        List <SortRewardData> hasGetSortRewardList = new List <SortRewardData>(); // ����ȡ�Ľ����б�

        // ����(1)δ��ȡ(2)������(3)����ȡ
        // ͬһ����а��������������ִ�С��С��������ע�������в������ջ��ֺ��ܻ��֣�

        // δ��ȡ����
        foreach (KeyValuePair <int, ArenaRewardData> rewardPair in allRewardDataList)
        {
            if (hasGetArenaRewardList.Contains(rewardPair.Key))
            {
                continue;
            }

            ArenaScoreRewardData arenaScoreRewardData = ArenaScoreRewardData.dataMap.Get(rewardPair.Key);
            if (arenaScoreRewardData == null)
            {
                continue;
            }

            SortRewardData sortRewardData;
            sortRewardData.rewardID  = rewardPair.Key;
            sortRewardData.needScore = arenaScoreRewardData.score;
            switch ((ArenaRewardType)arenaScoreRewardData.type)
            {
            case ArenaRewardType.RewardDay:
            {
                if (ArenaUILogicManager.Instance.m_ObtainDayPoint >= arenaScoreRewardData.score)
                {
                    canGetSortRewardList.Add(sortRewardData);
                }
                else
                {
                    doingSortRewardList.Add(sortRewardData);
                }
            } break;

            case ArenaRewardType.RewardWeek:
            {
                if (ArenaUILogicManager.Instance.m_ObtainWeekPoint >= arenaScoreRewardData.score)
                {
                    canGetSortRewardList.Add(sortRewardData);
                }
                else
                {
                    doingSortRewardList.Add(sortRewardData);
                }
            } break;
            }
        }

        // ����ȡ����
        foreach (int rewardID in hasGetArenaRewardList)
        {
            ArenaScoreRewardData arenaScoreRewardData = ArenaScoreRewardData.dataMap.Get(rewardID);
            if (arenaScoreRewardData == null)
            {
                continue;
            }

            SortRewardData sortRewardData;
            sortRewardData.rewardID  = rewardID;
            sortRewardData.needScore = arenaScoreRewardData.score;

            hasGetSortRewardList.Add(sortRewardData);
        }

        // δ��ȡ
        canGetSortRewardList.Sort(delegate(SortRewardData a, SortRewardData b)
        {
            if (a.needScore < b.needScore)
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        });
        foreach (SortRewardData rewardData in canGetSortRewardList)
        {
            allSortRewardList.Add(rewardData.rewardID);
        }

        // ������
        doingSortRewardList.Sort(delegate(SortRewardData a, SortRewardData b)
        {
            if (a.needScore < b.needScore)
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        });
        foreach (SortRewardData rewardData in doingSortRewardList)
        {
            allSortRewardList.Add(rewardData.rewardID);
        }

        // ����ȡ
        hasGetSortRewardList.Sort(delegate(SortRewardData a, SortRewardData b)
        {
            if (a.needScore < b.needScore)
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        });
        foreach (SortRewardData rewardData in hasGetSortRewardList)
        {
            allSortRewardList.Add(rewardData.rewardID);
        }

        return(allSortRewardList);
    }
示例#2
0
    /// <summary>
    /// 所有的奖励排序
    /// </summary>
    /// <param name="hasGetArenaRewardList"></param>
    /// <param name="allRewardDataList"></param>
    public List <int> SortAllReward(List <int> hasGetArenaRewardList, Dictionary <int, ArenaRewardData> allRewardDataList)
    {
        List <int>            allSortRewardList    = new List <int>();
        List <SortRewardData> canGetSortRewardList = new List <SortRewardData>(); // 未领取的奖励列表
        List <SortRewardData> doingSortRewardList  = new List <SortRewardData>(); // 进行中的奖励列表
        List <SortRewardData> hasGetSortRewardList = new List <SortRewardData>(); // 已领取的奖励列表

        // 排序:(1)未领取(2)进行中(3)已领取
        // 同一类别中按完成条件所需积分大小由小到大排序(注:排序中不区分日积分和周积分)

        // 未领取奖励
        foreach (KeyValuePair <int, ArenaRewardData> rewardPair in allRewardDataList)
        {
            if (hasGetArenaRewardList.Contains(rewardPair.Key))
            {
                continue;
            }

            ArenaScoreRewardData arenaScoreRewardData = ArenaScoreRewardData.dataMap.Get(rewardPair.Key);
            if (arenaScoreRewardData == null)
            {
                continue;
            }

            SortRewardData sortRewardData;
            sortRewardData.rewardID  = rewardPair.Key;
            sortRewardData.needScore = arenaScoreRewardData.score;
            switch ((ArenaRewardType)arenaScoreRewardData.type)
            {
            case ArenaRewardType.RewardDay:
            {
                if (ArenaUILogicManager.Instance.m_ObtainDayPoint >= arenaScoreRewardData.score)
                {
                    canGetSortRewardList.Add(sortRewardData);
                }
                else
                {
                    doingSortRewardList.Add(sortRewardData);
                }
            } break;

            case ArenaRewardType.RewardWeek:
            {
                if (ArenaUILogicManager.Instance.m_ObtainWeekPoint >= arenaScoreRewardData.score)
                {
                    canGetSortRewardList.Add(sortRewardData);
                }
                else
                {
                    doingSortRewardList.Add(sortRewardData);
                }
            } break;
            }
        }

        // 已领取奖励
        foreach (int rewardID in hasGetArenaRewardList)
        {
            ArenaScoreRewardData arenaScoreRewardData = ArenaScoreRewardData.dataMap.Get(rewardID);
            if (arenaScoreRewardData == null)
            {
                continue;
            }

            SortRewardData sortRewardData;
            sortRewardData.rewardID  = rewardID;
            sortRewardData.needScore = arenaScoreRewardData.score;

            hasGetSortRewardList.Add(sortRewardData);
        }

        // 未领取
        canGetSortRewardList.Sort(delegate(SortRewardData a, SortRewardData b)
        {
            if (a.needScore < b.needScore)
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        });
        foreach (SortRewardData rewardData in canGetSortRewardList)
        {
            allSortRewardList.Add(rewardData.rewardID);
        }

        // 进行中
        doingSortRewardList.Sort(delegate(SortRewardData a, SortRewardData b)
        {
            if (a.needScore < b.needScore)
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        });
        foreach (SortRewardData rewardData in doingSortRewardList)
        {
            allSortRewardList.Add(rewardData.rewardID);
        }

        // 已领取
        hasGetSortRewardList.Sort(delegate(SortRewardData a, SortRewardData b)
        {
            if (a.needScore < b.needScore)
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        });
        foreach (SortRewardData rewardData in hasGetSortRewardList)
        {
            allSortRewardList.Add(rewardData.rewardID);
        }

        return(allSortRewardList);
    }