From 85a6c1055ece4aca394490e162d3a28acd2898b1 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期六, 07 二月 2026 11:10:47 +0800
Subject: [PATCH] 68 【设置】设置战斗飘字屏蔽问题

---
 Main/System/Battle/WarlordPavilionBattleWin.cs          |   28 -----
 Main/System/Battle/StoryBossBattleWin.cs                |   28 -----
 Main/System/Battle/UIComp/BattleBuffCell.cs             |    8 
 Main/System/Battle/UIComp/BattleHeroInfoBar.cs          |   93 ++++++++++++------
 Main/System/Battle/BoneFieldBattleWin.cs                |   28 -----
 Main/System/Battle/UIComp/BattleFloatingUIController.cs |    2 
 Main/System/Battle/BaseBattleWin.cs                     |   42 ++++++++
 Main/System/Battle/TianziBillboradBattleWin.cs          |   28 -----
 8 files changed, 111 insertions(+), 146 deletions(-)

diff --git a/Main/System/Battle/BaseBattleWin.cs b/Main/System/Battle/BaseBattleWin.cs
index 2caf743..8a7e672 100644
--- a/Main/System/Battle/BaseBattleWin.cs
+++ b/Main/System/Battle/BaseBattleWin.cs
@@ -59,6 +59,48 @@
         }
     }
 
+    protected void RefreshBuffCells(List<BattleBuffCell> cells, List<HB428_tagSCBuffRefresh> datas)
+    {
+        if (datas == null)
+        {
+            for (int i = 0; i < cells.Count; i++)
+            {
+                cells[i].SetActive(false);
+            }
+        }
+        else
+        {
+            if (battleField.battleSwitch.BuffIcon)
+            {
+                for (int i = 0; i < cells.Count; i++)
+                {
+                    var cell = cells[i];
+                    if (i < datas.Count)
+                    {
+                        cell.SetActive(true);
+                        HB428_tagSCBuffRefresh buffData = datas[i];
+                        SkillConfig skillConfig = SkillConfig.Get((int)buffData.SkillID);
+                        cell.Init(buffData, () =>
+                        {
+                            //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
+                        });
+                    }
+                    else
+                    {
+                        cell.SetActive(false);
+                    }
+                }
+            }
+            else
+            {
+                for (int i = 0; i < cells.Count; i++)
+                {
+                    cells[i].SetActive(false);
+                }
+            }
+
+        }
+    }
     protected virtual void BindMingge()
     {
         if (minggeObj == null)
diff --git a/Main/System/Battle/BoneFieldBattleWin.cs b/Main/System/Battle/BoneFieldBattleWin.cs
index 9d5df31..0a0c529 100644
--- a/Main/System/Battle/BoneFieldBattleWin.cs
+++ b/Main/System/Battle/BoneFieldBattleWin.cs
@@ -251,33 +251,7 @@
 
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (buffCells == null)
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                buffCells[i].SetActive(false);
-            }
-        }
-        else
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                if (i < datas.Count)
-                {
-                    buffCells[i].SetActive(true);
-                    HB428_tagSCBuffRefresh buffData = datas[i];
-                    SkillConfig skillConfig = SkillConfig.Get((int)buffData.SkillID);
-                    buffCells[i].Init(buffData, () =>
-                    {
-                        //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
-                    });
-                }
-                else
-                {
-                    buffCells[i].SetActive(false);
-                }
-            }
-        }
+        RefreshBuffCells(buffCells, datas);
     }
 
     bool IsOpenBattleChangeTab()
