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