From e7e22b0cfafe53223b0a0f6b6189b2a8219f0740 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 09 九月 2025 17:08:34 +0800
Subject: [PATCH] 117 【武将】武将系统 - 图鉴

---
 Main/System/HeroUI/HeroCollectionCardCell.cs |   83 +++++++++++++++++++++--------------------
 1 files changed, 42 insertions(+), 41 deletions(-)

diff --git a/Main/System/HeroUI/HeroCollectionCardCell.cs b/Main/System/HeroUI/HeroCollectionCardCell.cs
index 3c05118..178ce11 100644
--- a/Main/System/HeroUI/HeroCollectionCardCell.cs
+++ b/Main/System/HeroUI/HeroCollectionCardCell.cs
@@ -6,70 +6,61 @@
 {
     [SerializeField] Button heroCardBtn;
     [SerializeField] Image heroCardBG;
-    [SerializeField] Material glowMaterial; // 娴佸厜鏁堟灉鏉愯川
-    [SerializeField] Text lvText;
+    [SerializeField] UIHeroController heroModel;
+    [SerializeField] List<Image> starImgList;
     [SerializeField] Image countryImg;
     [SerializeField] Image jobImg;
-    [SerializeField] UIHeroController heroModel;
-    [SerializeField] Image onStateImg;
-    [SerializeField] RedpointBehaviour redpoint;
-    [SerializeField] Image trainStateImg;
     [SerializeField] Text nameText;
-    [SerializeField] Image awakeImg;
-    [SerializeField] Text awakeLVText;
-    [SerializeField] List<Image> starImgList;
+    [SerializeField] Image trainStateImg;
+    [SerializeField] RedpointBehaviour redpoint;
+    [SerializeField] Button fullBtn;
+    [SerializeField] GameObject unGetObj;
+    [SerializeField] GameObject activeObj; // 鍙縺娲诲甫娴佸厜鏁堟灉鏉愯川
 
-    string guid;
-    public void Display(int index)
+    public void Display(int index, int quality)
     {
-        guid = HeroUIManager.Instance.heroSortList[index];
-        var hero = HeroManager.Instance.GetHero(guid);
-        if (hero == null)
-        {
-            this.gameObject.SetActive(false);
-            return;
-        }
+        var heroID = HeroUIManager.Instance.heroCollectDict[quality][index];
+        var heroConfig = HeroConfig.Get(heroID);
+        HB122_tagSCHeroInfo.tagSCHero colData;
+        HeroUIManager.Instance.TryGetHeroBookInfo(heroID, out colData);
+        heroCardBG.SetSprite("herocardbg" + heroConfig.Quality);
 
-        this.gameObject.SetActive(true);
-        heroCardBG.SetSprite("herocardbg" + hero.Quality);
-        if (glowMaterial != null)
-        {
-            heroCardBG.material = glowMaterial;
-        }
-        lvText.text = Language.Get("L1094") + hero.heroLevel.ToString();
-        var heroConfig = hero.heroConfig;
+        //鍒嗕负0鏈幏寰椼��1鍙縺娲汇��2甯歌銆�3绐佺牬鍗囩骇銆�4銆佹槦鍗囩骇銆�5宸叉弧绾�
+        int funcState = HeroUIManager.Instance.GetHeroBookState(heroID, quality);
+
+        activeObj.SetActive(funcState == 1);
+        fullBtn.SetActive(funcState == 5);
+        unGetObj.SetActive(funcState == 0);
+
         countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
         jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(heroConfig.Class));
-        heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex], heroConfig.UIScale);
-        onStateImg.SetActive(hero.IsInTeamByTeamType(TeamType.Story));
+        heroModel.Create(heroConfig.SkinIDList[0], heroConfig.UIScale);
 
-        redpoint.redpointId = MainRedDot.HeroCardRedpoint * 1000 + hero.itemHero.gridIndex;
-        var funcState = hero.funcState;
-        if (funcState > 0)
+        redpoint.redpointId = MainRedDot.HeroCardCollectRedpoint * 10000000 + heroID;
+
+        if (funcState == 3 || funcState == 4)
         {
             trainStateImg.SetActive(true);
-            trainStateImg.SetSprite("herofuncstate" + hero.funcState);
+            trainStateImg.SetSprite("herofuncstate2");
         }
         else
         {
             trainStateImg.SetActive(false);
         }
-        nameText.text = hero.breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, hero.breakLevel);
-        awakeImg.SetActive(hero.awakeLevel > 0);
-        awakeLVText.text = hero.awakeLevel.ToString();
+        nameText.text = colData.BookBreakLV == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, colData.BookBreakLV);
 
         for (int i = 0; i < starImgList.Count; i++)
         {
-            if (hero.heroStar == 0 && i == 0)
+            if (colData.BookStarLV == 0 && i == 0)
             {
                 // 鏃犳槦绾� 鐗规畩澶勭悊
                 starImgList[i].SetActive(true);
-                starImgList[i].SetSprite("herostar" + hero.heroStar);
+                starImgList[i].SetSprite("herostar" + colData.BookStarLV);
             }
-            else if ((hero.heroStar - 1) % starImgList.Count >= i)
+            else if ((colData.BookStarLV - 1) % starImgList.Count >= i)
             {
                 starImgList[i].SetActive(true);
-                starImgList[i].SetSprite("herostar" + (((hero.heroStar - 1) / starImgList.Count) + 1) * starImgList.Count);
+                starImgList[i].SetSprite("herostar" + (((colData.BookStarLV - 1) / starImgList.Count) + 1) * starImgList.Count);
             }
             else
             {
@@ -79,8 +70,18 @@
 
         heroCardBtn.AddListener(() =>
         {
-            HeroUIManager.Instance.selectHeroGuid = guid;
-            UIManager.Instance.OpenWindow<HeroTrainWin>();
+            HeroUIManager.Instance.selectCollectHeroID = heroID;
+            var state = HeroUIManager.Instance.GetHeroBookState(heroID, quality);
+            if (state == 1 || state == 3 || state == 4)
+            {
+                UIManager.Instance.OpenWindow<HeroCollectionLvUpWin>();
+            }
+        });
+        
+        fullBtn.AddListener(() =>
+        {
+            HeroUIManager.Instance.selectCollectHeroID = heroID;
+            UIManager.Instance.OpenWindow<HeroCollectionLvUpWin>();
         });
     }
 }

--
Gitblit v1.8.0