| | |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent; |
| | | DungeonManager.Instance.UpdateFBInfoChangeEvent += OnUpdateFBInfoChangeEvent; |
| | | AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; |
| | | TimeMgr.Instance.OnDayEvent += OnDayEvent; |
| | | } |
| | | |
| | |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent; |
| | | DungeonManager.Instance.UpdateFBInfoChangeEvent -= OnUpdateFBInfoChangeEvent; |
| | | AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdateEvent; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; |
| | | TimeMgr.Instance.OnDayEvent -= OnDayEvent; |
| | | } |
| | | |
| | | private void OnFuncStateChangeEvent(int obj) |
| | | { |
| | | if (obj != funcId) |
| | | return; |
| | | UpdateRedPoint(); |
| | | } |
| | | |
| | | private void OnDayEvent() |
| | | { |
| | | UpdateRedPoint(); |
| | | } |
| | | |
| | | private void OnUpdateFBInfoChangeEvent(int mapID, bool isADAddCntChange, bool isBuyAddCntChange, bool isItemAddCntChange) |
| | | { |
| | | int dataMapID = DataMapID; |
| | | if (mapID != dataMapID) |
| | | return; |
| | | if (isADAddCntChange) |
| | | return; |
| | | UpdateRedPoint(); |
| | | } |
| | |
| | | public void UpdateRedPoint() |
| | | { |
| | | parentRedpoint.state = RedPointState.None; |
| | | // 有扫荡次数:免费+金币 |
| | | if (TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount)) |
| | | if (!FuncOpen.Instance.IsFuncOpen(funcId)) |
| | | return; |
| | | if (!DungeonManager.Instance.TryGetFBInfoByMapID(DataMapID, out var fbInfo)) |
| | | return; |
| | | bool isHasNextLineID = IsHasNextLineID(fbInfo); |
| | | int nowPassLineID = GetNowPassLineID(fbInfo); |
| | | DungeonConfig.TryGetDungeonID(DataMapID, nowPassLineID, out int dungeonID); |
| | | if (!DungeonConfig.HasKey(dungeonID)) |
| | | return; |
| | | DungeonConfig dungeonConfig = DungeonConfig.Get(dungeonID); |
| | | bool isLvOk = PlayerDatas.Instance.baseData.LV >= dungeonConfig.LVLimitMin; |
| | | long myFightPower = PlayerDatas.Instance.baseData.FightPower; |
| | | if (myFightPower >= dungeonConfig.FightPower) |
| | | { |
| | | bool isSweepCountOk = showrealRemainSweepCount > 0; |
| | | if (isSweepCountOk) |
| | | if (isLvOk && isHasNextLineID) |
| | | { |
| | | parentRedpoint.state = RedPointState.Simple; |
| | | } |
| | | } |
| | | //可挑战 战力小于boss |
| | | if (DungeonManager.Instance.TryGetFBInfoByMapID(DataMapID, out var fbInfo)) |
| | | else |
| | | { |
| | | bool isHasNextLineID = IsHasNextLineID(fbInfo); |
| | | int nowPassLineID = GetNowPassLineID(fbInfo); |
| | | |
| | | DungeonConfig.TryGetDungeonID(DataMapID, nowPassLineID, out int dungeonID); |
| | | if (DungeonConfig.HasKey(dungeonID)) |
| | | if (TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount)) |
| | | { |
| | | DungeonConfig dungeonConfig = DungeonConfig.Get(dungeonID); |
| | | bool isLvOk = PlayerDatas.Instance.baseData.LV >= dungeonConfig.LVLimitMin; |
| | | long myFightPower = PlayerDatas.Instance.baseData.FightPower; |
| | | if (isLvOk && isHasNextLineID && myFightPower > dungeonConfig.FightPower) |
| | | bool isSweepCountOk = showrealRemainSweepCount > 0; |
| | | if (isSweepCountOk) |
| | | { |
| | | parentRedpoint.state = RedPointState.Simple; |
| | | } |