From 5e99ffcf9a1c7eff485e780e2815d9f5d60e2b3c Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 06 十一月 2025 19:17:45 +0800
Subject: [PATCH] 164 天子的考验 修复切出战斗后再回来从头播放血条和掉箱子的问题

---
 Main/System/Battle/BattleField/TianziBillboradBattleField.cs |    2 
 Main/System/TianziBillborad/TianziDamageBar.cs               |   44 +++++++++++++--------
 Main/System/TianziBillborad/TianziBillboradManager.cs        |   15 +++++++
 3 files changed, 42 insertions(+), 19 deletions(-)

diff --git a/Main/System/Battle/BattleField/TianziBillboradBattleField.cs b/Main/System/Battle/BattleField/TianziBillboradBattleField.cs
index 2f39395..68a89f7 100644
--- a/Main/System/Battle/BattleField/TianziBillboradBattleField.cs
+++ b/Main/System/Battle/BattleField/TianziBillboradBattleField.cs
@@ -69,7 +69,7 @@
     {
         AutoFightModel.Instance.isPause = false;
         Destroy();
-
+        TianziBillboradManager.Instance.ClearBar();
         if (UIManager.Instance.IsOpened<TianziBillboradBattleWin>())
         {
             UIManager.Instance.CloseWindow<TianziBillboradBattleWin>();
diff --git a/Main/System/TianziBillborad/TianziBillboradManager.cs b/Main/System/TianziBillborad/TianziBillboradManager.cs
index 37fe6d1..c77a3c9 100644
--- a/Main/System/TianziBillborad/TianziBillboradManager.cs
+++ b/Main/System/TianziBillborad/TianziBillboradManager.cs
@@ -12,6 +12,11 @@
     public ulong historyHurt;    //鏈�冮獙鍘嗗彶鏈�澶т激瀹�
     public ulong todayHurt;    //鏈�冮獙浠婃棩鏈�澶т激瀹�
     public bool isSkipSweepTip = false;
+
+    public ulong loaclNowHunt = 0;
+    public ulong loaclAllHunt = 0;
+    public ulong loaclMaxHp = 0;
+    public int loaclHpNum = 0;
     public event Action UpdateTianziKYInfoExent;
     public Dictionary<int, int[][]> rankAwards;// 姣忔棩鎺掕濂栧姳 {"鍚嶆":[[鐗╁搧ID, 涓暟,鏄惁鎷嶅搧], ...], ...} 閰嶇疆鐨勫悕娆ey锛岃嚜鍔ㄦ寜灏忎簬绛変簬瀵瑰簲鍚嶆缁欏鍔�
     public Redpoint parentRedpoint = new Redpoint(MainRedDot.MainChallengeRedpoint, MainRedDot.TianziBillboradRepoint);
@@ -38,13 +43,21 @@
         UpdateTianziKYInfoExent -= OnUpdateTianziKYInfoExent;
     }
 
+    public void ClearBar()
+    {
+        loaclNowHunt = 0;
+        loaclAllHunt = 0;
+        loaclMaxHp = 0;
+        loaclHpNum = 0;
+    }
+
     private void OnBeforePlayerDataInitializeEvent()
     {
         nowTabIndex = 0;
         todayLineID = 0;
         historyHurt = 0;
         todayHurt = 0;
-
+        ClearBar();
         isSkipSweepTip = false;
     }
 
diff --git a/Main/System/TianziBillborad/TianziDamageBar.cs b/Main/System/TianziBillborad/TianziDamageBar.cs
index 7ef5fc8..73ee3b0 100644
--- a/Main/System/TianziBillborad/TianziDamageBar.cs
+++ b/Main/System/TianziBillborad/TianziDamageBar.cs
@@ -66,11 +66,24 @@
         nowHpNum = 1; // 榛樿浠庣1鏉¤寮�濮�
         if (!TianziConfig.TryGetTianziConfigByBossIDAndHPNum(bossId, nowHpNum, out TianziConfig tianziConfig))
             return;
-        m_IntensifySlider.stage = 0;
-        m_IntensifySlider.ResetStage();
-        nowHunt = 0; // 鍒濆琛�閲忎负0
-        nowHpMax = (ulong)tianziConfig.MaxHP;
-        m_BoxCount.text = Language.Get("TianziBillborad07", 0);
+        if (TianziBillboradManager.Instance.loaclHpNum > 0)
+        {
+            nowHunt = TianziBillboradManager.Instance.loaclNowHunt;
+            nowHpMax = TianziBillboradManager.Instance.loaclMaxHp;
+            nowHpNum = TianziBillboradManager.Instance.loaclHpNum;
+            m_BoxCount.text = Language.Get("TianziBillborad07", Mathf.Max(nowHpNum - 1, 0));
+        }
+        else
+        {
+            m_IntensifySlider.stage = 0;
+            m_IntensifySlider.ResetStage();
+            nowHunt = 0; // 鍒濆琛�閲忎负0
+            nowHpMax = (ulong)tianziConfig.MaxHP;
+            m_BoxCount.text = Language.Get("TianziBillborad07", 0);
+        }
+
+
+
         // 闄ら浂淇濇姢
         float percentage = 0f;
         if (nowHpMax > 0)
@@ -176,10 +189,7 @@
         //Debug.Log($"TianziDamageBar end nowHpNum {nowHpNum} nowHunt {nowHunt} nowHpMax{nowHpMax} 鏃堕棿: {DateTime.Now:HH:mm:ss}");
     }
 
