From 34179ffa10e510ba71522cb2bd1fd978b7fcbbe1 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 16 七月 2026 11:26:37 +0800
Subject: [PATCH] Revert "634 H5适配 获得英雄展示动态立绘的时机放到OnOpen"

---
 Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs |  119 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 98 insertions(+), 21 deletions(-)

diff --git a/Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs b/Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs
index f61d1a1..2ff812e 100644
--- a/Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs
+++ b/Main/System/GuildAtkDefBat/GuildAtkDefBatManager.cs
@@ -49,6 +49,8 @@
     public override void Init()
     {
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin;
+        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnReconnect += OnBeforePlayerDataInitializeEventOnReconnect;
+        GuildManager.Instance.EnterOrQuitGuildEvent += OnEnterOrQuitGuildEvent;
         StoreModel.Instance.RefreshBuyShopLimitEvent += OnRefreshShopLimit;
         ParseConfig();
     }
@@ -56,7 +58,20 @@
     public override void Release()
     {
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEventOnRelogin;
+        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnReconnect -= OnBeforePlayerDataInitializeEventOnReconnect;
+        GuildManager.Instance.EnterOrQuitGuildEvent -= OnEnterOrQuitGuildEvent;
         StoreModel.Instance.RefreshBuyShopLimitEvent -= OnRefreshShopLimit;
+    }
+
+    private void OnBeforePlayerDataInitializeEventOnReconnect()
+    {
+        atkDefBatLogs.Clear();
+    }
+
+    private void OnBeforePlayerDataInitializeEventOnRelogin()
+    {
+        hasClosedMainGuildAtkDefBatTip = false;
+        ResetBattleData();
     }
 
     private void OnRefreshShopLimit()
@@ -64,9 +79,15 @@
         UpdateRedpoint();
     }
 
-    private void OnBeforePlayerDataInitializeEventOnRelogin()
+    private void OnEnterOrQuitGuildEvent(bool isEnter)
     {
-        ResetBattleData();
+        if (!isEnter)
+        {
+            ResetBattleData();
+            CurrentChallengeTargetPlayerID = 0;
+            OnUpdateAtkDefBatInfoEvent?.Invoke();
+            UpdateRedpoint();
+        }
     }
 
     void ParseConfig()
@@ -209,7 +230,6 @@
         targetInfo.ServerID = sourceData.ServerID;
         targetInfo.EmblemID = sourceData.EmblemID;
         targetInfo.EmblemWord = UIHelper.ServerStringTrim(sourceData.EmblemWord);
-        targetInfo.IsDismiss = sourceData.IsDismiss;
         targetInfo.TotalStar = sourceData.TotalStar;
         targetInfo.OverState = sourceData.OverState;
         targetInfo.BatMemCount = sourceData.BatMemCount;
@@ -377,6 +397,22 @@
         return MyFamilyMembers.ContainsKey(PlayerDatas.Instance.PlayerId);
     }
 
+    private bool hasClosedMainGuildAtkDefBatTip;
+
+    public bool ShouldShowMainGuildAtkDefBatTip()
+    {
+        if (hasClosedMainGuildAtkDefBatTip)
+            return false;
+        if (!IsOpen())
+            return false;
+        return BatState == 3 && HasFamilyJoinEligibility() && HasMyJoinEligibility();
+    }
+
+    public void ClearMainGuildAtkDefBatTip()
+    {
+        hasClosedMainGuildAtkDefBatTip = true;
+    }
+
     /// <summary>
     /// 鑾峰彇鏀婚槻鎴樼殑褰撳墠鏄剧ず鐘舵�佹爣璇�
     /// </summary>
@@ -393,8 +429,8 @@
         if (BatState == 1 && MyFamilyInfo != null)
         {
             int overState = MyFamilyInfo.OverState;
-            if (overState == 1 || overState == 3) return 4;
-            if (overState == 2 || overState == 4) return 5;
+            if (overState == 1) return 4;
+            if (overState == 2) return 5;
         }
 
         return 1;
@@ -415,7 +451,7 @@
 
     /// <summary>
     /// 鑾峰彇宸辨柟鍏細鎺掑簭鍚庣殑鍙傛垬鎴愬憳鍒楄〃
