From ceabc7dde8514ed6bcfadfb5fe9fb37c45cc370e Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 22 一月 2026 20:43:06 +0800
Subject: [PATCH] 136 白骨盈野-客户端 重构红点逻辑
---
Main/System/BoneField/AdsManager.cs | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 50 insertions(+), 2 deletions(-)
diff --git a/Main/System/BoneField/AdsManager.cs b/Main/System/BoneField/AdsManager.cs
index 262527e..cdeecb9 100644
--- a/Main/System/BoneField/AdsManager.cs
+++ b/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;
+ }
}
--
Gitblit v1.8.0