| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 | using System;using System.Collections.Generic;namespace GFGGame{    public class RedDotDataManager : SingletonBase<RedDotDataManager>    {        /// <summary>        /// 公告        /// 是否有未读公告        /// </summary>        /// <returns></returns>        public bool GetNoticeRed()        {            List<NoticeInfo> noticeInfos = NoticeDataManager.Instance.NoticeInfos;            for (int i = 0; i < noticeInfos.Count; i++)            {                if (noticeInfos[i].readStatus == false) return true;            }            return false;        }        /// <summary>        /// 任务        /// 是否有任务奖励、任务宝箱奖励可领        /// </summary>        /// <returns></returns>        public bool GetTaskRed()        {            Dictionary<int, TaskInfo> taskInfo = DailyTaskDataManager.Instance.TaskInfo;            foreach (int key in taskInfo.Keys)            {                if (DailyTaskDataManager.Instance.GetTaskStateById(key) == ConstBonusStatus.CAN_GET) return true;            }            Dictionary<int, int> livenessBoxInfos = DailyTaskDataManager.Instance.LivenessBoxInfos;            foreach (int key in livenessBoxInfos.Keys)            {                if (DailyTaskDataManager.Instance.GetBoxStateById(key) == ConstBonusStatus.CAN_GET) return true;            }            return false;        }        /// <summary>        /// 七天签到        /// </summary>        /// <returns></returns>        public bool GetDailyLoginRed()        {            return ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET;        }        /// <summary>        /// 有邮件未读或未领奖励        /// </summary>        /// <returns></returns>        public bool GetMailRed()        {            if (MailDataManager.Instance.UnreadCount > 0) return true;            return false;        }        /// <summary>        /// 套装收集奖励可领        /// </summary>        /// <returns></returns>        public bool GetFieldGuideRed()        {            List<int> _suitIds = SuitUtil.GetSuitIdList(false, true, 0, 3);//全部已获得套装按照收集度高排序            for (int i = 0; i < _suitIds.Count; i++)            {                int status = DressUpMenuSuitDataManager.GetSuitGuideBonusStatus(_suitIds[i]);                if (status == ConstBonusStatus.CAN_GET)                {                    return true;                }            }            return false;        }        /// <summary>        /// 根据章节Id判断是否有奖励可领        /// </summary>        /// <returns></returns>        public bool GetChapterRed(int chapterId)        {            for (int i = 0; i < 3; i++)            {                int state = MainStoryDataManager.GetChapterBonusStatus(chapterId, i);                if (state == ConstBonusStatus.CAN_GET)                {                    return true;                }            }            return false;        }        /// <summary>        /// 好友红点        /// </summary>        /// <returns></returns>        public bool GetFriendRed()        {            return GetFriendApplyRed() || GetFriendGiftRed();        }        /// <summary>        /// 是否有好友申请        /// </summary>        /// <returns></returns>        public bool GetFriendApplyRed()        {            return FriendDataManager.Instance.ApplyDatas.Count > 0;        }        /// <summary>        /// 是否有好友可领体力        /// </summary>        /// <returns></returns>        public bool GetFriendGiftRed()        {            if (FriendDataManager.Instance.Count >= GlobalCfgArray.globalCfg.maxGetPowerCount) return false;            List<FriendInfoData> friendInfos = FriendDataManager.Instance.FriendDatas;            for (int i = 0; i < friendInfos.Count; i++)            {                if (friendInfos[i].takeGiftState == ConstBonusStatus.CAN_GET)                {                    return true;                }            }            return false;        }        /// <summary>        /// 商城-礼包红点        /// </summary>        /// <returns></returns>        public bool GetRechargeGiftFreeRed()        {            List<GiftBagCfg> _giftCfgs = RechargeDataManager.Instance.GetGiftBagCfgs();            for (int i = 0; i < _giftCfgs.Count; i++)            {                GiftBagCfg cfg = _giftCfgs[i];                bool isUnLock = RechargeDataManager.Instance.GetGiftStateById(cfg.id);                int buyNum = RechargeDataManager.Instance.GetGiftBuyNumById(cfg.id);                bool canBuy = cfg.maxBuyNum == 0 || buyNum < cfg.maxBuyNum ? true : false;                if (isUnLock && canBuy && cfg.price == 0) return true;            }            return false;        }        /// <summary>        /// 田野调查红点        /// </summary>        /// <returns></returns>        public bool GetFieldRed()        {            List<FieldTaskCfg> _cfgs = FieldDataManager.Instance.GetTaskCfgs();            for (int i = 0; i < _cfgs.Count; i++)            {                int state = FieldDataManager.Instance.GetTaskState(_cfgs[i].id);                if (state == ConstBonusStatus.CAN_GET) return true;            }            return false;        }        /// <summary>        /// 工作室红点        /// </summary>        /// <returns></returns>        public bool GetStudioFilingRed(bool checkCurChapter = true)        {            List<StudioCfg> studioCfgs = StudioCfgArray.Instance.GetCfgsByfunId(typeof(StudioFilingView).Name);            for (int i = 0; i < studioCfgs.Count; i++)            {                if (!checkCurChapter && studioCfgs[i].id == StudioDataManager.Instance.filingChapterId) continue;                if (StudioDataManager.Instance.GetFilingRewardState(studioCfgs[i].id)) return true;            }            return false;        }        /// <summary>        /// 千山万水-图鉴红点        /// </summary>        /// <returns></returns>        public bool GetTravelGuideRed()        {            if (TravelDataManager.Instance.ListTravelAreaRewardState == null || TravelDataManager.Instance.ListTravelAreaRewardState.Count == 0) return false;            for (int i = 0; i < TravelDataManager.Instance.ListTravelAreaRewardState.Count; i++)            {                if (TravelDataManager.Instance.ListTravelAreaRewardState[i] == ConstBonusStatus.CAN_GET)                {                    return true;                }            }            return false;        }        /// <summary>        /// 千山万水-图鉴区域红点        /// </summary>        /// <param name="areaId"></param>        /// <returns></returns>        public bool GetTravelGuideAreaRed(int areaId)        {            if (TravelDataManager.Instance.ListTravelAreaRewardState == null || TravelDataManager.Instance.ListTravelAreaRewardState.Count == 0) return false;            return TravelDataManager.Instance.GetGuideRewardStateByAreaId(areaId) == ConstBonusStatus.CAN_GET;        }        /// <summary>        /// 头像-获得新头像红点        /// </summary>        /// <returns></returns>        public bool GetHeadRed()        {            return RoleInfoManager.Instance.newHeadDatas.Count > 0;        }        /// <summary>        /// 头像-获得新头像框红点        /// </summary>        /// <returns></returns>        public bool GetHeadBorderRed()        {            return RoleInfoManager.Instance.newHeadBorderDatas.Count > 0;        }    }}
 |