| | |
| | | |
| | | public readonly int DataMapID = 30010; // 白骨盈野(战锤秘境) |
| | | public readonly int MinStartLineID = 1; // funcLineID从1开始 |
| | | public readonly int funcId = 9; //功能ID |
| | | public Redpoint parentRedpoint = new Redpoint(MainRedDot.MainChallengeRedpoint, MainRedDot.BoneFieldRepoint); |
| | | public override void Init() |
| | | { |
| | | DungeonManager.Instance.UpdateFBInfoListEvent += OnUpdateFBInfoChangeEvent; |
| | | AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; |
| | | PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh; |
| | | TimeMgr.Instance.OnDayEvent += OnDayEvent; |
| | | } |
| | | |
| | |
| | | DungeonManager.Instance.UpdateFBInfoListEvent -= OnUpdateFBInfoChangeEvent; |
| | | AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdateEvent; |
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; |
| | | PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh; |
| | | TimeMgr.Instance.OnDayEvent -= OnDayEvent; |
| | | } |
| | | |
| | | private void OnFuncStateChangeEvent(int obj) |
| | | { |
| | | if (obj != funcId) |
| | | if (obj != (int)FuncOpenEnum.BoneBattle) |
| | | return; |
| | | UpdateRedPoint(); |
| | | } |
| | |
| | | UpdateRedPoint(); |
| | | } |
| | | |
| | | private void OnPlayerDataRefresh(PlayerDataType type) |
| | | { |
| | | if (type == PlayerDataType.FightPower) |
| | | { |
| | | UpdateRedPoint(); |
| | | } |
| | | else if (type == PlayerDataType.LV) |
| | | { |
| | | UpdateRedPoint(); |
| | | } |
| | | } |
| | | |
| | | public void UpdateRedPoint() |
| | | { |
| | | parentRedpoint.state = RedPointState.None; |
| | | if (!FuncOpen.Instance.IsFuncOpen(funcId)) |
| | | if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BoneBattle)) |
| | | return; |
| | | |
| | | bool isShowChallengeRed = IsShowChallengeRed(); |
| | | if (isShowChallengeRed) |
| | | { |
| | | parentRedpoint.state = RedPointState.Simple; |
| | | return; |
| | | } |
| | | |
| | | bool isShowSweepRed = IsShowSweepRed(); |
| | | if (isShowSweepRed) |
| | | { |
| | | parentRedpoint.state = RedPointState.Simple; |
| | | return; |
| | | } |
| | | |
| | | } |
| | | public bool IsShowChallengeRed() |
| | | { |
| | | if (!DungeonManager.Instance.TryGetFBInfoByMapID(DataMapID, out var fbInfo)) |
| | | return; |
| | | return false; |
| | | bool isHasNextLineID = IsHasNextLineID(fbInfo); |
| | | int nowPassLineID = GetNowPassLineID(fbInfo); |
| | | DungeonConfig.TryGetDungeonID(DataMapID, nowPassLineID, out int dungeonID); |
| | | if (!DungeonConfig.HasKey(dungeonID)) |
| | | return; |
| | | return false; |
| | | DungeonConfig dungeonConfig = DungeonConfig.Get(dungeonID); |
| | | bool isLvOk = PlayerDatas.Instance.baseData.LV >= dungeonConfig.LVLimitMin; |
| | | long myFightPower = PlayerDatas.Instance.baseData.FightPower; |
| | | if (myFightPower >= dungeonConfig.FightPower) |
| | | return isLvOk && isHasNextLineID && myFightPower >= dungeonConfig.FightPower; |
| | | } |
| | | |
| | | public bool IsShowSweepRed() |
| | | { |
| | | bool isNoChallenge = IsNoChallenge(); |
| | | if (isNoChallenge) |
| | | return false; |
| | | if (TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount)) |
| | | { |
| | | if (isLvOk && isHasNextLineID) |
| | | bool isSweepCountOk = showrealRemainSweepCount > 0; |
| | | if (isSweepCountOk) |
| | | { |
| | | parentRedpoint.state = RedPointState.Simple; |
| | | return true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount)) |
| | | { |
| | | bool isSweepCountOk = showrealRemainSweepCount > 0; |
| | | if (isSweepCountOk) |
| | | { |
| | | parentRedpoint.state = RedPointState.Simple; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | public bool IsNoChallenge() |
| | | { |
| | | if (!DungeonManager.Instance.TryGetFBInfoByMapID(DataMapID, out var fbInfo)) |
| | | return true; |
| | | return fbInfo.PassLineID <= 0; |
| | | } |
| | | |
| | | public bool IsHasNextLineID(FBInfo fBInfo) |