From 34afd319a510ba4b26e7e94ba6c5ec24a3b2d84d Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 31 十二月 2025 16:48:22 +0800
Subject: [PATCH] 125 战斗 buff配置查询不到时 不生成新的icon

---
 Main/System/Battle/Skill/SkillFactory.cs       |   22 ++++-
 Main/System/Battle/StoryBossBattleWin.cs       |   39 +++++----
 Main/System/Battle/UIComp/BattleHeroInfoBar.cs |   34 +++++--
 Main/System/Battle/BoneFieldBattleWin.cs       |   39 +++++----
 Main/System/Battle/Buff/BattleObjectBuffMgr.cs |    9 +
 Main/System/Battle/TianziBillboradBattleWin.cs |   39 +++++----
 6 files changed, 117 insertions(+), 65 deletions(-)

diff --git a/Main/System/Battle/BoneFieldBattleWin.cs b/Main/System/Battle/BoneFieldBattleWin.cs
index 9b5932a..d720d7b 100644
--- a/Main/System/Battle/BoneFieldBattleWin.cs
+++ b/Main/System/Battle/BoneFieldBattleWin.cs
@@ -172,7 +172,7 @@
         var buffList = new List<HB428_tagSCBuffRefresh>();
         if (null != bossBattleObject)
         {
-            buffList = bossBattleObject.buffMgr.GetBuffList();
+            buffList = bossBattleObject.buffMgr.GetBuffIconList();
         }
         RefreshBuff(buffList);
     }
@@ -244,26 +244,33 @@
 
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (buffCells.IsNullOrEmpty())
-            return;
-
-
-        for (int i = 0; i < buffCells.Count; i++)
+        if (buffCells == null)
         {
-            if (i < datas.Count)
-            {
-                buffCells[i].SetActive(true);
-                HB428_tagSCBuffRefresh buffData = datas[i];
-                buffCells[i].Init(buffData, () =>
-                {
-                    //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
-                });
-            }
-            else
+            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);
+                }
+            }
+        }
     }
 
     bool IsOpenBattleChangeTab()
diff --git a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
index e2a771b..9c9ec73 100644
--- a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
+++ b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -374,9 +374,14 @@
         return false;
     }
 
-    public List<HB428_tagSCBuffRefresh> GetBuffList()
+    public List<HB428_tagSCBuffRefresh> GetBuffIconList()
     {
-        return buffDataDict.Values.ToList();
+        List<HB428_tagSCBuffRefresh> buffList = buffDataDict.Values.Where(buff =>
+        {
+            SkillConfig skillConfig = SkillConfig.Get((int)buff.SkillID);
+            return skillConfig != null;
+        }).ToList();
+        return buffList;
     }
 
     public long GetShieldValue()
diff --git a/Main/System/Battle/Skill/SkillFactory.cs b/Main/System/Battle/Skill/SkillFactory.cs
index 043a4bc..6eaa2ae 100644
--- a/Main/System/Battle/Skill/SkillFactory.cs
+++ b/Main/System/Battle/Skill/SkillFactory.cs
@@ -78,14 +78,28 @@
 			case 15:
 				skill = new MountBuffSkill(_caster, skillConfig, vNetData, packList, battleField);
 				break;
+
+			//	鍏夌幆
+			case 10:
+				//	
+				Debug.LogError(skillConfig.SkillID + " : 瓒呭嚭浜嗘妧鑳界被鍨嬭寖鍥� 璇锋鏌ラ厤缃�, 鐩墠鏆傛椂鍙敮鎸佹敾鍑荤被鍨嬬殑鎶�鑳� " + skillConfig.SkillType);
+				break;
+
+			case 7:
+			case 9:
+			case 12:
+				Debug.LogError(skillConfig.SkillID + " : 瓒呭嚭浜嗘妧鑳界被鍨嬭寖鍥� 璇锋鏌ラ厤缃�, 鐩墠鏆傛椂鍙敮鎸佹敾鍑荤被鍨嬬殑鎶�鑳� " + skillConfig.SkillType);
+				break;
+			
+			//	鍙敜
+			case 13:
+				Debug.LogError(skillConfig.SkillID + " : 瓒呭嚭浜嗘妧鑳界被鍨嬭寖鍥� 璇锋鏌ラ厤缃�, 鐩墠鏆傛椂鍙敮鎸佹敾鍑荤被鍨嬬殑鎶�鑳� " + skillConfig.SkillType);
+				break;
+
 			default:
 				Debug.LogError(skillConfig.SkillID + " : 瓒呭嚭浜嗘妧鑳界被鍨嬭寖鍥� 璇锋鏌ラ厤缃�, 鐩墠鏆傛椂鍙敮鎸佹敾鍑荤被鍨嬬殑鎶�鑳� " + skillConfig.SkillType);
 				break;
 		}
