From a123d0c69d4210be5fa4cba3b33e8759e1397f68 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 29 一月 2026 15:46:04 +0800
Subject: [PATCH] 449 查看他人

---
 Main/System/ViewNPC/ViewNPCManager.cs                      |   50 ++++++----------
 Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs         |    7 +-
 Main/System/OtherPlayerDetail/OtherEquipTipWin.cs          |    2 
 Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs  |   31 +++++++---
 Main/System/OtherPlayerDetail/OtherHeroFightingCardItem.cs |   12 ++--
 Main/System/OtherPlayerDetail/OtherEquipCardItem.cs        |    2 
 Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs        |   38 +++++-------
 7 files changed, 69 insertions(+), 73 deletions(-)

diff --git a/Main/System/OtherPlayerDetail/OtherEquipCardItem.cs b/Main/System/OtherPlayerDetail/OtherEquipCardItem.cs
index d054914..29d8b36 100644
--- a/Main/System/OtherPlayerDetail/OtherEquipCardItem.cs
+++ b/Main/System/OtherPlayerDetail/OtherEquipCardItem.cs
@@ -47,7 +47,7 @@
 
         btnClick.SetListener(() =>
         {
-            manager.equip = equip;
+            manager.otherPlayerViewEquip = equip;
             if (!UIManager.Instance.IsOpened<OtherEquipTipWin>())
             {
                 UIManager.Instance.OpenWindow<OtherEquipTipWin>();
diff --git a/Main/System/OtherPlayerDetail/OtherEquipTipWin.cs b/Main/System/OtherPlayerDetail/OtherEquipTipWin.cs
index a10690e..7f3ae37 100644
--- a/Main/System/OtherPlayerDetail/OtherEquipTipWin.cs
+++ b/Main/System/OtherPlayerDetail/OtherEquipTipWin.cs
@@ -30,7 +30,7 @@
     OtherPlayerDetailManager manager { get { return OtherPlayerDetailManager.Instance; } }
     protected override void OnPreOpen()
     {
-        equip = manager.equip;
+        equip = manager.otherPlayerViewEquip;
         if (equip == null)
         {
             DelayCloseWindow().Forget();
diff --git a/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs b/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs
index ae02354..b7b59f6 100644
--- a/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs
+++ b/Main/System/OtherPlayerDetail/OtherHeroDetailWin.cs
@@ -43,19 +43,12 @@
     {
         // 閲嶇疆鎵�鏈夋粴鍔ㄥ尯鍒伴《閮�
         if (allAttrScroll != null)
-        {
             allAttrScroll.verticalNormalizedPosition = 1f;
-        }
-
-
-
         Display();
     }
 
     protected override void OnPreClose()
     {
-
-
     }
 
     private bool TryGetHeroInfo(BattleClickHeroData data, out HeroInfo heroInfo)
@@ -67,13 +60,17 @@
         return true;
     }
 
+
     private void Display()
     {
         attrDict = null;
-        switch (manager.viewHeroType)
+        ViewHeroDetailData viewData = manager.viewHeroDetailData;
+        if (viewData == null)
+            return;
+        switch (viewData.viewHeroType)
         {
             case 0:
-                BattleClickHeroData data = manager.clickHeroData;
+                BattleClickHeroData data = manager.viewHeroDetailData.clickHeroData;
                 bgImage.SetSprite(data.isMySide ? "OtherHeroDetailBGBlue" : "OtherHeroDetailBGRed");
                 iconImage.SetSprite(data.isMySide ? "OtherHeroDetailIconBlue" : "OtherHeroDetailIconRed");
                 if (data.isMySide)
@@ -84,6 +81,7 @@
                         DelayCloseWindow().Forget();
                         return;
                     }
+                    heroInfo.CalculateFightPower();
                     attrDict = FightPowerManager.Instance.GetHeroTotalAttr(heroInfo);
                     DisplayByMyPack(heroInfo, data);
                 }
@@ -91,13 +89,13 @@
                 {
                     if (BattleManager.Instance.IsPvpBattle(data.battleName))
                     {
-                        attrDict = manager?.heroData?.AttrDict;
-                        DiplayByViewOtherPlayer();
+                        attrDict = viewData.heroData?.AttrDict;
+                        DiplayByViewOtherPlayer(viewData.heroData, viewData.heroDatas);
                     }
                     else
                     {
-                        attrDict = manager?.viewNPCAttr?.AttrDict;
-                        DisplayByViewNPCAttr();
+                        attrDict = viewData.viewNPCAttr?.AttrDict;
+                        DisplayByViewNPCAttr(viewData.viewNPCAttr);
                     }
 
                 }
@@ -106,8 +104,8 @@
             default:
                 bgImage.SetSprite("OtherHeroDetailBGRed");
                 iconImage.SetSprite("OtherHeroDetailIconRed");
-                attrDict = manager?.heroData?.AttrDict;
-                DiplayByViewOtherPlayer();
+                attrDict = viewData.heroData?.AttrDict;
+                DiplayByViewOtherPlayer(viewData.heroData, viewData.heroDatas);
                 break;
         }
     }
@@ -145,9 +143,8 @@
 
     }
 
-    void DisplayByViewNPCAttr()
+    void DisplayByViewNPCAttr(ViewNPCAttr viewNPCAttr)
     {
-        ViewNPCAttr viewNPCAttr = manager.viewNPCAttr;
         if (viewNPCAttr == null)
             return;
 
@@ -178,12 +175,9 @@
         ForceRefreshLayout();
     }
 
-    void DiplayByViewOtherPlayer()
+    void DiplayByViewOtherPlayer(OtherPlayerDetailManager.RolePlusData.HeroData heroData,
+    List<OtherPlayerDetailManager.RolePlusData.HeroData> heroDatas)
     {
-
-        OtherPlayerDetailManager.RolePlusData.HeroData heroData = manager.heroData;
-        List<OtherPlayerDetailManager.RolePlusData.HeroData> heroDatas = manager.heroDatas;
-
         if (heroDatas.IsNullOrEmpty() || heroData == null)
             return;
 
diff --git a/Main/System/OtherPlayerDetail/OtherHeroFightingCardItem.cs b/Main/System/OtherPlayerDetail/OtherHeroFightingCardItem.cs
index 6168f4b..8dc72bf 100644
--- a/Main/System/OtherPlayerDetail/OtherHeroFightingCardItem.cs
+++ b/Main/System/OtherPlayerDetail/OtherHeroFightingCardItem.cs
@@ -83,13 +83,13 @@
         {
             return;
         }
-        manager.viewHeroType = 1;
-        manager.heroData = heroData;
-        manager.heroDatas = heros;
-        if (!UIManager.Instance.IsOpened<OtherHeroDetailWin>())
+
+        OtherPlayerDetailManager.Instance.OpenOtherHeroDetailWin(new ViewHeroDetailData()
         {
-            UIManager.Instance.OpenWindow<OtherHeroDetailWin>();
-        }
+            viewHeroType = 1,
+            heroData = heroData,
+            heroDatas = heros,
+        });
     }
 }
 
