From b8f554f03a6114db353736741eda63bdd6c63854 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 22 四月 2026 10:06:52 +0800
Subject: [PATCH] 125 战斗 战斗代码整理 修复卡死问题

---
 Main/System/Battle/BattleField/BattleField.cs |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/Main/System/Battle/BattleField/BattleField.cs b/Main/System/Battle/BattleField/BattleField.cs
index f53eaba..39cdac7 100644
--- a/Main/System/Battle/BattleField/BattleField.cs
+++ b/Main/System/Battle/BattleField/BattleField.cs
@@ -107,6 +107,21 @@
 
         if (castingSkillDict.TryGetValue(objID, out skillBases))
         {
+#if UNITY_EDITOR
+            //  璇婃柇锛氬悓涓�涓� caster 宸茬粡鍦� casting锛岃鏄庡墠涓�涓妧鑳芥病姝g‘ Remove銆�
+            //  鎵撳嵃鐜板瓨鎶�鑳界殑 skillId / StateFlags锛屾柟渚垮畾浣嶆硠婕忕偣銆�
+            var sb = new System.Text.StringBuilder();
+            sb.Append("BattleField.AddCastingSkill 鍙戠幇鍚� caster 宸叉湁 ").Append(skillBases.Count).Append(" 涓� casting 鎶�鑳芥湭娓呯悊锛歰bjID=").Append(objID);
+            sb.Append("  鏂板叆=skillId=").Append(skill?.skillConfig?.SkillID ?? 0);
+            for (int i = 0; i < skillBases.Count; i++)
+            {
+                var s = skillBases[i];
+                sb.Append("\n    [").Append(i).Append("] skillId=")
+                  .Append(s?.skillConfig?.SkillID ?? 0)
+                  .Append(" StateFlags=").Append(s == null ? "null" : s.StateFlagsForDebug.ToString());
+            }
+            BattleDebug.LogError(sb.ToString());
+#endif
             skillBases.Add(skill);
         }
         else
@@ -123,6 +138,13 @@
 
         if (castingSkillDict.TryGetValue(objID, out skillBases))
         {
+#if UNITY_EDITOR
+            bool existed = skillBases.Contains(skillBase);
+            if (!existed)
+            {
+                BattleDebug.LogError($"BattleField.RemoveCastingSkill 鐩爣涓嶅湪 casting 鍒楄〃锛歰bjID={objID} skillId={skillBase?.skillConfig?.SkillID ?? 0}");
+            }
+#endif
             skillBases.Remove(skillBase);
 
             if (skillBases.Count == 0)
@@ -130,6 +152,12 @@
                 castingSkillDict.Remove(objID);
             }
         }
+#if UNITY_EDITOR
+        else
+        {
+            BattleDebug.LogError($"BattleField.RemoveCastingSkill objID 涓嶅湪瀛楀吀閲岋細objID={objID} skillId={skillBase?.skillConfig?.SkillID ?? 0}");
+        }
+#endif
     }
 
     public bool IsCastingSkill(long objID)

--
Gitblit v1.8.0