From 22cc6e17b98ad9750fdc9f2a880200064b1f2596 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 15 一月 2026 19:46:13 +0800
Subject: [PATCH] 0312 广告统一加红点

---
 Main/System/BoneField/AdsManager.cs  |   35 +++++++++++++++++++++++++++++++++++
 Main/Config/Configs/ADAwardConfig.cs |   11 ++++++++++-
 2 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/Main/Config/Configs/ADAwardConfig.cs b/Main/Config/Configs/ADAwardConfig.cs
index 2ff9a2c..dfdbe0d 100644
--- a/Main/Config/Configs/ADAwardConfig.cs
+++ b/Main/Config/Configs/ADAwardConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           Wednesday, November 19, 2025
+//    [  Date ]:           2026骞�1鏈�15鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -21,6 +21,9 @@
 	public int[][] ADAwardItemList;
 	public int ADAwardType;
 	public int ADAwardValue;
+	public int FuncID;
+	public int RedpointID;
+	public int ParentRedpointID;
 
     public override int LoadKey(string _key)
     {
@@ -41,6 +44,12 @@
 			int.TryParse(tables[3],out ADAwardType); 
 
 			int.TryParse(tables[4],out ADAwardValue); 
+
+			int.TryParse(tables[5],out FuncID); 
+
+			int.TryParse(tables[6],out RedpointID); 
+
+			int.TryParse(tables[7],out ParentRedpointID); 
         }
         catch (Exception exception)
         {
diff --git a/Main/System/BoneField/AdsManager.cs b/Main/System/BoneField/AdsManager.cs
index 90036af..262527e 100644
--- a/Main/System/BoneField/AdsManager.cs
+++ b/Main/System/BoneField/AdsManager.cs
@@ -5,14 +5,28 @@
     //<骞垮憡ID,浠婃棩宸查鍙栧箍鍛婂鍔辨鏁�>
     private Dictionary<int, int> adsInfoDict = new Dictionary<int, int>();
     public event Action<int, int, int> OnAdsInfoListUpdateEvent;//ADID type value
+    public Dictionary<int, Redpoint> redPointDict = new Dictionary<int, Redpoint>();
     public override void Init()
     {
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEvent;
+        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += UpdateRedpoint;
+
+        var keys = ADAwardConfig.GetKeys();
+        for (int i = 0; i < keys.Count; i++)
+        {
+            var config = ADAwardConfig.Get(keys[i]);
+            if (config.RedpointID == 0)
+            {
+                continue;
+            }
+            redPointDict[keys[i]] = new Redpoint(config.ParentRedpointID, config.RedpointID);
+        }
     }
 
     public override void Release()
     {
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEvent;
+        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= UpdateRedpoint;
     }
 
     public void OnBeforePlayerDataInitializeEvent()
@@ -89,6 +103,27 @@
             var value = aDAwardConfig.ADAwardValue;
             var type = aDAwardConfig.ADAwardType;
             OnAdsInfoListUpdateEvent?.Invoke(item.ADID, type, value);
+
+            UpdateRedpoint();
+
+        }
+    }
+
+    void UpdateRedpoint()
+    {
+        foreach (var key in redPointDict.Keys)
+        {
+            redPointDict[key].state = RedPointState.None;
+            
+            var config = ADAwardConfig.Get(key);
+            if (!FuncOpen.Instance.IsFuncOpen(config.FuncID))
+            {
+                continue;
+            }
+            if (GetADCntByADID(key) < config.ADCntMax)
+            {
+                redPointDict[key].state = RedPointState.Simple;
+            }
         }
     }
 }

--
Gitblit v1.8.0