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