From a38e02687f52e6d81e6fb6c1dcbf85ee76938325 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 24 十二月 2025 14:23:43 +0800
Subject: [PATCH] 125 战斗 修复因为自己技能造成自身死亡的卡死问题

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

diff --git a/Main/System/Battle/BattleField/BattleField.cs b/Main/System/Battle/BattleField/BattleField.cs
index 772a929..4728ca5 100644
--- a/Main/System/Battle/BattleField/BattleField.cs
+++ b/Main/System/Battle/BattleField/BattleField.cs
@@ -73,6 +73,8 @@
     // 璁板綍姝e湪澶勭悊姝讳骸鐨勮鑹睮D锛岄槻姝㈤噸澶嶅鐞�
     private HashSet<uint> processingDeathObjIds = new HashSet<uint>();
 
+    private Dictionary<long, List<SkillBase>> castingSkillDict = new Dictionary<long, List<SkillBase>>();
+
     public BattleSoundManager soundManager;
 
 #if UNITY_EDITOR
@@ -97,6 +99,42 @@
         processingDeathObjIds = new HashSet<uint>();
     }
 
+    public void AddCastingSkill(long objID, SkillBase skill)
+    {
+        List<SkillBase> skillBases = null;
+
+        if (castingSkillDict.TryGetValue(objID, out skillBases))
+        {
+            skillBases.Add(skill);
+        }
+        else
+        {
+            skillBases = new List<SkillBase>();
+            skillBases.Add(skill);
+            castingSkillDict.Add(objID, skillBases);
+        }
+    }
+
+    public void RemoveCastingSkill(long objID, SkillBase skillBase)
+    {
+        List<SkillBase> skillBases = null;
+
+        if (castingSkillDict.TryGetValue(objID, out skillBases))
+        {
+            skillBases.Remove(skillBase);
+
+            if (skillBases.Count == 0)
+            {
+                castingSkillDict.Remove(objID);
+            }
+        }
+    }
+
+    public bool IsCastingSkill(long objID)
+    {
+        return castingSkillDict.ContainsKey(objID);
+    }
+
     public virtual void Init(int _MapID, int _FuncLineID, JsonData _extendData,
         List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte turnMax)
     {

--
Gitblit v1.8.0