yyl
2025-12-09 821b91fce3202521edd37897b2023e007fa92df1
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);
    }
}