diff --git a/Main/System/Battle/StoryBossBattleWin.cs b/Main/System/Battle/StoryBossBattleWin.cs
index 7092850..b24b89f 100644
--- a/Main/System/Battle/StoryBossBattleWin.cs
+++ b/Main/System/Battle/StoryBossBattleWin.cs
@@ -231,33 +231,7 @@
 
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (buffCells == null)
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                buffCells[i].SetActive(false);
-            }
-        }
-        else
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                if (i < datas.Count)
-                {
-                    buffCells[i].SetActive(true);
-                    HB428_tagSCBuffRefresh buffData = datas[i];
-                    SkillConfig skillConfig = SkillConfig.Get((int)buffData.SkillID);
-                    buffCells[i].Init(buffData, () =>
-                    {
-                        //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
-                    });
-                }
-                else
-                {
-                    buffCells[i].SetActive(false);
-                }
-            }
-        }
+        RefreshBuffCells(buffCells, datas);
     }
     List<TeamHero> GetTeamHeroList(List<BattleObject> teams)
     {
diff --git a/Main/System/Battle/TianziBillboradBattleWin.cs b/Main/System/Battle/TianziBillboradBattleWin.cs
index 0b28f1f..8983e62 100644
--- a/Main/System/Battle/TianziBillboradBattleWin.cs
+++ b/Main/System/Battle/TianziBillboradBattleWin.cs
@@ -301,33 +301,7 @@
 
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (buffCells == null)
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                buffCells[i].SetActive(false);
-            }
-        }
-        else
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                if (i < datas.Count)
-                {
-                    buffCells[i].SetActive(true);
-                    HB428_tagSCBuffRefresh buffData = datas[i];
-                    SkillConfig skillConfig = SkillConfig.Get((int)buffData.SkillID);
-                    buffCells[i].Init(buffData, () =>
-                    {
-                        //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
-                    });
-                }
-                else
-                {
-                    buffCells[i].SetActive(false);
-                }
-            }
-        }
+        RefreshBuffCells(buffCells, datas);
     }
 
     bool IsOpenBattleChangeTab()
diff --git a/Main/System/Battle/UIComp/BattleBuffCell.cs b/Main/System/Battle/UIComp/BattleBuffCell.cs
index c5052ca..5376f81 100644
--- a/Main/System/Battle/UIComp/BattleBuffCell.cs
+++ b/Main/System/Battle/UIComp/BattleBuffCell.cs
@@ -44,10 +44,10 @@
         }
     }
 
-    void Awake()
-    {
-        LoadPrefab();
-    }
+    // void Start()
+    // {
+    //     LoadPrefab();
+    // }
 
     GameObject cellContainer;
 
diff --git a/Main/System/Battle/UIComp/BattleFloatingUIController.cs b/Main/System/Battle/UIComp/BattleFloatingUIController.cs
index bc1f775..56d474d 100644
--- a/Main/System/Battle/UIComp/BattleFloatingUIController.cs
+++ b/Main/System/Battle/UIComp/BattleFloatingUIController.cs
@@ -141,7 +141,7 @@
     /// </summary>
     public void Run()
     {
-        if (!gameObject.activeSelf || !ValidateConfig()) 
+        if (!ValidateConfig()) 
             return;
 
         // 妫�鏌ユ槸鍚﹀畬鎴�
diff --git a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
index 41d9323..6872a06 100644
--- a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
+++ b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
@@ -137,33 +137,7 @@
     
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (battleObject.battleField.battleSwitch.BuffIcon && datas != null && datas.Count > 0)
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                if (i < datas.Count)
-                {
-                    buffCells[i].SetActive(true);
-                    HB428_tagSCBuffRefresh buffData = datas[i];
-                    SkillConfig skillConfig = SkillConfig.Get((int)buffData.SkillID);
-                    buffCells[i].Init(buffData, () =>
-                    {
-                        //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
-                    });
-                }
-                else
-                {
-                    buffCells[i].SetActive(false);
-                }
-            }
-        }
-        else
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                buffCells[i].SetActive(false);
-            }
-        }
+        RefreshBuffCells(buffCells, datas);
 
         // check shield buff
         var buffMgr = battleObject.GetBuffMgr();
