From 7674f5aee893b74cc0d616b9c40467c8846f243c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 05 八月 2025 20:59:25 +0800
Subject: [PATCH] 122 子 【武将】武将系统 - 武将列表界面

---
 Main/System/HeroUI/HeroListWin.cs |   63 ++++++++++++++++++++++---------
 1 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/Main/System/HeroUI/HeroListWin.cs b/Main/System/HeroUI/HeroListWin.cs
index db06fc2..c3e1a84 100644
--- a/Main/System/HeroUI/HeroListWin.cs
+++ b/Main/System/HeroUI/HeroListWin.cs
@@ -17,10 +17,7 @@
     [SerializeField] Button attrOnTipBtn;
 
     [SerializeField] Button changeHeroPosBtn; //甯冮樀鎸夐挳
-
-
-    private List<Image> countrySelectImgList;
-    private List<Image> jobSelectImgList;
+    [SerializeField] HeroSelectBehaviour fiterManager;  //姝﹀皢绛涢��
 
     SinglePack singlePack;
 
@@ -41,10 +38,12 @@
 
     protected override void OnPreOpen()
     {
+        HeroUIManager.Instance.selectHeroListJob = 0;
+        HeroUIManager.Instance.selectHeroListCountry = 0;
         singlePack = PackManager.Instance.GetSinglePack(PackType.Hero);
         heroListScroller.OnRefreshCell += OnRefreshCell;
-        //闇�瑕佽�冭檻璋冩暣涓烘灏嗙殑浜嬩欢锛岃�屼笉鏄儗鍖�
-        PackManager.Instance.RefreshItemEvent += RefreshPakCount;
+        PackManager.Instance.gridRefreshEvent += GridRefreshEvent;
+        PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
         HeroUIManager.Instance.SortHeroList();
         CreateScroller();
         Refresh();
@@ -53,13 +52,25 @@
     protected override void OnPreClose()
     {
         heroListScroller.OnRefreshCell -= OnRefreshCell;
-        PackManager.Instance.RefreshItemEvent -= RefreshPakCount;
+        PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
+        PackManager.Instance.gridRefreshEvent -= GridRefreshEvent;
     }
 
 
     public override void Refresh()
     {
-        if (singlePack == null || singlePack.GetAllItems().Count <= 0)
+        RefreshEmptyTip();
+        OnBattleTeamAttrPer();
+
+        RefreshPackCount();
+
+        fiterManager.Display(0, HeroUIManager.Instance.selectHeroListJob, HeroUIManager.Instance.selectHeroListCountry, SelectJobCountry);
+
+    }
+
+    void RefreshEmptyTip()
+    {
+        if (HeroUIManager.Instance.heroSortList.Count <= 0)
         {
             heroListEmpty.SetActive(true);
             heroListScroller.SetActive(false);
@@ -69,10 +80,15 @@
             heroListEmpty.SetActive(false);
             heroListScroller.SetActive(true);
         }
+    }
 
-        OnBattleTeamAttrPer();
-        
-        RefreshPakCount(PackType.Hero, 0, 0);
+    void SelectJobCountry(int job, int country)
+    {
+        HeroUIManager.Instance.selectHeroListJob = job;
+        HeroUIManager.Instance.selectHeroListCountry = country;
+        HeroUIManager.Instance.SortHeroList();
+        RefreshEmptyTip();
+        CreateScroller();
     }
 
     //涓婇樀鍔犳垚
@@ -92,7 +108,7 @@
                     valuePer += hero.GetOnBattleAddPer();
                 }
             }
-  
+
         }
         //涓婇樀灞炴��
         for (int i = 0; i < attrOnList.Count; i++)
@@ -120,18 +136,29 @@
         heroListScroller.Restart();
     }
 
-    void RefreshPakCount(PackType type, int index, int itemID)
+    void RefreshItemEvent(PackType type, int index, int itemID)
     {
         if (type != PackType.Hero)
             return;
-        if (singlePack == null)
-            return;
 
+
+        RefreshPackCount();
+
+    }
+
+    void RefreshPackCount()
+    {
         int count = singlePack.GetAllItems().Count;
-
         heroPackText.text = UIHelper.AppendColor(count > singlePack.unlockedGridCount ? TextColType.Red : TextColType.NavyBrown,
                             string.Format("{0}/{1}", count, singlePack.unlockedGridCount));
-        
+
     }
-    
+
+    void GridRefreshEvent(PackType type)
+    { 
+        if (type != PackType.Hero)
+            return;
+
+        RefreshPackCount();
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0