From 6faba902086330e9c2c49948b10e5aeecb893bcd Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 26 九月 2025 17:02:40 +0800
Subject: [PATCH] 125 战斗 取消行动包的设定 修复行动莫名结束的bug

---
 Main/System/Battle/Skill/SkillBase.cs |   62 ++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 6 deletions(-)

diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index 49f7c3c..232a5ea 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -36,6 +36,8 @@
 
     public int fromSkillId;
 
+	public bool isPlay = false;
+
     public SkillBase(BattleObject _caster, SkillConfig _skillCfg, HB427_tagSCUseSkill vNetData, List<GameNetPackBasic> _packList, BattleField _battleField = null)
 	{
 		caster = _caster;
@@ -48,13 +50,12 @@
 		battleField = _battleField;
 		packList = _packList;
 
-		
+
 
 	}
 
 	public virtual void Run()
 	{
-
 		if (null != skillEffect)
 		{
 			if (skillEffect.IsFinished())
@@ -66,6 +67,7 @@
 			{
 				skillEffect.Run();
 			}
+			return;
 		}
 
 		if (otherSkillAction != null)
@@ -79,6 +81,7 @@
 			{
 				otherSkillAction.Run();
 			}
+			return;
 		}
 	}
 
@@ -289,6 +292,7 @@
 		// OnMiddleFrameEnd 涓憞缁撴潫
 		// OnFinalFrameStart 鍚庢憞寮�濮�
 		// OnFinalFrameEnd 鍚庢憞缁撴潫
+
 		return caster.motionBase.PlaySkillAnimation(skillConfig, this, onComplete);
 	}
 
@@ -302,6 +306,8 @@
 			);
 
 		skillEffect.Play(OnHitTargets);
+		isPlay = true;
+
 	}
 
 	//	鎶�鑳藉墠鎽囧抚缁撴潫
@@ -604,11 +610,22 @@
 	}
 	public virtual bool IsFinished()
 	{
+		if (!isPlay)
+		{
+			return false;
+		}
+
 		if (skillEffect != null)
 		{
 			if (!skillEffect.IsFinished())
 			{
 				return false;
+			}
+			else
+			{
+				skillEffect = null;
+				OnSkillFinished();	
+				return false;		
 			}
 		}
 
@@ -618,7 +635,14 @@
 			{
 				return false;
 			}
+			else
+			{
+				otherSkillAction = null;
+				OnSkillFinished();
+				return false;
+			}
 		}
+
 
 		if (isFinished && moveFinished)
 		{
@@ -632,7 +656,13 @@
 			}
 			battleField.battleRootNode.skillMaskNode.SetActive(false);
 
-			return true;
+			if (packList.Count > 0)
+			{
+				OnSkillFinished();
+				return false;
+			}
+
+			return packList.Count <= 0;
 		}
 		else
 		{
@@ -645,6 +675,7 @@
 		skillEffect?.ForceFinished();
 		isFinished = true;
 		moveFinished = true;
+		isPlay = true;
 
 		while (packList.Count > 0)
 		{
@@ -657,7 +688,7 @@
 				{
 					BattleDebug.LogError("other skill casting " + combinePack.startTag.Tag);
 					otherSkillAction = combinePack.CreateSkillAction();
-
+					otherSkillAction.fromSkillId = skillConfig.SkillID;
 					//	寮哄埗缁撴潫鍏朵粬鎶�鑳�
 					otherSkillAction.ForceFinish();
 					return;
@@ -666,7 +697,6 @@
 			else if (pack is CustomB421ActionPack actionPack)
 			{
 				actionPack.Distribute();
-				return;
 			}
 			PackageRegedit.Distribute(pack);
 		}
@@ -679,6 +709,25 @@
 			if (!skillEffect.IsFinished())
 			{
 				return;
+			}
+			else
+			{
+				skillEffect = null;
+				OnSkillFinished();
+			}
+			
+		}
+
+		if (otherSkillAction != null)
+		{
+			if (!otherSkillAction.IsFinished())
+			{
+				return;
+			}
+			else
+			{
+				otherSkillAction = null;
+				OnSkillFinished();
 			}
 		}
 
@@ -701,8 +750,9 @@
 			else if (pack is CustomB421ActionPack actionPack)
 			{
 				actionPack.Distribute();
-				return;
 			}
+
+			// Debug.LogError("Distribute pack " + pack.GetType().ToString());
 			PackageRegedit.Distribute(pack);
 		}
 

--
Gitblit v1.8.0