@@ -193,7 +167,49 @@
         // Debug.LogError($"[BattleHeroInfoBar.RefreshBuff] 璁剧疆鎶ょ浘 - curHp: {curHp}, shieldValue: {shieldValue}, maxHp: {maxHp}, shield1鍓�: {oldShield1Value}, shield1鍚�: {shield1Value}, shield2鍓�: {oldShield2Value}, shield2鍚�: {shield2Value}");
     }
     
-    
+    protected void RefreshBuffCells(List<BattleBuffCell> cells, List<HB428_tagSCBuffRefresh> datas)
+    {
+        if (datas == null)
+        {
+            for (int i = 0; i < cells.Count; i++)
+            {
+                cells[i].SetActive(false);
+            }
+        }
+        else
+        {
+            if (battleObject.battleField.battleSwitch.BuffIcon)
+            {
+                for (int i = 0; i < cells.Count; i++)
+                {
+                    var cell = cells[i];
+                    if (i < datas.Count)
+                    {
+                        cell.SetActive(true);
+                        HB428_tagSCBuffRefresh buffData = datas[i];
+                        SkillConfig skillConfig = SkillConfig.Get((int)buffData.SkillID);
+                        cell.Init(buffData, () =>
+                        {
+                            //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
+                        });
+                    }
+                    else
+                    {
+                        cell.SetActive(false);
+                    }
+                }
+            }
+            else
+            {
+                for (int i = 0; i < cells.Count; i++)
+                {
+                    cells[i].SetActive(false);
+                }
+            }
+
+        }
+    }
+
     /// <summary>
     /// 娣诲姞椋樺瓧鍒伴槦鍒�(闈炰激瀹抽瀛�)
     /// </summary>
@@ -216,9 +232,21 @@
     /// </summary>
     public void ShowTips(TipsInfo tipsInfo)
     {
-        if (battleObject.battleField.battleSwitch.NonDamageTips)
+        //  BUFF椋樺瓧
+        if (tipsInfo.useBuffColor)
         {
-            messages.Add(tipsInfo);
+            if (battleObject.battleField.battleSwitch.BuffAction)
+            {
+                messages.Add(tipsInfo);
+            }
+        }
+        else
+        {
+            //  闈炰激瀹抽瀛�
+            if (battleObject.battleField.battleSwitch.NonDamageTips)
+            {
+                messages.Add(tipsInfo);
+            }
         }
     }
     
@@ -812,10 +840,9 @@
     {
         messages.Clear();
         
-        foreach (var tip in tipsList)
+        for (int i = tipsList.Count - 1; i >= 0; i--)
         {
-            tip.OnFinish = null;
-            GameObject.DestroyImmediate(tip.gameObject);
+            RemoveTips(tipsList[i]);
         }
         
         tipsList.Clear();
diff --git a/Main/System/Battle/WarlordPavilionBattleWin.cs b/Main/System/Battle/WarlordPavilionBattleWin.cs
index fd81a7c..54d2d7b 100644
--- a/Main/System/Battle/WarlordPavilionBattleWin.cs
+++ b/Main/System/Battle/WarlordPavilionBattleWin.cs
@@ -254,33 +254,7 @@
 
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (buffCells == null)
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                buffCells[i].SetActive(false);
-            }
-        }
-        else
-        {
-            for (int i = 0; i < buffCells.Count; i++)
-            {
-                if (i < datas.Count)
-                {
-                    buffCells[i].SetActive(true);
-                    HB428_tagSCBuffRefresh buffData = datas[i];
-                    SkillConfig skillConfig = SkillConfig.Get((int)buffData.SkillID);
-                    buffCells[i].Init(buffData, () =>
-                    {
-                        //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
-                    });
-                }
-                else
-                {
-                    buffCells[i].SetActive(false);
-                }
-            }
-        }
+        RefreshBuffCells(buffCells, datas);
     }
 
     bool IsOpenBattleChangeTab()

--
Gitblit v1.8.0