From 4e41975b0c62fa10ab571b0c9ad0690754762b6a Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 30 十月 2025 16:45:07 +0800
Subject: [PATCH] 125 战斗 飘字更新

---
 Main/System/Battle/Buff/BattleObjectBuffMgr.cs |   71 ++++++++++++++++++++---------------
 1 files changed, 40 insertions(+), 31 deletions(-)

diff --git a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
index da4099d..9e4f183 100644
--- a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
+++ b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -94,23 +94,24 @@
     //  鍒犻櫎buff
     public void RemoveBuff(HB429_tagSCBuffDel vNetData)
     {
-        HB428_tagSCBuffRefresh buffData = null;
-
-        bool isRemove = false;
-
-        if (buffDataDict.TryGetValue(vNetData.BuffID, out buffData))
-        {
-            isRemove = true;
-            buffDataDict.Remove(vNetData.BuffID);
-        }
-
-        if (!isRemove)
-        {
-            return;
-        }
-
+        var tempvNetData = vNetData;
         BuffUnmountAction buffRemoveAction = new BuffUnmountAction(battleObject.battleField, new List<HB429_tagSCBuffDel>() { vNetData }, () =>
         {
+            HB428_tagSCBuffRefresh buffData = null;
+
+            bool isRemove = false;
+
+            if (buffDataDict.TryGetValue(tempvNetData.BuffID, out buffData))
+            {
+                isRemove = true;
+                buffDataDict.Remove(tempvNetData.BuffID);
+            }
+
+            if (!isRemove)
+            {
+                return;
+            }
+
             bool isRemoveEffect = false;
 
             int remainCnt = -1;
@@ -143,7 +144,7 @@
 
                 if (buffGroupStateDict[BattleConst.HardControlGroup.ToString()].Contains(skillConfig.BuffState))
                 {
-                    BattleDebug.LogError("[BattleObjectBuffMgr]绉婚櫎瀵硅薄 " + battleObject.ObjID + " 鐨刡uff id " + vNetData.BuffID + " BuffState is " + skillConfig.BuffState + " 鏄惁鍒犻櫎浜嗗瓧鍏稿唴鐨勫唴瀹� " + isRemove.ToString() + " 鏄惁鍒犻櫎浜嗙壒鏁� " + isRemoveEffect.ToString() + " pack uid 鏄� " + vNetData.packUID);
+                    BattleDebug.LogError("[BattleObjectBuffMgr]绉婚櫎瀵硅薄 " + battleObject.ObjID + " 鐨刡uff id " + tempvNetData.BuffID + " BuffState is " + skillConfig.BuffState + " 鏄惁鍒犻櫎浜嗗瓧鍏稿唴鐨勫唴瀹� " + isRemove.ToString() + " 鏄惁鍒犻櫎浜嗙壒鏁� " + isRemoveEffect.ToString() + " pack uid 鏄� " + vNetData.packUID);
                 }
             }
 
@@ -173,21 +174,21 @@
             return;
         }
 
-        // bool isNew = false;
-        if (buffDataDict.ContainsKey(vNetData.BuffID))
-        {
-            buffDataDict[vNetData.BuffID] = vNetData;
-        }
-        else
-        {
-            // isNew = true;
-            buffDataDict.Add(vNetData.BuffID, vNetData);
-        }
+        var tempvNetData = vNetData;
 
-        if (vNetData.IsAdd != 0)
+        if (tempvNetData.IsAdd != 0)
         {
-            BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, new List<HB428_tagSCBuffRefresh>() { vNetData }, () =>
+            BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, new List<HB428_tagSCBuffRefresh>() { tempvNetData }, () =>
             {
+                if (buffDataDict.ContainsKey(tempvNetData.BuffID))
+                {
+                    buffDataDict[tempvNetData.BuffID] = tempvNetData;
+                }
+                else
+                {
+                    buffDataDict.Add(tempvNetData.BuffID, tempvNetData);
+                }
+
                 if (battleObject.IsDead())
                 {
                     return;
@@ -198,7 +199,7 @@
                     //  宸茬粡瀛樺湪鐩稿悓鐨刡uff鐗规晥
                     if (buffEffectDict.TryGetValue(skillConfig.BuffEffect, out KeyValuePair<BattleEffectPlayer, HashSet<uint>> pair))
                     {
-                        pair.Value.Add(vNetData.BuffID);
+                        pair.Value.Add(tempvNetData.BuffID);
                     }
                     else
                     {
@@ -209,7 +210,7 @@
                         effect.BindBone(battleObject.motionBase.skeletonAnim, effect.effectConfig.nodeName);
 
                         HashSet<uint> buffIdSet = new HashSet<uint>();
-                        buffIdSet.Add(vNetData.BuffID);
+                        buffIdSet.Add(tempvNetData.BuffID);
                         buffEffectDict.Add(skillConfig.BuffEffect, new KeyValuePair<BattleEffectPlayer, HashSet<uint>>(effect, buffIdSet));
                     }
 
@@ -217,7 +218,7 @@
 
                 if (skillConfig != null && buffGroupStateDict[BattleConst.HardControlGroup.ToString()].Contains(skillConfig.BuffState))
                 {
-                    BattleDebug.LogError("[BattleObjectBuffMgr]娣诲姞瀵硅薄 " + battleObject.ObjID + " 鐨刡uff id " + vNetData.BuffID + " pack uid 鏄� " + vNetData.packUID + " BuffState is " + skillConfig.BuffState);
+                    BattleDebug.LogError("[BattleObjectBuffMgr]娣诲姞瀵硅薄 " + battleObject.ObjID + " 鐨刡uff id " + tempvNetData.BuffID + " pack uid 鏄� " + tempvNetData.packUID + " BuffState is " + skillConfig.BuffState);
                 }
 
                 OnBuffChanged();
@@ -233,6 +234,14 @@
         }
         else
         {
+            if (buffDataDict.ContainsKey(tempvNetData.BuffID))
+            {
+                buffDataDict[tempvNetData.BuffID] = tempvNetData;
+            }
+            else
+            {
+                buffDataDict.Add(tempvNetData.BuffID, tempvNetData);
+            }
             //  宸茬粡瀛樺湪鐨刡uff 鍒锋柊
             OnBuffChanged();
         }

--
Gitblit v1.8.0