From c8863bce7831a4648a39faa69408a888d939cdb4 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期六, 11 十月 2025 10:27:27 +0800
Subject: [PATCH] 125 战斗 调整闪避幻影细节

---
 Main/System/Battle/BattleObject/BattleObject.cs |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index 26f9384..8457d59 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -269,10 +269,27 @@
     }
 
     public virtual void Hurt(List<long> damageValues, long _totalDamage,
-        HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, SkillConfig skillConfig, bool isLastHit,
+        HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, SkillConfig skillConfig, int hitIndex,
         BattleDrops battleDrops, HB422_tagMCTurnFightObjDead deadPack)
     {
         BattleDmgInfo dmgInfo = PopDamage(damageValues, _totalDamage, hurt, skillConfig);
+        bool isLastHit = hitIndex >= skillConfig.DamageDivide.Length - 1;
+        bool firstHit = hitIndex == 0;
+
+        //  杩欓噷
+        if (dmgInfo.IsType(DamageType.Dodge))
+        {
+            if (isLastHit)
+            {
+                DodgeFinishAction dodgeFinish = new DodgeFinishAction(battleField, this);
+                battleField.recordPlayer.InsertRecord(dodgeFinish);
+            }
+
+            if (firstHit)
+            {
+                OnDodgeBegin();
+            }
+        }
 
         bool isFatalAttack = (null != deadPack) && isLastHit;
 
@@ -307,7 +324,7 @@
     }
 
 
-    const float pingpongTime = 0.2f;
+    const float pingpongTime = 0.4f;
     //  闂伩寮�濮�
     public virtual void OnDodgeBegin()
     {
@@ -372,12 +389,7 @@
     {
         BattleDmgInfo battleDmgInfo = new BattleDmgInfo(battleField.guid, damageValues, this, hurt, skillConfig);
 
-        if (battleDmgInfo.IsType(DamageType.Dodge))
-        {
-            OnDodgeBegin();
-            DodgeFinishAction dodgeFinish = new DodgeFinishAction(battleField, this);
-            battleField.recordPlayer.InsertRecord(dodgeFinish);
-        }
+
 
         int currentHurtHp = 0;
         for (int i = 0; i < damageValues.Count; i++)

--
Gitblit v1.8.0