LevelRankInfo.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System.Collections.Generic;
  2. using MongoDB.Bson.Serialization.Attributes;
  3. namespace ET
  4. {
  5. /// <summary>
  6. /// 关卡排行榜组件
  7. /// </summary>
  8. public class LevelRankInfo : Entity, IAwake<int>, IDestroy
  9. {
  10. //关卡id
  11. public int LevelId;
  12. /// <summary>
  13. /// 关卡排行榜
  14. /// </summary>
  15. [BsonIgnore] public SortedList<LevelRankRoleInfo, long> SortedLevelRankInfoList;
  16. }
  17. public class LevelRankInfoCompare : IComparer<LevelRankRoleInfo>
  18. {
  19. private int _levelId;
  20. public LevelRankInfoCompare(int levelId)
  21. {
  22. _levelId = levelId;
  23. }
  24. public int Compare(LevelRankRoleInfo a, LevelRankRoleInfo b)
  25. {
  26. if (a.IsDisposed || b.IsDisposed)
  27. {
  28. return 0;
  29. }
  30. a.LevelScoreDic.TryGetValue(_levelId, out long aVal);
  31. b.LevelScoreDic.TryGetValue(_levelId, out long bVal);
  32. if (bVal > aVal)
  33. {
  34. return 1;
  35. }
  36. if (bVal < aVal)
  37. {
  38. return -1;
  39. }
  40. if (b.Id > a.Id)
  41. {
  42. return -1;
  43. }
  44. if (b.Id < a.Id)
  45. {
  46. return 1;
  47. }
  48. return 0;
  49. }
  50. }
  51. }