RedDotDataManager.cs 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. using System.Collections.Generic;
  2. namespace GFGGame
  3. {
  4. public class RedDotDataManager : SingletonBase<RedDotDataManager>
  5. {
  6. /// <summary>
  7. /// 公告
  8. /// 是否有未读公告
  9. /// </summary>
  10. /// <returns></returns>
  11. public bool GetNoticeRed()
  12. {
  13. List<NoticeInfo> noticeInfos = NoticeDataManager.Instance.NoticeInfos;
  14. for (int i = 0; i < noticeInfos.Count; i++)
  15. {
  16. if (noticeInfos[i].readStatus == false) return true;
  17. }
  18. return false;
  19. }
  20. /// <summary>
  21. /// 任务
  22. /// 是否有任务奖励、任务宝箱奖励可领
  23. /// </summary>
  24. /// <returns></returns>
  25. public bool GetTaskRed()
  26. {
  27. Dictionary<int, TaskInfo> taskInfo = DailyTaskDataManager.Instance.TaskInfo;
  28. foreach (int key in taskInfo.Keys)
  29. {
  30. if (DailyTaskDataManager.Instance.GetTaskStateById(key) == ConstBonusStatus.CAN_GET) return true;
  31. }
  32. Dictionary<int, int> livenessBoxInfos = DailyTaskDataManager.Instance.LivenessBoxInfos;
  33. foreach (int key in livenessBoxInfos.Keys)
  34. {
  35. if (DailyTaskDataManager.Instance.GetBoxStateById(key) == ConstBonusStatus.CAN_GET) return true;
  36. }
  37. return false;
  38. }
  39. /// <summary>
  40. /// 七天签到
  41. /// </summary>
  42. /// <returns></returns>
  43. public bool GetDailyLoginRed()
  44. {
  45. return ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET;
  46. }
  47. /// <summary>
  48. /// 有邮件未读或未领奖励
  49. /// </summary>
  50. /// <returns></returns>
  51. public bool GetMailRed()
  52. {
  53. if (MailDataManager.Instance.UnreadCount > 0) return true;
  54. return false;
  55. }
  56. /// <summary>
  57. /// 套装收集奖励可领
  58. /// </summary>
  59. /// <returns></returns>
  60. public bool GetFieldGuideRed()
  61. {
  62. List<int> _suitIds = SuitUtil.GetSuitIdList(false, true, 0, 3);//全部已获得套装按照收集度高排序
  63. for (int i = 0; i < _suitIds.Count; i++)
  64. {
  65. int status = DressUpMenuSuitDataManager.GetSuitGuideBonusStatus(_suitIds[i]);
  66. if (status == ConstBonusStatus.CAN_GET)
  67. {
  68. return true;
  69. }
  70. }
  71. return false;
  72. }
  73. /// <summary>
  74. /// 根据章节Id判断是否有奖励可领
  75. /// </summary>
  76. /// <returns></returns>
  77. public bool GetChapterRed(int chapterId)
  78. {
  79. for (int i = 0; i < 3; i++)
  80. {
  81. int state = MainStoryDataManager.GetChapterBonusStatus(chapterId, i);
  82. if (state == ConstBonusStatus.CAN_GET)
  83. {
  84. return true;
  85. }
  86. }
  87. return false;
  88. }
  89. /// <summary>
  90. /// 好友红点
  91. /// </summary>
  92. /// <returns></returns>
  93. public bool GetFriendRed()
  94. {
  95. return GetFriendApplyRed() || GetFriendGiftRed();
  96. }
  97. /// <summary>
  98. /// 是否有好友申请
  99. /// </summary>
  100. /// <returns></returns>
  101. public bool GetFriendApplyRed()
  102. {
  103. return FriendDataManager.Instance.ApplyDatas.Count > 0;
  104. }
  105. /// <summary>
  106. /// 是否有好友可领体力
  107. /// </summary>
  108. /// <returns></returns>
  109. public bool GetFriendGiftRed()
  110. {
  111. if (FriendDataManager.Instance.Count >= GlobalCfgArray.globalCfg.maxGetPowerCount) return false;
  112. List<FriendInfoData> friendInfos = FriendDataManager.Instance.FriendDatas;
  113. for (int i = 0; i < friendInfos.Count; i++)
  114. {
  115. if (friendInfos[i].takeGiftState == ConstBonusStatus.CAN_GET)
  116. {
  117. return true;
  118. }
  119. }
  120. return false;
  121. }
  122. /// <summary>
  123. /// 商城-礼包红点
  124. /// </summary>
  125. /// <returns></returns>
  126. public bool GetRechargeGiftFreeRed()
  127. {
  128. List<GiftBagCfg> _giftCfgs = RechargeDataManager.Instance.GetGiftBagCfgs();
  129. for (int i = 0; i < _giftCfgs.Count; i++)
  130. {
  131. GiftBagCfg cfg = _giftCfgs[i];
  132. bool isUnLock = RechargeDataManager.Instance.GetGiftStateById(cfg.id);
  133. int buyNum = RechargeDataManager.Instance.GetGiftBuyNumById(cfg.id);
  134. bool canBuy = cfg.maxBuyNum == 0 || buyNum < cfg.maxBuyNum ? true : false;
  135. if (isUnLock && canBuy && cfg.price == 0) return true;
  136. }
  137. return false;
  138. }
  139. /// <summary>
  140. /// 田野调查红点
  141. /// </summary>
  142. /// <returns></returns>
  143. public bool GetFieldRed()
  144. {
  145. List<FieldTaskCfg> _cfgs = FieldDataManager.Instance.GetTaskCfgs();
  146. for (int i = 0; i < _cfgs.Count; i++)
  147. {
  148. int state = FieldDataManager.Instance.GetTaskState(_cfgs[i].id);
  149. if (state == ConstBonusStatus.CAN_GET) return true;
  150. }
  151. return false;
  152. }
  153. /// <summary>
  154. /// 工作室红点
  155. /// </summary>
  156. /// <returns></returns>
  157. public bool GetStudioFilingRed(bool checkCurChapter = true)
  158. {
  159. List<StudioCfg> studioCfgs = StudioCfgArray.Instance.GetCfgsByfunId(typeof(StudioFilingView).Name);
  160. for (int i = 0; i < studioCfgs.Count; i++)
  161. {
  162. if (!checkCurChapter && studioCfgs[i].id == StudioDataManager.Instance.filingChapterId) continue;
  163. if (StudioDataManager.Instance.GetFilingRewardState(studioCfgs[i].id)) return true;
  164. }
  165. return false;
  166. }
  167. /// <summary>
  168. /// 千山万水-图鉴红点
  169. /// </summary>
  170. /// <returns></returns>
  171. public bool GetTravelGuideRed()
  172. {
  173. if (TravelDataManager.Instance.ListTravelAreaRewardState == null) return false;
  174. for (int i = 0; i < TravelDataManager.Instance.ListTravelAreaRewardState.Count; i++)
  175. {
  176. if (TravelDataManager.Instance.ListTravelAreaRewardState[i] == ConstBonusStatus.CAN_GET)
  177. {
  178. return true;
  179. }
  180. }
  181. return false;
  182. }
  183. /// <summary>
  184. /// 千山万水-图鉴区域红点
  185. /// </summary>
  186. /// <param name="areaId"></param>
  187. /// <returns></returns>
  188. public bool GetTravelGuideAreaRed(int areaId)
  189. {
  190. if (TravelDataManager.Instance.ListTravelAreaRewardState == null) return false;
  191. return TravelDataManager.Instance.ListTravelAreaRewardState[areaId - 1] == ConstBonusStatus.CAN_GET;
  192. }
  193. }
  194. }