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