-    ulong loaclNowHunt = 0;
-    ulong loaclAllHunt = 0;
-    ulong loaclMaxHp = 0;
-    int loaclHpNum = 0;
+
     public void Show(BattleDmgInfo _damageInfo)
     {
         if (_damageInfo == null)
@@ -191,12 +201,12 @@
         for (int i = 0; i < damages.Count; i++)
         {
             ulong hunt = (ulong)damages[i];
-            loaclAllHunt += hunt;
-            if (!TianziConfig.TryGetTianziConfigByBossIDAndDamage(bossId, loaclAllHunt, out TianziConfig tianziConfig))
+            TianziBillboradManager.Instance.loaclAllHunt += hunt;
+            if (!TianziConfig.TryGetTianziConfigByBossIDAndDamage(bossId, TianziBillboradManager.Instance.loaclAllHunt, out TianziConfig tianziConfig))
                 return;
-            loaclMaxHp = (ulong)tianziConfig.MaxHP;
-            loaclHpNum = tianziConfig.HPNum;
-            loaclNowHunt = TianziConfig.GetCurrentHPDamage(bossId, loaclAllHunt);
+            TianziBillboradManager.Instance.loaclMaxHp = (ulong)tianziConfig.MaxHP;
+            TianziBillboradManager.Instance.loaclHpNum = tianziConfig.HPNum;
+            TianziBillboradManager.Instance.loaclNowHunt = TianziConfig.GetCurrentHPDamage(bossId, TianziBillboradManager.Instance.loaclAllHunt);
 
             // if (loaclMaxHp < nowHpMax || loaclHpNum < nowHpNum)
             // {
@@ -209,9 +219,9 @@
             //     Debug.LogWarning($"TianziDamageBar hunt {hunt} loaclAllHunt {loaclAllHunt} loaclHpNum {loaclHpNum} loaclNowHunt {loaclNowHunt} nowHpNum {nowHpNum} nowHunt {nowHunt} nowHpMax{nowHpMax} 鏃堕棿: {DateTime.Now:HH:mm:ss}");
             //     return;
             // }
-            nowHunt = loaclNowHunt;
-            nowHpMax = loaclMaxHp;
-            nowHpNum = loaclHpNum;
+            nowHunt = TianziBillboradManager.Instance.loaclNowHunt;
+            nowHpMax = TianziBillboradManager.Instance.loaclMaxHp;
+            nowHpNum = TianziBillboradManager.Instance.loaclHpNum;
             // 闄ら浂淇濇姢
             float percentage = 0f;
             if (nowHpMax > 0)

--
Gitblit v1.8.0