From cf4c463b222d57486671191652a6bf06a49349c0 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期二, 28 十月 2025 18:54:51 +0800
Subject: [PATCH] 125 战斗  buff控制与解控的表现

---
 Main/System/Battle/Motion/MotionBase.cs |   28 +++++++++++++++++++++++++---
 1 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/Main/System/Battle/Motion/MotionBase.cs b/Main/System/Battle/Motion/MotionBase.cs
index bcd142e..818808b 100644
--- a/Main/System/Battle/Motion/MotionBase.cs
+++ b/Main/System/Battle/Motion/MotionBase.cs
@@ -26,6 +26,8 @@
     private SkeletonIllusionShadow illusionShadow;
     private bool playingSkillAnim = false;
 
+    private bool isUnderControl = false;
+
     private float pauseTime = 0f;
 
     private float resumeTime = 0f;
@@ -121,7 +123,6 @@
     private Spine.TrackEntry ExecuteSkillAnim(SkillConfig skillConfig, SkillBase skillBase, Action onComplete,
         Spine.Animation targetAnim, bool hasAnim, bool isSubSkill)
     {
-
         bool isPangdeSkill = 1003020 == skillConfig.SkillID;
 
         int loopCount = skillConfig.LoopCount;
@@ -305,7 +306,7 @@
     protected virtual void OnAnimationComplete(Spine.TrackEntry trackEntry)
     {
         if (trackEntry?.Animation?.Name == null) return;
-        
+
         string animName = trackEntry.Animation.Name.ToLower();
 
         if (AttackMotionList.Contains(animName))
@@ -318,7 +319,7 @@
             OnHitAnimationComplete?.Invoke();
             PlayAnimation(MotionName.idle, true);
         }
-        
+
         if (trackEntryCallbacks.TryGetValue(trackEntry, out var callback))
         {
             trackEntryCallbacks.Remove(trackEntry);
@@ -326,6 +327,27 @@
         }
     }
 
+    public void SetControledAnimation()
+    {
+        //  鍙楀埌纭帶鐨勬椂鍊欙紝淇濇寔鍙楀嚮鍔ㄧ敾鐨勭涓夊抚锛岀洿鍒版帶鍒剁粨鏉� 鎴栬�呮渶鍚庝竴鍑绘浜★紝绉婚櫎鎺у埗鏁堟灉鍚庯紝鎭㈠鍒板緟鏈虹姸鎬佹垨鑰呮挱鏀炬浜″姩鐢�
+        //  杩欓噷鏄彈鍒扮‖鎺ф椂鍊� 闇�瑕佽〃鐜扮殑鍔ㄧ敾
+
+        var entry = PlayAnimation(MotionName.hit, false);
+        float threeFrameTrackTime = 3f / BattleConst.skillMotionFps;
+        entry.TrackTime = threeFrameTrackTime;
+        entry.TimeScale = 0;
+
+        isUnderControl = true;
+
+    }
+    
+    public void CancelControledAnimation()
+    {
+        //  纭帶缁撴潫锛屾仮澶嶅姩鐢绘挱鏀�
+        isUnderControl = false;
+        PlayAnimation(MotionName.idle, true);
+    }
+
     public virtual void Run()
     {
         for (int i = runningActions.Count - 1; i >= 0; i--)

--
Gitblit v1.8.0