From 821b91fce3202521edd37897b2023e007fa92df1 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期二, 09 十二月 2025 15:00:02 +0800
Subject: [PATCH] 125 战斗 伤害显示延长展示时间(scale1.5s delay1.5s)

---
 Main/System/Battle/UIComp/TotalDamageDisplayer.cs |   44 +++++++++++++++++++++++++++++++++++++-------
 Main/System/Battle/Define/BattleDmgInfo.cs        |    3 +++
 2 files changed, 40 insertions(+), 7 deletions(-)

diff --git a/Main/System/Battle/Define/BattleDmgInfo.cs b/Main/System/Battle/Define/BattleDmgInfo.cs
index 7749d56..596a637 100644
--- a/Main/System/Battle/Define/BattleDmgInfo.cs
+++ b/Main/System/Battle/Define/BattleDmgInfo.cs
@@ -68,6 +68,8 @@
     public bool isImmune = false;
     public bool isLastHit = false;
 
+    public bool isFirstHit = false;
+
     public List<BattleDmg> targetDamageList = new List<BattleDmg>();
     public List<BattleDmg> casterDamageList = new List<BattleDmg>();
 
@@ -81,6 +83,7 @@
         this.battleHurtParam = battleHurtParam;
         this.isCasterView = isCasterView;
         this.isLastHit = battleHurtParam.hitIndex >= battleHurtParam.skillConfig.DamageDivide.Length - 1;
+        this.isFirstHit = battleHurtParam.hitIndex == 0;
         
         m_rawAttackType = hurt == null ? 0 : hurt.AttackTypes;
 
diff --git a/Main/System/Battle/UIComp/TotalDamageDisplayer.cs b/Main/System/Battle/UIComp/TotalDamageDisplayer.cs
index 15aa820..4abc05c 100644
--- a/Main/System/Battle/UIComp/TotalDamageDisplayer.cs
+++ b/Main/System/Battle/UIComp/TotalDamageDisplayer.cs
@@ -14,6 +14,14 @@
 
     private long heal = 0;
 
+    public const float scaleDuration = 1.5f;
+
+    public const float delayCloseDuration = 1.5f;
+
+    public static readonly Vector3 scalePunch = new Vector3(0.4f, 0.4f, 0.4f);
+
+    private Sequence punchTween = null;
+
     public void SetDamage(BattleDmgInfo dmgInfo)
     {
         var battleField = BattleManager.Instance.GetBattleField(dmgInfo.battleFieldGuid);
@@ -23,6 +31,12 @@
 
         if (dmgInfo == null)
             return;
+
+        if (dmgInfo.isFirstHit)
+        {
+            damage = 0;
+            heal = 0;
+        }
 
         if (dmgInfo.IsType(DamageType.Recovery))
         {
@@ -48,23 +62,39 @@
         }
         else
         {
-            textDamage.text =BattleUtility.DisplayDamageNum(0, BattleConst.BattleTotalDamageType);
-            imgTotalDesc.sprite = UILoader.LoadSprite("Fight", "Fight1_img_85");
-            damageBackground.sprite = UILoader.LoadSprite("Fight", "Fight1_img_88");
+            gameObject.SetActive(false);
+            return;
+        }
+        // else
+        // {
+        //     textDamage.text =BattleUtility.DisplayDamageNum(0, BattleConst.BattleTotalDamageType);
+        //     imgTotalDesc.sprite = UILoader.LoadSprite("Fight", "Fight1_img_85");
+        //     damageBackground.sprite = UILoader.LoadSprite("Fight", "Fight1_img_88");
+        // }
+
+        if (punchTween != null && punchTween.IsActive())
+        {
+            battleField.battleTweenMgr.OnKillTween(punchTween);
+            textDamage.transform.localScale = Vector3.one;
+            punchTween = null;
         }
 
-        var tween = textDamage.transform.DOPunchScale(Vector3.one * 0.2f, 0.8f / battleField.speedRatio, 1).OnComplete(() =>
+        punchTween = DOTween.Sequence();
+        var tween1 = textDamage.transform.DOPunchScale(scalePunch, scaleDuration / battleField.speedRatio, 1);
+        punchTween.Append(tween1);
+        //  鎾斁缁撴潫鍚� 寤惰繜1.5绉掑啀娑堝け
+        var tween2 = DOVirtual.DelayedCall(delayCloseDuration / battleField.speedRatio, () => { });
+        punchTween.Append(tween2);
+        punchTween.OnComplete(() =>
         {
             textDamage.transform.localScale = Vector3.one;
             if (dmgInfo.isLastHit)
             {
                 gameObject.SetActive(false);
-                damage = 0;
-                heal = 0;
             }
         });
 
-        battleField.battleTweenMgr.OnPlayTween(tween);
+        battleField.battleTweenMgr.OnPlayTween(punchTween);
 
     }
 }

--
Gitblit v1.8.0