diff --git a/Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs b/Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs
index 7d5bd9e..12f4602 100644
--- a/Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs
+++ b/Main/System/OtherPlayerDetail/OtherNPCDetailWin.cs
@@ -26,7 +26,7 @@
     [SerializeField] Transform awakeCellParent; //娼滆兘鐖惰妭鐐�
     [SerializeField] GameObject awakeGo;
     Dictionary<int, long> attrDict;
-    OtherPlayerDetailManager manager { get { return OtherPlayerDetailManager.Instance; } }
+    ViewNPCManager manager { get { return ViewNPCManager.Instance; } }
     protected override void InitComponent()
     {
         awakeCellList = new List<GameObject>();
@@ -59,9 +59,8 @@
 
     private void Display()
     {
-        BattleClickHeroData data = manager.clickHeroData;
-        bgImage.SetSprite(data.isMySide ? "OtherHeroDetailBGBlue" : "OtherHeroDetailBGRed");
-        iconImage.SetSprite(data.isMySide ? "OtherHeroDetailIconBlue" : "OtherHeroDetailIconRed");
+        bgImage.SetSprite("OtherHeroDetailBGRed");
+        iconImage.SetSprite("OtherHeroDetailIconRed");
         attrDict = manager?.viewNPCAttr?.AttrDict;
         DisplayByViewNPCAttr();
     }
diff --git a/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs b/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs
index 94fae49..14d202c 100644
--- a/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs
+++ b/Main/System/OtherPlayerDetail/OtherPlayerDetailManager.cs
@@ -15,19 +15,11 @@
     public int viewPlayerType { get; private set; }
 
     public int viewPreSetType { get; private set; }
-
+    public RolePlusData.EquipData otherPlayerViewEquip;//鏌ョ湅浠栦汉鐣岄潰姝e湪鏌ョ湅涓殑瑁呭
     private Dictionary<int, ViewPlayerData> viewPlayerDataDic = new Dictionary<int, ViewPlayerData>();
 
     // 鏌ョ湅绫诲瀷锛岀帺瀹禝D
     public event Action<int, int> OnRevPackage; //灏介噺涓嶈鐢ㄧ涓�涓弬鏁皏iewtype鍋氬垽鏂紝瀹规槗鍑洪敊
-
-
-    public int viewHeroType;//0:鎴樺満鐐瑰嚮妯″瀷 1锛氭煡鐪嬩粬浜鸿嫳闆勮鎯呯晫闈㈢偣鍑昏嫳闆勫崱鐗�
-    public BattleClickHeroData clickHeroData;
-    public ViewNPCAttr viewNPCAttr;
-    public RolePlusData.HeroData heroData;
-    public List<RolePlusData.HeroData> heroDatas;
-    public RolePlusData.EquipData equip;
 
     public override void Init()
     {
@@ -45,6 +37,8 @@
         viewPlayer = -1;
         viewPlayerType = -1;
         viewPreSetType = -1;
+        otherPlayerViewEquip = null;
+        viewHeroDetailData = null;
     }
 
     // 鑾峰彇鍏朵粬鐜╁鏈湴缂撳瓨鏁版嵁
@@ -147,6 +141,16 @@
         OnRevPackage?.Invoke(viewPlayerType, playerID);
         viewPlayerType = -1;
         viewPreSetType = -1;
+    }
+
+    public ViewHeroDetailData viewHeroDetailData;
+    public void OpenOtherHeroDetailWin(ViewHeroDetailData viewHeroDetailData)
+    {
+        this.viewHeroDetailData = viewHeroDetailData;
+        if (!UIManager.Instance.IsOpened<OtherHeroDetailWin>())
+        {
+            UIManager.Instance.OpenWindow<OtherHeroDetailWin>();
+        }
     }
 
     #region 鑾峰彇PlusData涓殑鏁版嵁
