lcy
2026-01-22 ceabc7dde8514ed6bcfadfb5fe9fb37c45cc370e
Main/System/BoneField/AdsManager.cs
@@ -10,6 +10,8 @@
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEvent;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += UpdateRedpoint;
        DungeonManager.Instance.UpdateFBInfoListEvent += OnUpdateFBInfoChangeEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
        var keys = ADAwardConfig.GetKeys();
        for (int i = 0; i < keys.Count; i++)
@@ -27,11 +29,33 @@
    {
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEvent;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= UpdateRedpoint;
        DungeonManager.Instance.UpdateFBInfoListEvent += OnUpdateFBInfoChangeEvent;
        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
    }
    private void OnFuncStateChangeEvent(int funcId)
    {
        switch (funcId)
        {
            case (int)FuncOpenEnum.BoneBattle:
                UpdateBoneAdRedPoint();
                break;
        }
    }
    public void OnBeforePlayerDataInitializeEvent()
    {
        adsInfoDict.Clear();
    }
    private void OnUpdateFBInfoChangeEvent(int mapID)
    {
        switch (mapID)
        {
            case 30010:
                UpdateBoneAdRedPoint();
                break;
        }
    }
    void SendGetReward(int ADID)
@@ -114,7 +138,7 @@
        foreach (var key in redPointDict.Keys)
        {
            redPointDict[key].state = RedPointState.None;
            var config = ADAwardConfig.Get(key);
            if (!FuncOpen.Instance.IsFuncOpen(config.FuncID))
            {
@@ -122,9 +146,33 @@
            }
            if (GetADCntByADID(key) < config.ADCntMax)
            {
                redPointDict[key].state = RedPointState.Simple;
                switch (key)
                {
                    //白骨
                    case 1:
                        UpdateBoneAdRedPoint();
                        break;
                    default:
                        redPointDict[key].state = RedPointState.Simple;
                        break;
                }
            }
        }
    }
    private void UpdateBoneAdRedPoint()
    {
        int key = 1;
        if (!ADAwardConfig.HasKey(key))
            return;
        var config = ADAwardConfig.Get(key);
        if (!FuncOpen.Instance.IsFuncOpen(config.FuncID))
            return;
        if (redPointDict.IsNullOrEmpty() || !redPointDict.ContainsKey(key))
            return;
        bool isNoChallenge = BoneFieldManager.Instance.IsNoChallenge();
        redPointDict[key].state = isNoChallenge ? RedPointState.None : RedPointState.Simple;
    }
}