| | |
| | | using System.Collections; |
| | | using Cysharp.Threading.Tasks; |
| | | using DG.Tweening; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | using System.Threading; |
| | | |
| | | public class TotalDamageDisplayer : MonoBehaviour |
| | | { |
| | |
| | | |
| | | private Coroutine hideCoroutine; |
| | | private int hideVersion = 0; |
| | | |
| | | private long damage = 0; |
| | | |
| | | private long heal = 0; |
| | | |
| | | public void SetDamage(BattleDmgInfo dmgInfo) |
| | | { |
| | |
| | | if (dmgInfo.IsType(DamageType.Recovery)) |
| | | { |
| | | // 保持原有处理逻辑位置 |
| | | foreach (var h in dmgInfo.damageList) |
| | | { |
| | | heal += h; |
| | | } |
| | | textDamage.text = BattleUtility.DisplayDamageNum(heal, BattleConst.BattleTotalRecoverType); |
| | | textTotalDesc.text = "总治疗"; |
| | | } |
| | | else if (dmgInfo.IsType(DamageType.Damage) || dmgInfo.IsType(DamageType.Realdamage)) |
| | | { |
| | | // 保持原有处理逻辑位置 |
| | | foreach (var d in dmgInfo.damageList) |
| | | { |
| | | damage += d; |
| | | } |
| | | textDamage.text = BattleUtility.DisplayDamageNum(damage, BattleConst.BattleTotalDamageType); |
| | | textTotalDesc.text = "总伤害"; |
| | | } |
| | | |
| | | textDamage.transform.DOPunchScale(Vector3.one * 0.2f, 0.2f, 1).OnComplete(() => |
| | | { |
| | | textDamage.transform.localScale = Vector3.one; |
| | | }); |
| | | |
| | | if (dmgInfo.isLastHit) |
| | | { |
| | |
| | | hideVersion++; |
| | | int myVersion = hideVersion; |
| | | |
| | | damage = 0; |
| | | heal = 0; |
| | | |
| | | var battleField = BattleManager.Instance.GetBattleField(dmgInfo.battleFieldGuid); |
| | | |
| | | float ms = 1000f / battleField.speedRatio; |
| | | float ms = 500f / battleField.speedRatio; |
| | | |
| | | hideCoroutine = StartCoroutine(HideAfterDelayCoroutine(ms, myVersion)); |
| | | |