lcy
3 天以前 63f4f6c6ebab4ce0b86cb05e949abe749cf564bf
Main/System/BoneField/BoneFieldManager.cs
@@ -13,6 +13,7 @@
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent;
        DungeonManager.Instance.UpdateFBInfoChangeEvent += OnUpdateFBInfoChangeEvent;
        AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
        TimeMgr.Instance.OnDayEvent += OnDayEvent;
    }
@@ -21,16 +22,28 @@
        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();
    }
@@ -50,28 +63,31 @@
    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;
                }