-    /// 鎺掑簭瑙勫垯锛歋tar闄嶅簭 鈫� BatCnt鍗囧簭 鈫� PlayerID鍗囧簭
+    /// 杩囨护鏈垬鏂楁垚鍛橈紝鎺掑簭瑙勫垯锛歋tar闄嶅簭 鈫� BatCnt鍗囧簭 鈫� PlayerID鍗囧簭
     /// </summary>
     public List<HA525_tagSCFamilyAtkDefBatInfo.tagSCFamilyAtkDefBatMem> GetSortedFamilyMembers()
     {
@@ -423,7 +459,7 @@
         if (members == null || members.Count <= 0)
             return new List<HA525_tagSCFamilyAtkDefBatInfo.tagSCFamilyAtkDefBatMem>();
 
-        var list = members.Values.ToList();
+        var list = members.Values.Where(member => member.BatCnt > 0).ToList();
         list.Sort((a, b) =>
         {
             if (b.Star != a.Star)
@@ -733,18 +769,60 @@
     }
 
     /// <summary>
-    /// 鑾峰彇褰撳墠鎴戠殑鍔熻兘绱娲昏穬搴�
-    /// 缁熻浠庡綋澶╁紑濮嬪線鍓� prepareDayBefore 澶╃殑绱娲昏穬璐$尞涔嬪拰
+    /// 鑾峰彇鐣岄潰灞曠ず鐢ㄧ殑鍏細鏀婚槻鎴樻椿璺冨�笺��
+    /// 鍙e緞锛氭樉绀轰笅涓�娆″鎴樺悕鍗曠敓鎴愭墍浣跨敤鐨� prepareDayBefore 澶╃獥鍙c��
+    /// 鍚庣浼氬湪杩涘叆澶囨垬鏈� 0 鐐瑰垽瀹氬弬鎴樻潯浠讹紝缁熻澶囨垬鏃ュ墠 prepareDayBefore 澶┿��
+    /// 鍓嶇鎸� cycleConfig[1] 鎵句笅涓�娆″鎴樻棩锛屽啀鍊掓帹 prepareDayBefore 澶╋紱绐楀彛涓皻鏈彂鐢熺殑鏈潵鏃ユ湡鎸� 0 澶勭悊锛�
+    /// 閬垮厤 activityData 鍙湁鏄熸湡 key 鏃惰璇诲埌涓婁竴杞悓鏄熸湡鐨勬棫娲昏穬銆�
     /// </summary>
     public long GetMyActivityLevel()
     {
-        int currentWeekday = TimeUtility.GetCommonWeekday(GetZoneID());
+        int daysUntilPrepare = GetDaysUntilNextPrepareStart();
+        return GetActivityLevelBeforePrepare(daysUntilPrepare);
+    }
 
-        long total = 0;
-        for (int i = 0; i < prepareDayBefore; i++)
+    /// <summary>
+    /// 鑾峰彇璺濈涓嬩竴娆″鎴樻湡寮�濮嬭繕鏈夊嚑澶┿��
+    /// 鍙粠 cycleConfig[1] 璇诲彇澶囨垬鏈熼厤缃紝鏀寔绛栧垝鑷敱閰嶇疆澶囨垬鏄熸湡銆�
+    /// 濡傛灉浠婂ぉ灏辨槸澶囨垬鏃ワ紝涔熷彇涓嬩竴娆″鎴樻棩锛岄伩鍏嶆妸宸茶繘鍏ュ鎴樻湡鍚庣殑娲昏穬绠楀叆褰撳墠鍚嶅崟鍙e緞銆�
+    /// </summary>
+    private int GetDaysUntilNextPrepareStart()
+    {
+        int currentWeekday = TimeUtility.GetCommonWeekday(GetZoneID());
+        int[] prepareWeekdays = cycleConfig != null && cycleConfig.Length > 1 ? cycleConfig[1] : null;
+        if (prepareWeekdays.IsNullOrEmpty())
+            return 1;
+
+        int minDaysUntilPrepare = 7;
+        foreach (int prepareWeekday in prepareWeekdays)
         {
-            // (currentWeekday - i) 杞垚 1-7 鑼冨洿
-            int targetWeekday = ((currentWeekday - i - 1 + 7) % 7) + 1;
+            int daysUntilPrepare = prepareWeekday > currentWeekday
+                ? prepareWeekday - currentWeekday
+                : prepareWeekday + 7 - currentWeekday;
+
+            if (daysUntilPrepare < minDaysUntilPrepare)
+                minDaysUntilPrepare = daysUntilPrepare;
+        }
+
+        return minDaysUntilPrepare;
+    }
+
+    /// <summary>
+    /// 缁熻涓嬩竴娆″鎴樻棩鍓� prepareDayBefore 澶╃殑娲昏穬鍊笺��
+    /// offsetFromPrepare 琛ㄧず鐩爣鏃ユ湡璺濈澶囨垬寮�濮嬭繕鏈夊嚑澶╋細1=澶囨垬鍓嶄竴澶╋紝prepareDayBefore=绐楀彛鏈�鏃╀竴澶┿��
+    /// dayOffsetFromToday 澶т簬 0 琛ㄧず鐩爣鏃ユ湡鍦ㄤ粖澶╀箣鍚庯紝鏈潵娲昏穬鎸� 0锛屼笉璇诲彇 activityData銆�
+    /// </summary>
+    private long GetActivityLevelBeforePrepare(int daysUntilPrepare)
+    {
+        long total = 0;
+        int currentWeekday = TimeUtility.GetCommonWeekday(GetZoneID());
+        for (int offsetFromPrepare = prepareDayBefore; offsetFromPrepare >= 1; offsetFromPrepare--)
+        {
+            int dayOffsetFromToday = daysUntilPrepare - offsetFromPrepare;
+            if (dayOffsetFromToday > 0)
+                continue;
+
+            int targetWeekday = ((currentWeekday + dayOffsetFromToday - 1 + 7) % 7) + 1;
 
             if (activityData.TryGetValue(targetWeekday, out long contribution))
                 total += contribution;
@@ -811,8 +889,7 @@
     /// <summary>
     /// 鑾峰彇鎴戠殑鍓╀綑寮�鍚鏁�
     /// 浠呭湪浼戞垬鏈�(BatState==1)鍙紑鍚�
-    /// 瀵规墜鍏細鏈В鏁�: 鏈夊弬涓庢垬鏂�(BatCnt>0)鐨勭帺瀹跺彲寮�鍚�1娆�
-    /// 瀵规墜鍏細宸茶В鏁�: 鎵�鏈夊弬璧涙垚鍛樺潎鍙紑鍚�1娆�
+    /// 鍙傛垬涓斿凡鎴樻枟鎴愬憳鍙紑鍚�1娆�
     /// 姣忎汉鏈�澶�1娆�
     /// </summary>
     public int GetMyOpenRemainCount()
@@ -828,15 +905,15 @@
         if (!MyFamilyMembers.TryGetValue(myPlayerId, out var myMem))
             return 0;
 
+        // 鏈弬涓庢垬鏂椾笉鑳藉紑鍚�
+        if (myMem.BatCnt <= 0)
+            return 0;
+
         // 宸插紑鍚繃鍒欎笉鑳藉啀娆″紑鍚�
         if (myMem.GridNum > 0)
             return 0;
 
-        // 瀵规墜鍏細宸茶В鏁�: 鎵�鏈夊弬璧涙垚鍛樺潎鍙紑鍚�
-        if (EnemyFamilyInfo != null && EnemyFamilyInfo.IsDismiss == 1)
-            return 1;
-
-        // 瀵规墜鍏細鏈В鏁�: 鍙傛垬鎴愬憳鍧囧彲寮�鍚�1娆★紙宸插紑鍚殑琚� GridNum 杩囨护锛�
+        // 鍙傛垬涓斿凡鎴樻枟鎴愬憳鍙紑鍚�1娆★紙宸插紑鍚殑琚� GridNum 杩囨护锛�
         return 1;
     }
 

--
Gitblit v1.8.0