using System; using System.Collections.Generic; namespace GFGGame { public class RedDotDataManager : SingletonBase { /// /// 公告 /// 是否有未读公告 /// /// public bool GetNoticeRed() { List noticeInfos = NoticeDataManager.Instance.NoticeInfos; for (int i = 0; i < noticeInfos.Count; i++) { if (noticeInfos[i].readStatus == false) return true; } return false; } /// /// 任务 /// 是否有任务奖励、任务宝箱奖励可领 /// /// public bool GetTaskRed() { Dictionary taskInfo = DailyTaskDataManager.Instance.TaskInfo; foreach (int key in taskInfo.Keys) { if (DailyTaskDataManager.Instance.GetTaskStateById(key) == ConstBonusStatus.CAN_GET) return true; } Dictionary livenessBoxInfos = DailyTaskDataManager.Instance.LivenessBoxInfos; foreach (int key in livenessBoxInfos.Keys) { if (DailyTaskDataManager.Instance.GetBoxStateById(key) == ConstBonusStatus.CAN_GET) return true; } return false; } /// /// 七天签到 /// /// public bool GetDailyLoginRed() { return ActivityDataManager.Instance.dailyLoginBonusStatus == ConstBonusStatus.CAN_GET; } /// /// 有邮件未读或未领奖励 /// /// public bool GetMailRed() { if (MailDataManager.Instance.UnreadCount > 0) return true; return false; } /// /// 套装收集奖励可领 /// /// public bool GetFieldGuideRed() { List _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; } /// /// 根据章节Id判断是否有奖励可领 /// /// 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; } /// /// 好友红点 /// /// public bool GetFriendRed() { return GetFriendApplyRed() || GetFriendGiftRed(); } /// /// 是否有好友申请 /// /// public bool GetFriendApplyRed() { return FriendDataManager.Instance.ApplyDatas.Count > 0; } /// /// 是否有好友可领体力 /// /// public bool GetFriendGiftRed() { if (FriendDataManager.Instance.Count >= GlobalCfgArray.globalCfg.maxGetPowerCount) return false; List friendInfos = FriendDataManager.Instance.FriendDatas; for (int i = 0; i < friendInfos.Count; i++) { if (friendInfos[i].takeGiftState == ConstBonusStatus.CAN_GET) { return true; } } return false; } /// /// 商城-礼包红点 /// /// public bool GetRechargeGiftFreeRed() { List _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; } /// /// 田野调查红点 /// /// public bool GetFieldRed() { List _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; } /// /// 工作室红点 /// /// public bool GetStudioFilingRed(bool checkCurChapter = true) { List 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; } /// /// 寻奇访胜 /// /// public bool GetTravelRed() { if (TravelDataManager.Instance.TravelData == null) return false; return TravelDataManager.Instance.TravelData.Status == (int)TravelGuideType.TravelComplete; } /// /// 千山万水-图鉴红点 /// /// 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; } /// /// 千山万水-图鉴区域红点 /// /// /// 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; } /// /// 头像-获得新头像红点 /// /// public bool GetHeadRed() { return RoleInfoManager.Instance.newHeadDatas.Count > 0; } /// /// 头像-获得新头像框红点 /// /// public bool GetHeadBorderRed() { return RoleInfoManager.Instance.newHeadBorderDatas.Count > 0; } /// /// 卡牌-卡牌技能升级 /// /// /// public bool GetCardSkillsRed(int cardId) { List skillCfgs = PassivitySkillCfgArray.Instance.GetCfgsBycardId(cardId); for (int i = 0; i < skillCfgs.Count; i++) { if (GetCardSkillRed(skillCfgs[i].skillId)) return true; } return false; } /// /// 卡牌-卡牌技能升级 /// /// /// public bool GetCardSkillRed(int skillId) { PassivitySkillCfg skillCfg = PassivitySkillCfgArray.Instance.GetCfg(skillId); int skillLv = SkillDataManager.Instance.GetSkillLv(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); foreach (int value in cardData.starRewardsState.Values) { if (value == ConstBonusStatus.CAN_GET) return true; } return false; } /// /// 服装养护红点 /// /// /// public bool GetClothingFosterRed(int suitId) { int index = SuitFosterDataManager.Instance.GetSuitFosterData(suitId).maintainStep; List 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; } } }