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/BattleObject/BattleObject.cs |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index 5b1aa1f..2ce9013 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -87,6 +87,8 @@
         buffMgr = new BattleObjectBuffMgr();
         buffMgr.Init(this);
 
+        buffMgr.onIsControlChanged += OnControledChange;
+
         layerMgr = new BattleObjectLayerMgr();
         layerMgr.Init(this);
 
@@ -127,6 +129,7 @@
 
         motionBase.Release();
         motionBase = null;
+        buffMgr.onIsControlChanged -= OnControledChange;
         buffMgr.Release();
         buffMgr = null;
         teamHero = null;
@@ -136,6 +139,24 @@
         {
             GameObject.DestroyImmediate(heroGo);
             heroGo = null;
+        }
+    }
+
+    //  鏈夊彉鍖栦簡鎵嶄細璋冪敤杩欎釜鍑芥暟
+    private void OnControledChange(int groupType, bool value)
+    {
+        //  杩欓噷鏄彈鍒扮‖鎺ф椂鍊� 闇�瑕佽〃鐜扮殑鍔ㄧ敾
+        if (groupType == BattleConst.HardControlGroup)
+        {
+            //  浠庢病琚‖鎺у埌琚‖鎺�
+            if (value)
+            {
+                motionBase.SetControledAnimation();
+            }
+            else
+            {
+                motionBase.CancelControledAnimation();
+            }
         }
     }
 
@@ -280,7 +301,7 @@
 
 
         //  杩欓噷
-        if (dmgInfo.IsType(DamageType.Dodge))
+        if (dmgInfo.IsType(DamageType.Dodge) && !buffMgr.isControled[BattleConst.HardControlGroup])
         {
             if (isLastHit)
             {
@@ -317,7 +338,10 @@
             {
                 if ((dmgInfo.IsType(DamageType.Damage) || dmgInfo.IsRealdamage()))
                 {
-                    motionBase.PlayAnimation(MotionName.hit, false);
+                    if (!buffMgr.isControled[BattleConst.HardControlGroup])
+                    {
+                        motionBase.PlayAnimation(MotionName.hit, false);
+                    }
                 }
             }
 

--
Gitblit v1.8.0