-
-		// skill 鎸傝浇buff
-		// skill  1 2 3 4鎶�鑳�
-		// skill澶� B428 灏�
 
 		return skill;
 	}
diff --git a/Main/System/Battle/StoryBossBattleWin.cs b/Main/System/Battle/StoryBossBattleWin.cs
index ca75718..8f8d4dd 100644
--- a/Main/System/Battle/StoryBossBattleWin.cs
+++ b/Main/System/Battle/StoryBossBattleWin.cs
@@ -146,7 +146,7 @@
         var buffList = new List<HB428_tagSCBuffRefresh>();
         if (null != bossBattleObject)
         {
-            buffList = bossBattleObject.buffMgr.GetBuffList();
+            buffList = bossBattleObject.buffMgr.GetBuffIconList();
         }
         RefreshBuff(buffList);
     }
@@ -212,26 +212,33 @@
 
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (buffCells.IsNullOrEmpty())
-            return;
-
-
-        for (int i = 0; i < buffCells.Count; i++)
+        if (buffCells == null)
         {
-            if (i < datas.Count)
-            {
-                buffCells[i].SetActive(true);
-                HB428_tagSCBuffRefresh buffData = datas[i];
-                buffCells[i].Init(buffData, () =>
-                {
-                    //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
-                });
-            }
-            else
+            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);
+                }
+            }
+        }
     }
     List<TeamHero> GetTeamHeroList(List<BattleObject> teams)
     {
diff --git a/Main/System/Battle/TianziBillboradBattleWin.cs b/Main/System/Battle/TianziBillboradBattleWin.cs
index 4cbc9e2..4d1391b 100644
--- a/Main/System/Battle/TianziBillboradBattleWin.cs
+++ b/Main/System/Battle/TianziBillboradBattleWin.cs
@@ -235,7 +235,7 @@
         var buffList = new List<HB428_tagSCBuffRefresh>();
         if (null != bossBattleObject)
         {
-            buffList = bossBattleObject.buffMgr.GetBuffList();
+            buffList = bossBattleObject.buffMgr.GetBuffIconList();
         }
         RefreshBuff(buffList);
     }
@@ -294,26 +294,33 @@
 
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (buffCells.IsNullOrEmpty())
-            return;
-
-
-        for (int i = 0; i < buffCells.Count; i++)
+        if (buffCells == null)
         {
-            if (i < datas.Count)
-            {
-                buffCells[i].SetActive(true);
-                HB428_tagSCBuffRefresh buffData = datas[i];
-                buffCells[i].Init(buffData, () =>
-                {
-                    //  鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
-                });
-            }
-            else
+            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);
+                }
+            }
+        }
     }
 
     bool IsOpenBattleChangeTab()
diff --git a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
index e88285a..58a7f32 100644
--- a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
+++ b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
@@ -80,7 +80,7 @@
     {
         battleObject = _battleObject;
         heroInfoContainer.SetHeroInfo(battleObject.teamHero);
-        RefreshBuff(battleObject.buffMgr.GetBuffList());
+        RefreshBuff(battleObject.buffMgr.GetBuffIconList());
 
         if (!battleObject.IsTianziBoss())
         {
@@ -118,21 +118,33 @@
     
     public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
     {
-        if (buffCells.IsNullOrEmpty())
-            return;
-
-        for (int i = 0; i < buffCells.Count; i++)
+        if (buffCells == null)
         {
-            if (i < datas.Count)
-            {
-                buffCells[i].SetActive(true);
-                buffCells[i].Init(datas[i], OnBuffCellClicked);
-            }
-            else
+            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);
+                }
+            }
+        }
 
         // check shield buff
         long shieldValue = battleObject.buffMgr.GetShieldValue();

--
Gitblit v1.8.0