| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 | using System.Collections.Generic;using ET;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()        {            //TODO            // Dictionary<int, TaskInfo> taskInfo = TaskDataManager.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.sevenDayLoginBonusStatus == 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 >= FriendDataManager.Instance.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 = ShopDataManager.Instance.GetGiftBagCfgs();            // for (int i = 0; i < _giftCfgs.Count; i++)            // {            //     GiftBagCfg cfg = _giftCfgs[i];            //     bool isUnLock = ShopDataManager.Instance.GetShopGoodsStateById(cfg.id);            //     int buyNum = ShopDataManager.Instance.GetGoodsBuyNumById(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 GetTravelRed()        {            if (TravelDataManager.Instance.TravelData == null) return false;            return TravelDataManager.Instance.TravelData.Status == (int)TravelGuideType.TravelComplete;        }        /// <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;        }        /// <summary>        /// 卡牌-卡牌技能升级        /// </summary>        /// <param name="cardId"></param>        /// <returns></returns>        public bool GetCardSkillsRed(int cardId)        {            List<PassivitySkillCfg> skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId);            for (int i = 0; i < skillCfgs.Count; i++)            {                if (GetCardSkillRed(skillCfgs[i].skillId)) return true;            }            return false;        }        /// <summary>        /// 卡牌-卡牌技能升级        /// </summary>        /// <param name="skillId"></param>        /// <returns></returns>        public bool GetCardSkillRed(int skillId)        {            PassivitySkillCfg skillCfg = PassivitySkillCfgArray.Instance.GetCfg(skillId);            int skillLv = SkillDataManager.Instance.GetCardSkillLv(skillCfg.cardId, skillId);            PassivitySkillLvlCfg skillLvlCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv, skillId);            PassivitySkillLvlCfg nextSkillLvlCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv + 1, skillId);            if (nextSkillLvlCfg == null || skillLvlCfg.materiarsArr.Length == 0) return false;            long itemHas = ItemDataManager.GetItemNum(skillLvlCfg.materiarsArr[0][0]);            int itemNeed = skillLvlCfg.materiarsArr[0][1];            long costHas = ItemDataManager.GetItemNum(skillLvlCfg.costID);            int costNeed = skillLvlCfg.costNum;            return itemHas >= itemNeed && costHas >= costNeed;        }        //卡牌-卡牌升星奖励状态        public bool GetCardStarReward(int cardId)        {            CardData cardData = CardDataManager.GetCardDataById(cardId);            List<CardStarCfg> cardStarCfgs = CardStarCfgArray.Instance.GetCfgsBycardId(cardId);            for (int i = 0; i < cardStarCfgs.Count; i++)            {                if (cardStarCfgs[i].rewardsArr.Length > 0 && cardData.starRewardsState.ContainsKey(cardStarCfgs[i].starLvl) && cardData.starRewardsState[cardStarCfgs[i].starLvl] == ConstBonusStatus.CAN_GET) return true;            }            return false;        }        /// <summary>        /// 服装养护红点        /// </summary>        /// <param name="suitId"></param>        /// <returns></returns>        public bool GetClothingFosterRed(int suitId)        {            int index = SuitFosterDataManager.Instance.GetSuitFosterData(suitId).maintainStep;            List<SuitFosterCfg> fosterCfgs = SuitFosterCfgArray.Instance.GetCfgsBysuitId(suitId);            if (index >= fosterCfgs.Count) return false;            if (!DressUpMenuSuitDataManager.CheckHaveSuit(suitId)) return false;            SuitFosterCfg fosterCfg = fosterCfgs[index];            if (fosterCfg.materialsArr.Length == 0) return false;            long itemHas = ItemDataManager.GetItemNum(fosterCfg.materialsArr[0][0]);            int itemNeed = fosterCfg.materialsArr[0][1];            long costHas = ItemDataManager.GetItemNum(fosterCfg.costId);            int costNeed = fosterCfg.costNum;            return itemHas >= itemNeed && costHas >= costNeed;        }        //商店-会员中心        public bool GetChargeAddUpReward()        {            VipCfg[] vipCfgs = VipCfgArray.Instance.dataArray;            for (int i = 1; i < vipCfgs.Length; i++)            {                bool isGet = MathHelper.isBitSet(GameGlobal.myNumericComponent.GetAsInt(NumericType.VipGetStatus), vipCfgs[i].id);                bool isWeekGet = MathHelper.isBitSet(GameGlobal.myNumericComponent.GetAsInt(NumericType.VipWeekGetStatus), vipCfgs[i].id);                if ((!isGet || isWeekGet) && RoleDataManager.vipLv >= vipCfgs[i].id) return true;            }            return false;        }    }}
 |