From 93aba7a5b556606bf7a31ccc3c199d63f4fff28b Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 13 十一月 2025 09:27:53 +0800
Subject: [PATCH] 125 战斗 特性怒气飘字

---
 Main/System/Battle/BattleObject/BattleObject.cs |  110 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 83 insertions(+), 27 deletions(-)

diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index 723bb12..8bfa3e9 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -195,33 +195,33 @@
         }
     }
 
-    public void ObjPropertyRefreshView(HB418_tagSCObjPropertyRefreshView vNetData)
-    {
-        // 澶╁瓙鐨勬寫鎴樻嫤鎴鏉�,涓嶆嫤鎴�掓皵
-        BattleObject boss = battleField.FindBoss();
-        if (boss != null && battleField.MapID == 30020 && boss.ObjID == vNetData.ObjID && vNetData.RefreshType != (ushort)PlayerDataType.XP)
-            return;
-        switch ((PlayerDataType)vNetData.RefreshType)
-        {
-            case PlayerDataType.HP:
-                long toHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
-                heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp, false);
-                teamHero.curHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
-                break;
-            case PlayerDataType.MaxHP:
-                teamHero.maxHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
-                heroInfoBar.UpdateHP(teamHero.curHp, teamHero.curHp, teamHero.maxHp, false);
-                break;
-            case PlayerDataType.XP:
-                long toXp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
-                heroInfoBar.UpdateXP(teamHero.rage, toXp, 100);
-                teamHero.rage = (int)GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
-                break;
-            default:
-                Debug.LogError("BattleObject.ObjPropertyRefreshView 鍑虹幇鎰忓绫诲瀷 " + vNetData.RefreshType.ToString());
-                break;
-        }
-    }
+    // public void ObjPropertyRefreshView(HB418_tagSCObjPropertyRefreshView vNetData)
+    // {
+    //     // 澶╁瓙鐨勬寫鎴樻嫤鎴鏉�,涓嶆嫤鎴�掓皵
+    //     BattleObject boss = battleField.FindBoss();
+    //     if (boss != null && battleField.MapID == 30020 && boss.ObjID == vNetData.ObjID && vNetData.RefreshType != (ushort)PlayerDataType.XP)
+    //         return;
+    //     switch ((PlayerDataType)vNetData.RefreshType)
+    //     {
+    //         case PlayerDataType.HP:
+    //             long toHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+    //             heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp, false);
+    //             teamHero.curHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+    //             break;
+    //         case PlayerDataType.MaxHP:
+    //             teamHero.maxHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+    //             heroInfoBar.UpdateHP(teamHero.curHp, teamHero.curHp, teamHero.maxHp, false);
+    //             break;
+    //         case PlayerDataType.XP:
+    //             long toXp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+    //             heroInfoBar.UpdateXP(teamHero.rage, toXp, 100);
+    //             teamHero.rage = (int)GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+    //             break;
+    //         default:
+    //             Debug.LogError("BattleObject.ObjPropertyRefreshView 鍑虹幇鎰忓绫诲瀷 " + vNetData.RefreshType.ToString());
+    //             break;
+    //     }
+    // }
 
     //  鐪╂檿
     public bool IsStunned()
@@ -513,6 +513,62 @@
         heroInfoBar.SetSpeedRatio(ratio);
     }
 
+    public void OnObjPropertyRefreshView(HB418_tagSCObjPropertyRefreshView vNetData)
+    {
+        // 澶╁瓙鐨勬寫鎴樻嫤鎴鏉�,涓嶆嫤鎴�掓皵
+        BattleObject boss = battleField.FindBoss();
+        if (boss != null && battleField.MapID == 30020 && boss.ObjID == vNetData.ObjID && vNetData.RefreshType != (ushort)PlayerDataType.XP)
+            return;
+
+        // public uint ObjID;
+        // public ushort RefreshType;    // 鍚�0418鍒锋柊绫诲瀷锛屽琛�閲忋�佹�掓皵
+        // public uint AttackTypes;    // 椋樺瓧绫诲瀷姹囨�伙紝鏀寔澶氱绫诲瀷骞跺瓨锛屽鏃犺闃插尽涓旀毚鍑诲悓鏃惰鏍兼尅锛屼簩杩涘埗鎴栬繍绠楁渶缁堝�硷紱0-澶辫触锛�1-鏅�氾紱2-鍥炶锛�5-鏍兼尅锛�6-鏃犺闃插尽锛�7-鏆村嚮锛�9-闂伩
+        // public uint Value;    // 鏇存柊鍊�
+        // public uint ValueEx;    // 鏇存柊鍊硷紝濡傛灉鏄ぇ鏁板�肩殑姝ゅ�间负鏁撮櫎浜块儴鍒�
+        // public byte DiffType;    // 鍙樺寲绫诲瀷锛�0-鍑忓皯锛�1-澧炲姞
+        // public uint DiffValue;    // 鍙樺寲鍊�
+        // public uint DiffValueEx;    // 鍙樺寲鍊硷紝濡傛灉鏄ぇ鏁板�肩殑姝ゅ�间负鏁撮櫎浜块儴鍒�
+        // public uint SkillID;    // 浣跨敤鐨勬妧鑳借〃ID
+        // public uint RelatedSkillID;    // 鍏宠仈鐨勬妧鑳絀D锛屼竴鑸槸涓绘妧鑳絀D锛岄潪涓绘妧鑳介澶栬Е鍙戠殑涓�0
+
+        long diffValue = GeneralDefine.GetFactValue(vNetData.DiffValue, vNetData.DiffValueEx);
+        diffValue *= vNetData.DiffType == 0 ? -1 : 1;
+
+        long newValue = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+
+
+        switch ((PlayerDataType)vNetData.RefreshType)
+        {
+            case PlayerDataType.HP:
+                long toHp = GeneralDefine.GetFactValue(vNetData.Value, vNetData.ValueEx);
+                heroInfoBar.UpdateHP(teamHero.curHp, toHp, teamHero.maxHp, true);
+                teamHero.curHp = newValue;
+                break;
+            case PlayerDataType.MaxHP:
+                teamHero.maxHp = newValue;
+                heroInfoBar.UpdateHP(teamHero.curHp, teamHero.curHp, teamHero.maxHp, true);
+                break;
+            case PlayerDataType.XP:
+                long toXp = newValue;
+                heroInfoBar.UpdateXP(teamHero.rage, toXp, 100);
+                teamHero.rage = (int)newValue;
+
+                string message = BattleUtility.DisplayDamageNum(diffValue, ((int)DamageType.RageUp));
+
+                heroInfoBar.ShowTips(new BattleHeroInfoBar.TipsInfo()
+                {
+                    message = message,
+                    useArtText = true,
+                    followCharacter = true,
+                    isRage = true
+                });
+                break;
+            default:
+                Debug.LogError("BattleObject.ObjPropertyRefreshView 鍑虹幇鎰忓绫诲瀷 " + vNetData.RefreshType.ToString());
+                break;
+        }
+    }
+
 
 #if UNITY_EDITOR_STOP_USING
     public void EditorRevive()

--
Gitblit v1.8.0