@@ -749,3 +753,12 @@
 
 }
 
+public class ViewHeroDetailData
+{
+    public int viewHeroType;//0:鎴樺満鐐瑰嚮鎴戞柟鐨勮嫳闆勬ā鍨� 1锛氭煡鐪嬩粬浜鸿嫳闆勮鎯呯晫闈㈢偣鍑昏嫳闆勫崱鐗�
+    public BattleClickHeroData clickHeroData;
+    public ViewNPCAttr viewNPCAttr;
+    public OtherPlayerDetailManager.RolePlusData.HeroData heroData;
+    public List<OtherPlayerDetailManager.RolePlusData.HeroData> heroDatas;
+    public OtherPlayerDetailManager.RolePlusData.EquipData equip;
+}
\ No newline at end of file
diff --git a/Main/System/ViewNPC/ViewNPCManager.cs b/Main/System/ViewNPC/ViewNPCManager.cs
index f6a8b42..9460ebf 100644
--- a/Main/System/ViewNPC/ViewNPCManager.cs
+++ b/Main/System/ViewNPC/ViewNPCManager.cs
@@ -34,6 +34,7 @@
     private void ResetPendingState()
     {
         isPendingOpen = false;
+        viewNPCAttr = null;
         pendingData.isMySide = false;
         pendingData.funcLineID = 0;
         pendingData.mapID = 0;
@@ -51,7 +52,11 @@
         // 鑷繁鐨勬暟鎹洿鎺ヨ鑳屽寘
         if (data.isMySide)
         {
-            OpenNPCDetailWin(pendingData, null);
+            OtherPlayerDetailManager.Instance.OpenOtherHeroDetailWin(new ViewHeroDetailData()
+            {
+                viewHeroType = 0,
+                clickHeroData = data,
+            });
             return;
         }
 
@@ -71,7 +76,7 @@
         // 灏濊瘯鐩存帴浠庣紦瀛樿幏鍙栨暟鎹�
         if (TryGetNPCAttr((uint)data.mapID, (uint)data.funcLineID, (uint)data.npcID, out ViewNPCAttr attr))
         {
-            OpenNPCDetailWin(pendingData, attr);
+            OpenNPCDetailWin(attr);
         }
         else
         {
@@ -108,40 +113,24 @@
         int posNum = pendingData.posNum + 1;
         if (!heroData.ContainsKey(posNum))
             return;
-        OtherPlayerDetailManager.Instance.viewHeroType = 0;
-        OtherPlayerDetailManager.Instance.clickHeroData = pendingData;
-        OtherPlayerDetailManager.Instance.heroData = heroData[posNum];
-        OtherPlayerDetailManager.Instance.heroDatas = heroList;
 
-        if (!UIManager.Instance.IsOpened<OtherHeroDetailWin>())
+        OtherPlayerDetailManager.Instance.OpenOtherHeroDetailWin(new ViewHeroDetailData()
         {
-            UIManager.Instance.OpenWindow<OtherHeroDetailWin>();
-        }
+            viewHeroType = 0,
+            clickHeroData = pendingData,
+            heroData = heroData[posNum],
+            heroDatas = heroList,
+        });
     }
 
