/// <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); }
/// <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); }