From 83ff2cfc367d3227449fa8414a25541374929ecb Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 29 一月 2026 15:43:50 +0800
Subject: [PATCH] 125 战斗 命格复活支持

---
 Main/System/Battle/UIComp/BattleHeroInfoBar.cs |   29 +++++++++++++++++++----------
 1 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
index 0d68a2c..4f7371b 100644
--- a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
+++ b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
@@ -80,20 +80,28 @@
     public void SetBattleObject(BattleObject _battleObject)
     {
         battleObject = _battleObject;
-        heroInfoContainer.SetHeroInfo(battleObject.teamHero);
+        if (battleObject is HeroBattleObject heroBattleObject)
+        {
+            heroInfoContainer.SetHeroInfo(heroBattleObject.teamHero);
+        }
         CleanupTips();
-        RefreshBuff(battleObject.buffMgr.GetBuffIconList());
+        
+        var buffMgr = battleObject.GetBuffMgr();
+        if (buffMgr != null) // 鍛芥牸涓嶆湁 buff
+        {
+            RefreshBuff(buffMgr.GetBuffIconList());
+        }
 
         if (!battleObject.IsTianziBoss())
         {
-            UpdateHP(battleObject.teamHero.curHp, battleObject.teamHero.curHp, battleObject.teamHero.maxHp, false);
+            UpdateHP(battleObject.GetCurHp(), battleObject.GetCurHp(), battleObject.GetMaxHp(), false);
         }
 
-        UpdateXP(battleObject.teamHero.rage, battleObject.teamHero.rage, 100, false);
+        UpdateXP(battleObject.GetRage(), battleObject.GetRage(), 100, false);
 
-        long shieldValue = battleObject.buffMgr.GetShieldValue();
-        long curHp = battleObject.teamHero.curHp;
-        long maxHp = battleObject.teamHero.maxHp;
+        long shieldValue = buffMgr != null ? buffMgr.GetShieldValue() : 0; // 鍛芥牸娌℃湁鎶ょ浘
+        long curHp = battleObject.GetCurHp();
+        long maxHp = battleObject.GetMaxHp();
         
         // 璁板綍璁剧疆鍓嶇殑鎶ょ浘鍊�
         float oldShield1Value = sliderShield1.value;
@@ -149,9 +157,10 @@
         }
 
         // check shield buff
-        long shieldValue = battleObject.buffMgr.GetShieldValue();
-        long curHp = battleObject.teamHero.curHp;
-        long maxHp = battleObject.teamHero.maxHp;
+        var buffMgr = battleObject.GetBuffMgr();
+        long shieldValue = buffMgr != null ? buffMgr.GetShieldValue() : 0; // 鍛芥牸娌℃湁鎶ょ浘
+        long curHp = battleObject.GetCurHp();
+        long maxHp = battleObject.GetMaxHp();
         
         // 璁板綍璁剧疆鍓嶇殑鎶ょ浘鍊�
         float oldShield1Value = sliderShield1.value;

--
Gitblit v1.8.0