From 82e8a3f6ff7aaec06d1b60463a545a8bb031f546 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 10 六月 2026 18:15:39 +0800
Subject: [PATCH] 588 公会攻防战 修复若干bug

---
 Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs b/Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs
index 18c3de8..f61d1a1 100644
--- a/Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs
+++ b/Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs
@@ -476,7 +476,7 @@
     public void ClearMainRedpoint()
     {
         hasShowedMainRedpoint = true;
-        mainRedpoint.state = RedPointState.None;
+        UpdateRedpoint();
     }
 
     private bool HasShopFreeItem()
@@ -761,8 +761,8 @@
     /// <summary>瀹濆簱濂栧姳绫诲瀷ID (瀵瑰簲CA504鐨凴ewardType)</summary>
     public const byte TREASURE_REWARD_TYPE = 11;
 
-    /// <summary>缂撳瓨鏍煎瓙寮�鍚褰�: Key=鏍煎瓙缂栧彿(1~n), Value=AwardID</summary>
-    public Dictionary<int, int> treasureGridRecords = new Dictionary<int, int>();
+    /// <summary>缂撳瓨鏍煎瓙寮�鍚褰�: Key=鏍煎瓙缂栧彿(1~n), Value=寮�鍚褰�</summary>
+    public Dictionary<int, GuildAtkDefBatTreasureRecord> treasureGridRecords = new Dictionary<int, GuildAtkDefBatTreasureRecord>();
 
     /// <summary>鏍囪瀹濆簱绐楀彛鏄惁鎵撳紑,鐢ㄤ簬鏀跺埌A525鏃惰嚜鍔ㄥ埛鏂�</summary>
     public bool isTreasureWinOpen = false;
@@ -787,17 +787,22 @@
         {
             if (mem.GridNum > 0)
             {
-                treasureGridRecords[mem.GridNum] = mem.AwardID;
+                treasureGridRecords[mem.GridNum] = new GuildAtkDefBatTreasureRecord
+                {
+                    AwardID = mem.AwardID,
+                    PlayerName = UIHelper.ServerStringTrim(mem.Name),
+                };
             }
         }
 
         if (isTreasureWinOpen)
         {
             int openGrid = pendingOpenGridIndex;
-            if (openGrid > 0 && treasureGridRecords.TryGetValue(openGrid, out var awardID))
+            GuildAtkDefBatTreasureRecord treasureRecord;
+            if (openGrid > 0 && treasureGridRecords.TryGetValue(openGrid, out treasureRecord))
             {
                 pendingOpenGridIndex = 0;
-                OnTreasureGridOpenEvent?.Invoke(openGrid, awardID);
+                OnTreasureGridOpenEvent?.Invoke(openGrid, treasureRecord.AwardID);
             }
             OnTreasureDataUpdateEvent?.Invoke();
         }
@@ -1010,3 +1015,9 @@
     }
     #endregion
 }
+
+public class GuildAtkDefBatTreasureRecord
+{
+    public int AwardID;
+    public string PlayerName;
+}

--
Gitblit v1.8.0