From 39001a600fcae2bcf27c225df8752d75fb92fef4 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 31 十月 2025 11:18:26 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/System/Battle/BattleField/RecordActions/SkillRecordAction.cs |   80 +++++++++++++++------------------------
 1 files changed, 31 insertions(+), 49 deletions(-)

diff --git a/Main/System/Battle/BattleField/RecordActions/SkillRecordAction.cs b/Main/System/Battle/BattleField/RecordActions/SkillRecordAction.cs
index 80e4092..142b60f 100644
--- a/Main/System/Battle/BattleField/RecordActions/SkillRecordAction.cs
+++ b/Main/System/Battle/BattleField/RecordActions/SkillRecordAction.cs
@@ -3,69 +3,49 @@
 
 public class SkillRecordAction : RecordAction
 {
-	public int SkillId;
-
-	public SkillConfig skillConfig;
-
 	protected SkillBase skillBase;
 
-	protected List<Dictionary<int, List<int>>> damageList = new List<Dictionary<int, List<int>>>();
-	
 	private bool isCast = false;
 
+	public int fromSkillId = 0;
 
-	public SkillRecordAction(int _SkillId, BattleField _battleField, BattleObject _battleObj)
-		: base(RecordActionType.Skill, _battleField, _battleObj)
+	public SkillRecordAction(BattleField _battleField, BattleObject _caster, HB427_tagSCUseSkill vNetData, List<GameNetPackBasic> packList)
+		: base(RecordActionType.Skill, _battleField, _caster)
 	{
-		SkillId = _SkillId;
+		// Debug.LogError("_caster == null : " + (_caster == null));
 
-		skillConfig = SkillConfig.Get(SkillId);
-
-		if (null == skillConfig)
-		{
-			Debug.LogError("鎵句笉鍒版妧鑳介厤缃� " + SkillId);
-		}
-
-		skillBase = SkillFactory.CreateSkill(skillConfig);
-
-		// _battleObj浣跨敤浜哠killId鐨勬妧鑳�
-		damageList = skillBase.GetDamageList(battleObject, battleField);
-	}
-
-	public SkillRecordAction(int _SkillId, BattleField _battleField, BattleObject _battleObj, List<Dictionary<int, List<int>>> _damageList)
-		: base(RecordActionType.Skill, _battleField, _battleObj)
-	{
-		SkillId = _SkillId;
-
-		skillConfig = SkillConfig.Get(SkillId);
-
-		if (null == skillConfig)
-		{
-			Debug.LogError("鎵句笉鍒版妧鑳介厤缃� " + SkillId);
-		}
-
-		skillBase = SkillFactory.CreateSkill(skillConfig);
-
-		damageList = _damageList;
-		// _battleObj浣跨敤浜哠killId鐨勬妧鑳�
+		skillBase = SkillFactory.CreateSkill(_caster, vNetData, packList, _battleField);
 	}
 
 	public override bool IsFinished()
 	{
+		if (null == skillBase)
+		{
+			return true;
+		}
 		return skillBase.IsFinished();
 	}
 
-
-    public override void Run()
+    public override void ForceFinish()
     {
-        base.Run();
+		//  璁剧疆缁撴潫flag 璁板緱娓呯┖motionBase閲岀殑浜嬩欢
+		if (null != skillBase)
+		{
+			skillBase.ForceFinished();
+		}
+        base.ForceFinish();
+    }
+
+	public override void Run()
+	{
+		base.Run();
 
 		if (null == skillBase)
 		{
 			return;
 		}
 
-		if (!skillBase.IsFinished())
+		if (isCast && !skillBase.IsFinished())
 		{
 			skillBase.Run();
 		}
@@ -73,15 +53,17 @@
 		if (isCast)
 			return;
 
-		if (damageList.Count > 0)
+		if (fromSkillId > 0)
 		{
-			skillBase.Cast(battleObject, battleField, damageList);
-		}
-		else
-		{
-			skillBase.ForceFinished();
+			BattleDebug.LogError("cast skill from skill : " + fromSkillId);
 		}
 
+		// Debug.LogError("cast skill id is " + skillBase.skillConfig.SkillID);
+
+		skillBase.fromSkillId = fromSkillId;
+
+		skillBase.Cast();
+
 		isCast = true;
-    }
+	}
 }
\ No newline at end of file

--
Gitblit v1.8.0