From af8a1b485e4276e0d0c52e9f7367efe3ed1ca34e Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 21 四月 2026 21:22:41 +0800
Subject: [PATCH] 406 属性查看优化 定军阁查看我方战场英雄的属性加上加成值

---
 Main/System/Main/FightPowerManager.cs                 |   14 +++++++++-----
 Main/System/WarlordPavilion/WarlordPavilionManager.cs |   25 +++++++++++++++++++++++++
 Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs   |   16 ++++++++++++++--
 3 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/Main/System/Main/FightPowerManager.cs b/Main/System/Main/FightPowerManager.cs
index 477321a..9454ffc 100644
--- a/Main/System/Main/FightPowerManager.cs
+++ b/Main/System/Main/FightPowerManager.cs
@@ -82,7 +82,7 @@
     // public Dictionary<string, int> lineUpPerDict = new Dictionary<string, int>();  //闃靛灞炴�у姞鎴�
     public Dictionary<int, int> countryAttrs = new Dictionary<int, int>();   //闃靛鍥藉锛堝厜鐜級灞炴��
     public Dictionary<int, long> minggeAttrs = new Dictionary<int, long>();   //鍛芥牸灞炴��
-
+    public Dictionary<int, long> djgAttrs = new Dictionary<int, long>();   //瀹氬啗闃佸睘鎬�
     double allHeroAddPer = 0;  //鎵�鏈夋灏嗗姞鎴�
 
     //绛夌骇灞炴��
@@ -340,8 +340,10 @@
         var beautyPer = BeautyMMManager.Instance.GetAttrPer(attrType) / 10000.0;
         var fatesValue = HeroFatesManager.Instance.GetAttrValue(attrType);
         var fatesPer = HeroFatesManager.Instance.GetAttrPer(attrType) / 10000.0;
-        var dingjungeValue = 0; //榛樿涓嶉渶瑕佸姞锛岀埇濉旂壒娈婄敤锛岄厤鍚堝叕寮�
-        var dingjungePer = 0;   //榛樿涓嶉渶瑕佸姞锛岀埇濉旂壒娈婄敤锛岄厤鍚堝叕寮�
+
+        djgAttrs.TryGetValue(attrType, out var dingjungeValue);
+        var dingjungePer = GetAttrPer(attrType, djgAttrs) / 10000.0;   //榛樿涓嶉渶瑕佸姞锛岀埇濉旂壒娈婄敤锛岄厤鍚堝叕寮�
+
         minggeAttrs.TryGetValue(attrType, out var minggeValue);
         var minggePer = GetAttrPer(attrType, minggeAttrs) / 10000.0;
         
@@ -397,7 +399,7 @@
         var horseValue = HorseManager.Instance.GetAttrValue(attrType);
         var beautyValue = BeautyMMManager.Instance.GetAttrValue(attrType);
         var fatesValue = HeroFatesManager.Instance.GetAttrValue(attrType);
-        var dingjungeValue = 0; //榛樿涓嶉渶瑕佸姞锛岀埇濉旂壒娈婄敤锛岄厤鍚堝叕寮�
+        djgAttrs.TryGetValue(attrType, out var dingjungeValue);
         minggeAttrs.TryGetValue(attrType, out var minggeValue);
 
         //闃靛鍏夌幆 涓夊洿鐧惧垎姣斿姞鎴�
@@ -487,7 +489,8 @@
         RefreshOfficialAttrs();
         RefrehEquipAttrs();
         RefrehMinggeAttrs();
-
+        djgAttrs.Clear();
+        
         bool diffFP = lastFightPower != PlayerDatas.Instance.baseData.FightPower;   //鎴樺姏鏄惁鏈夊彉鍖�
         if (diffFP || calcType == 0)
         {
@@ -812,6 +815,7 @@
         RefrehMinggeAttrs();
         RefrehEquipAttrs();
         RefreshTeamAttrs();
+        djgAttrs.Clear();
 
         var fightPower = CalculateTeamHeroPower(heroInfo);
         fightPower += GetMinggeSkillPower();
diff --git a/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs b/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs
index dcd9aed..a08cdef 100644
--- a/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs
+++ b/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs
@@ -82,8 +82,20 @@
                         return;
                     }
                     heroInfo.CalculateFightPower();
-                    attrDict = FightPowerManager.Instance.GetHeroTotalAttr(heroInfo);
-                    DisplayByMyPack(heroInfo, data);
+
+                    if (data.battleName == BattleConst.WarlordPavilionBattleField)
+                    {
+                        FightPowerManager.Instance.djgAttrs = WarlordPavilionManager.Instance.GetAllAttrBonus();
+                        attrDict = FightPowerManager.Instance.GetHeroTotalAttr(heroInfo);
+                        FightPowerManager.Instance.djgAttrs.Clear();
+                        DisplayByMyPack(heroInfo, data);
+                    }
+                    else
+                    {
+                        attrDict = FightPowerManager.Instance.GetHeroTotalAttr(heroInfo);
+                        DisplayByMyPack(heroInfo, data);
+                    }
+
                 }
                 else
                 {
diff --git a/Main/System/WarlordPavilion/WarlordPavilionManager.cs b/Main/System/WarlordPavilion/WarlordPavilionManager.cs
index 179ce22..8d14848 100644
--- a/Main/System/WarlordPavilion/WarlordPavilionManager.cs
+++ b/Main/System/WarlordPavilion/WarlordPavilionManager.cs
@@ -498,6 +498,31 @@
         return SelectAuto == 1;
     }
 
+    /// <summary>
+    /// 鑾峰彇褰撳墠鍔犳垚鐨勫叏浣撳睘鎬�
+    /// </summary>
+    /// <returns>灞炴�у姞鎴愬瓧鍏革紝key涓篈ttrID锛寁alue涓虹疮璁$殑灞炴�у��</returns>
+    public Dictionary<int, long> GetAllAttrBonus()
+    {
+        Dictionary<int, long> attrBonusDict = new Dictionary<int, long>();
+        if (EffList.IsNullOrEmpty())
+            return attrBonusDict;
+
+        for (int i = 0; i < EffList.Length; i++)
+        {
+            var eff = EffList[i];
+            var config = FBDJGEffectConfig.Get(eff.EffID);
+            if (config == null)
+                continue;
+            long bonusValue = (long)eff.EffLV * config.AttrValue;
+            if (attrBonusDict.ContainsKey(config.AttrID))
+                attrBonusDict[config.AttrID] += bonusValue;
+            else
+                attrBonusDict[config.AttrID] = bonusValue;
+        }
+        return attrBonusDict;
+    }
+
     // 鏄惁鍙互蹇�熸寫鎴�
     public bool CanFastChallenge()
     {

--
Gitblit v1.8.0