From b6f94e013be7edc0aa3de2440dd52d2c7e6d9d38 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 27 十月 2025 18:37:18 +0800
Subject: [PATCH] 125 竞技场+伤害展示跟技能名字弹出

---
 Main/System/Battle/ArenaBattleWin.cs |   41 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/Main/System/Battle/ArenaBattleWin.cs b/Main/System/Battle/ArenaBattleWin.cs
index 4fdeba4..d50ae8b 100644
--- a/Main/System/Battle/ArenaBattleWin.cs
+++ b/Main/System/Battle/ArenaBattleWin.cs
@@ -34,6 +34,12 @@
     [SerializeField] List<ArenaHeroHead> enemyHeroHeads;
 
     [SerializeField] TextEx txtWaveInfo;
+
+    public TotalDamageDisplayer totalDamageDisplayer;
+
+    public SkillTips skillTipsRed;
+    public SkillTips skillTipsBlue;
+
     // 鐢熷懡鍛ㄦ湡
     protected override void InitComponent()
     {
@@ -73,6 +79,7 @@
         MainWin.TabChangeEvent += OnTabChangeEvent;
         BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
         EventBroadcast.Instance.AddListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
+        EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnCastSkill);
         EventBroadcast.Instance.AddListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
         BattleManager.Instance.storyBattleField.IsPause = true;
         bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
@@ -94,6 +101,7 @@
         MainWin.TabChangeEvent -= OnTabChangeEvent;
         BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
         EventBroadcast.Instance.RemoveListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
+        EventBroadcast.Instance.RemoveListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnCastSkill);
         EventBroadcast.Instance.RemoveListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
         BattleManager.Instance.storyBattleField.IsPause = false;
 
@@ -128,6 +136,7 @@
         if (damageInfo.battleFieldGuid == battleField.guid)
         {
             DisplayHpInfo();
+            totalDamageDisplayer.SetDamage(damageInfo);
         }
     }
 
@@ -183,12 +192,40 @@
         ui.SetBattleField(battleField);
         battleField.UpdateCanvas(canvas);
         textSpeed.text = (BattleManager.Instance.speedIndex + 1).ToString();
-        DisplayHpInfo();
-        DisplayPlayerInfo();
+        Refresh();
+
         battleField.OnRoundChange -= OnRoundChange;
         battleField.OnRoundChange += OnRoundChange;
         OnRoundChange(battleField.round, battleField.turnMax);
     }
+
+    public override void Refresh()
+    {
+        base.Refresh();
+        DisplayHpInfo();
+        DisplayPlayerInfo();
+        totalDamageDisplayer.SetActive(false);
+        skillTipsBlue.SetActive(false);
+        skillTipsRed.SetActive(false);
+    }
+
+    private void OnCastSkill(string guid, SkillConfig skillConfig, TeamHero teamHero)
+    {
+        if (battleField == null)
+            return;
+
+        if (battleField.guid != guid)
+            return;
+
+        BattleObject battleObject = battleField.battleObjMgr.GetBattleObject(teamHero.ObjID);
+
+        bool isRed = battleObject.Camp == BattleCamp.Red;
+
+        SkillTips tips = isRed ? skillTipsRed : skillTipsBlue;
+
+        tips.PlayMotion(battleField, isRed, teamHero, skillConfig);
+    }
+
     private void DisplayHpInfo()
     {
         if (battleField == null)

--
Gitblit v1.8.0