From d1d7db670b09a507cb73f71f99d2ca22c96307a5 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期二, 30 九月 2025 18:34:12 +0800
Subject: [PATCH] 125 战斗 1.治疗问题 2.死亡时受击不播放

---
 Main/System/Battle/BattleObject/BattleObject.cs |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index d3b7bdd..ba47e96 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -268,11 +268,11 @@
         return true;
     }
 
-    public virtual void Hurt(List<long> damageValues, long _totalDamage, HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, SkillConfig skillConfig)
+    public virtual void Hurt(List<long> damageValues, long _totalDamage, HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, SkillConfig skillConfig, bool playAnimation = true)
     {
         BattleDmgInfo dmgInfo = PopDamage(damageValues, _totalDamage, hurt, skillConfig);
 
-        if (dmgInfo.IsType(DamageType.Damage) || dmgInfo.IsRealdamage())
+        if ((dmgInfo.IsType(DamageType.Damage) || dmgInfo.IsRealdamage()) && playAnimation)
         {
             motionBase.PlayAnimation(MotionName.hit, false);
         }
@@ -280,12 +280,12 @@
 
     public void SuckHp(uint suckHP, SkillConfig skillConfig)
     {
-
+        teamHero.curHp = Math.Min(teamHero.maxHp, teamHero.curHp + (int)suckHP);
     }
 
     public void HurtByReflect(uint bounceHP, SkillConfig skillConfig)
     {
-
+        teamHero.curHp = Math.Max(0, teamHero.curHp - (int)bounceHP);
     }
 
     //  闂伩寮�濮�
@@ -360,8 +360,12 @@
             currentHurtHp += (int)damageValues[i];
         }
 
-        heroInfoBar.UpdateHP(teamHero.curHp, Math.Max(0, teamHero.curHp - currentHurtHp), teamHero.maxHp);
-        teamHero.curHp = Math.Max(0, teamHero.curHp - currentHurtHp);
+        bool isRecovery = battleDmgInfo.IsType(DamageType.Recovery);
+
+        long toHp = Math.Max(0, teamHero.curHp + (isRecovery ? currentHurtHp : -currentHurtHp));
+
+        heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp);
+        teamHero.curHp = toHp;
 
         // YYL TODO 鏄惁闇�瑕佹寕鍦ㄥ湪鑷韩鐨刦ollow鐐逛笂
         EventBroadcast.Instance.Broadcast(EventName.BATTLE_DAMAGE_TAKEN, battleDmgInfo);

--
Gitblit v1.8.0