-
-    private void OpenNPCDetailWin(BattleClickHeroData data, ViewNPCAttr npcAttr)
+    public ViewNPCAttr viewNPCAttr;
+    private void OpenNPCDetailWin(ViewNPCAttr viewNPCAttr)
     {
-        OtherPlayerDetailManager.Instance.viewHeroType = 0;
-        OtherPlayerDetailManager.Instance.clickHeroData = data;
-        OtherPlayerDetailManager.Instance.viewNPCAttr = npcAttr;
-
-        if (data.isMySide)
+        this.viewNPCAttr = viewNPCAttr;
+        if (!UIManager.Instance.IsOpened<OtherNPCDetailWin>())
         {
-            if (!UIManager.Instance.IsOpened<OtherHeroDetailWin>())
-            {
-                UIManager.Instance.OpenWindow<OtherHeroDetailWin>();
-            }
+            UIManager.Instance.OpenWindow<OtherNPCDetailWin>();
         }
-        else
-        {
-            if (!UIManager.Instance.IsOpened<OtherNPCDetailWin>())
-            {
-                UIManager.Instance.OpenWindow<OtherNPCDetailWin>();
-            }
-        }
-
-
     }
 
     // --- 瑙f瀽灞炴�у瓧鍏� ---
@@ -231,7 +220,7 @@
             {
                 if (TryGetNPCAttr((uint)pendingData.mapID, (uint)pendingData.funcLineID, (uint)pendingData.npcID, out ViewNPCAttr targetAttr))
                 {
-                    OpenNPCDetailWin(pendingData, targetAttr);
+                    OpenNPCDetailWin(targetAttr);
                 }
                 // 澶勭悊瀹屾瘯锛岄噸缃姸鎬�
                 ResetPendingState();
@@ -277,6 +266,7 @@
     }
 }
 
+
 public class ViewNPCAttr
 {
     public byte PosNum;        // 鍦ㄦ湰闃靛涓殑绔欎綅锛屼粠1寮�濮�

--
Gitblit v1.8.0