From 45d3d873a7740886fa09f35c9fea2830f4563072 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 11:04:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into h5version

---
 Main/System/Battle/Motion/MotionBase.cs |   40 ++++++++++++++++++++--------------------
 1 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/Main/System/Battle/Motion/MotionBase.cs b/Main/System/Battle/Motion/MotionBase.cs
index d29a15d..ce84ec0 100644
--- a/Main/System/Battle/Motion/MotionBase.cs
+++ b/Main/System/Battle/Motion/MotionBase.cs
@@ -160,7 +160,7 @@
         return true;
     }
 
-    public Spine.TrackEntry PlaySkillAnimation(SkillConfig skillConfig, SkillBase skillBase, bool isSubSkill, Action onComplete = null)
+    public Spine.TrackEntry PlaySkillAnimation(SkillConfig skillConfig, SkillSkinConfig skillSkinConfig, SkillBase skillBase, bool isSubSkill, Action onComplete = null)
     {
         if (skillConfig == null)
         {
@@ -174,35 +174,35 @@
         }
 
         // 濡傛灉娌℃湁鍔ㄧ敾鍚嶇О锛屼娇鐢ㄦ棤鍔ㄧ敾妯″紡
-        if (string.IsNullOrEmpty(skillConfig.SkillMotionName))
+        if (string.IsNullOrEmpty(skillSkinConfig.SkillMotionName))
         {
-            PlaySkillNoAnim(skillConfig, skillBase, onComplete, isSubSkill);
+            PlaySkillNoAnim(skillConfig, skillSkinConfig, skillBase, onComplete, isSubSkill);
             return null;
         }
 
-        Spine.Animation targetAnim = FindAnim(skillConfig.SkillMotionName);
+        Spine.Animation targetAnim = FindAnim(skillSkinConfig.SkillMotionName);
         if (targetAnim == null)
         {
             skillBase.ForceFinished();
             return null;
         }
 
-        return ExecuteSkillAnim(skillConfig, skillBase, onComplete, targetAnim, true, isSubSkill);
+        return ExecuteSkillAnim(skillConfig, skillSkinConfig, skillBase, onComplete, targetAnim, true, isSubSkill);
     }
 
 
-    private Spine.TrackEntry ExecuteSkillAnim(SkillConfig skillConfig, SkillBase skillBase, Action onComplete,
+    private Spine.TrackEntry ExecuteSkillAnim(SkillConfig skillConfig, SkillSkinConfig skillSkinConfig, SkillBase skillBase, Action onComplete,
         Spine.Animation targetAnim, bool hasAnim, bool isSubSkill)
     {
 
-        int loopCount = skillConfig.LoopCount;
+        int loopCount = skillSkinConfig.LoopCount;
         //  鍓嶆憞
-        int startupFrames = skillConfig.StartupFrames;
+        int startupFrames = skillSkinConfig.StartupFrames;
         //  涓憞
-        int[] activeFrames = skillConfig.ActiveFrames ?? new int[0];
+        int[] activeFrames = skillSkinConfig.ActiveFrames ?? new int[0];
         int frameCount = activeFrames.Length;
         //  鍚庢憞
-        float recoveryFrame = skillConfig.RecoveryFrames;
+        float recoveryFrame = skillSkinConfig.RecoveryFrames;
 
         // 濡傛灉鍓嶄腑鍚庢憞娌℃湁閰嶇疆 閭d箞榛樿缁欎竴涓�1 2 3鐨勫抚鏁�
         if (startupFrames <= 0 && frameCount == 0 && recoveryFrame <= 0f)
@@ -227,7 +227,7 @@
             {
                 // 杞ㄩ亾姹犺�楀敖鎴栨湭鍒濆鍖栵紝鍥為��鍒版棤鍔ㄧ敾妯″紡
                 Debug.LogWarning($"瀛愭妧鑳借建閬撴睜宸叉弧鎴栨湭鍒濆鍖栵紝鎶�鑳絳skillConfig.SkillID}浣跨敤鏃犲姩鐢绘ā寮�");
-                PlaySkillNoAnim(skillConfig, skillBase, onComplete, isSubSkill);
+                PlaySkillNoAnim(skillConfig, skillSkinConfig, skillBase, onComplete, isSubSkill);
                 return null;
             }
         }
@@ -244,7 +244,7 @@
                 {
                     if (skillBase != null && !skillBase.IsFinished())
                     {
-                        PlaySkillAnimation(skillConfig, skillBase, isSubSkill, onComplete);
+                        PlaySkillAnimation(skillConfig, skillSkinConfig, skillBase, isSubSkill, onComplete);
                     }
                 });
                 return null;
@@ -405,13 +405,13 @@
             }
 
             // 鍚勯樁娈靛洖璋冿紙鍘熸湁閫昏緫锛�
-            if (!beginTriggered && currentFrame >= skillConfig.StartupFrames && currentLoop == 0)
+            if (!beginTriggered && currentFrame >= skillSkinConfig.StartupFrames && currentLoop == 0)
             {
                 beginTriggered = true;
                 skillBase.OnStartSkillFrameEnd();
             }
 
-            if (!middleStarted && currentFrame >= skillConfig.StartupFrames && currentLoop <= loopCount)
+            if (!middleStarted && currentFrame >= skillSkinConfig.StartupFrames && currentLoop <= loopCount)
             {
                 middleStarted = true;
                 skillBase.OnMiddleFrameStart(currentLoop);
@@ -440,12 +440,12 @@
                     {
                         if (hasAnim)
                         {
-                            skillTrack.TrackTime = skillConfig.StartupFrames / BattleConst.skillMotionFps;
+                            skillTrack.TrackTime = skillSkinConfig.StartupFrames / BattleConst.skillMotionFps;
                         }
                         else
                         {
                             // 涓轰笅涓� loop 閲嶇疆 startTime锛屽苟涓旀洿鏂� pausedAccumulatedAtStart锛堜互淇濇寔鍩虹嚎锛�
-                            startTime = Time.time - (skillConfig.StartupFrames / BattleConst.skillMotionFps);
+                            startTime = Time.time - (skillSkinConfig.StartupFrames / BattleConst.skillMotionFps);
                             pausedAccumulatedAtStart = pausedAccumulated;
                         }
                     }
@@ -538,8 +538,8 @@
         return targetAnim;
     }
 
-    private void PlaySkillNoAnim(SkillConfig skillConfig, SkillBase skillBase, Action onComplete, bool isSubSkill) => 
-        ExecuteSkillAnim(skillConfig, skillBase, onComplete, null, false, isSubSkill);
+    private void PlaySkillNoAnim(SkillConfig skillConfig, SkillSkinConfig skillSkinConfig, SkillBase skillBase, Action onComplete, bool isSubSkill) => 
+        ExecuteSkillAnim(skillConfig, skillSkinConfig, skillBase, onComplete, null, false, isSubSkill);
 
     protected virtual void SetupAnimationHandlers()
     {
@@ -748,9 +748,9 @@
         }
     }
 
-    public bool CanCastSkill(SkillConfig skillConfig)
+    public bool CanCastSkill(SkillSkinConfig skillSkinConfig)
     {
-        return !playingSkillWithAnim || string.IsNullOrEmpty(skillConfig.SkillMotionName);
+        return !playingSkillWithAnim || string.IsNullOrEmpty(skillSkinConfig.SkillMotionName);
     }
 
     public bool CanStartDeath()

--
Gitblit v1.8.0