From 6b73bf71ed9b9c7a8f49043499a34bde7260c115 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 24 十二月 2025 11:59:05 +0800
Subject: [PATCH] 325 阵容推荐-客户端

---
 Main/System/LineupRecommend/LineupRecommendCell.cs    |    9 ++++
 Main/Utility/EnumHelper.cs                            |    1 
 Main/System/HeroUI/HeroPosWin.cs                      |   28 +++++++++++++-
 Main/System/LineupRecommend/LineupRecommendManager.cs |   13 +++---
 Main/System/HeroUI/HeroListWin.cs                     |   21 +++++++++-
 5 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/Main/System/HeroUI/HeroListWin.cs b/Main/System/HeroUI/HeroListWin.cs
index 914d0f0..3c5fedd 100644
--- a/Main/System/HeroUI/HeroListWin.cs
+++ b/Main/System/HeroUI/HeroListWin.cs
@@ -1,3 +1,4 @@
+using System;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
@@ -59,6 +60,7 @@
         // HeroManager.Instance.onHeroDeleteEvent += HeroDeleteEvent;
         HeroUIManager.Instance.SortHeroList();
         UIManager.Instance.OnOpenWindow += OnOpenWindow;
+        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
         // CreateScroller();
         Refresh();
         fiterManager.Display(0, SelectJobCountry);
@@ -73,8 +75,15 @@
         UIManager.Instance.OnCloseWindow -= OnCloseWindow;
         // HeroManager.Instance.onHeroDeleteEvent -= HeroDeleteEvent;
         UIManager.Instance.OnOpenWindow -= OnOpenWindow;
+        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
     }
 
+    private void OnFuncStateChangeEvent(int obj)
+    {
+        if (obj != (int)FuncOpenEnum.LineupRecommend)
+            return;
+        DisplayLineupRecommend();
+    }
 
     private void OnCloseWindow(UIBase closeUI)
     {
@@ -111,7 +120,7 @@
             HeroUIManager.Instance.isOpenHeroTip = true;
         }
     }
-    
+
 
     int FindJumpIndexByHeroID(int heroID)
     {
@@ -137,7 +146,7 @@
         OnBattleTeamAttrPer();
 
         RefreshPackCount();
-
+        DisplayLineupRecommend();
 
 
     }
@@ -241,7 +250,7 @@
         }
         heroListScroller.Restart();
         heroListScroller.lockType = EnhanceLockType.KeepVertical;
-        
+
     }
 
     int GetAttrActiveHeroCount()
@@ -290,4 +299,10 @@
 
         RefreshPackCount();
     }
+
+    public void DisplayLineupRecommend()
+    {
+        bool isOpen = FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.LineupRecommend);
+        lineupRecommendBtn.SetActive(isOpen);
+    }
 }
\ No newline at end of file
diff --git a/Main/System/HeroUI/HeroPosWin.cs b/Main/System/HeroUI/HeroPosWin.cs
index 846a166..868bb05 100644
--- a/Main/System/HeroUI/HeroPosWin.cs
+++ b/Main/System/HeroUI/HeroPosWin.cs
@@ -43,6 +43,9 @@
     [SerializeField] HeroHeadBaseCell flyHead;
     [SerializeField] CanvasGroup flyAlphaTween;
 
+
+    [SerializeField] ButtonEx lineupRecommendBtn; //闃靛鎺ㄨ崘
+
     Sequence sequence;
     CancellationTokenSource _cts;
     Queue<int> showConnectTipQueue = new Queue<int>();
@@ -105,6 +108,11 @@
             UIManager.Instance.OpenWindow<HeroFormationWin>();
         });
 
+        lineupRecommendBtn.AddListener(() =>
+        {
+            UIManager.Instance.OpenWindow<LineupRecommendBaseWin>();
+        });
+
         m_IsToggleOn = LocalSave.GetBool("ShowConn" + PlayerDatas.Instance.baseData.PlayerID, false);
         fiterManager = HeroSelectBehaviour.Create(heroSelectBehaviour);
     }
@@ -116,10 +124,12 @@
         heroListScroller.OnRefreshCell += OnRefreshCell;
         HeroUIManager.Instance.OnTeamPosChangeEvent += TeamChangeEvent;
         TeamManager.Instance.OnTeamChange += OnTeamChange;
+        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
         ShowFuncBtn();
         SelectTiltleBtn();
         // CreateScroller();
         Display();
+        DisplayLineupRecommend();
     }
 
     protected override void OnPreClose()
@@ -128,7 +138,21 @@
         heroListScroller.OnRefreshCell -= OnRefreshCell;
         HeroUIManager.Instance.OnTeamPosChangeEvent -= TeamChangeEvent;
         TeamManager.Instance.OnTeamChange -= OnTeamChange;
+        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
         TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType).RestoreTeam();
+    }
+
+    private void OnFuncStateChangeEvent(int obj)
+    {
+        if (obj != (int)FuncOpenEnum.LineupRecommend)
+            return;
+        DisplayLineupRecommend();
+    }
+
+    private void DisplayLineupRecommend()
+    {
+        bool isOpen = FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.LineupRecommend);
+        lineupRecommendBtn.SetActive(isOpen);
     }
 
     void ShowFuncBtn()
@@ -492,7 +516,7 @@
             {
                 team.AddHero(HeroManager.Instance.GetHero(guidList[i]), i, true);
             }
-        }        
+        }
 
         TeamChangeEvent(new List<int>() { 0, 1, 2, 3, 4, 5 }, -1, Vector3.zero);
 
@@ -516,7 +540,7 @@
         Display();
         heroListScroller.m_Scorller.RefreshActiveCellViews();
     }
-    
+
     protected void OnTeamChange(TeamType teamType)
     {
         if (HeroUIManager.Instance.selectTeamType == teamType)
diff --git a/Main/System/LineupRecommend/LineupRecommendCell.cs b/Main/System/LineupRecommend/LineupRecommendCell.cs
index 7d5bf70..6e90a42 100644
--- a/Main/System/LineupRecommend/LineupRecommendCell.cs
+++ b/Main/System/LineupRecommend/LineupRecommendCell.cs
@@ -53,7 +53,14 @@
         txtLineupDesc.text = GetDesc(recommendID);
         btnUse.SetListener(() =>
         {
-            manager.UseTeam(recommendID);
+            ConfirmCancel.ShowPopConfirm(Language.Get("L1003"), Language.Get("LineupRecommend06"),
+                (bool isOK) =>
+                {
+                    if (isOK)
+                    {
+                        manager.UseTeam(recommendID);
+                    }
+                });
         });
         btnOff.SetListener(() =>
         {
diff --git a/Main/System/LineupRecommend/LineupRecommendManager.cs b/Main/System/LineupRecommend/LineupRecommendManager.cs
index cc37550..dcdf40a 100644
--- a/Main/System/LineupRecommend/LineupRecommendManager.cs
+++ b/Main/System/LineupRecommend/LineupRecommendManager.cs
@@ -40,9 +40,10 @@
 
     private void OnFuncStateChangeEvent(int obj)
     {
-        if (obj != funcId)
-            return;
-        UpdateRedPoint();
+        if (obj == (int)FuncOpenEnum.Hero || obj == (int)FuncOpenEnum.LineupRecommend)
+        {
+            UpdateRedPoint();
+        }
     }
 
     private void OnPlayerLoginOk()
@@ -256,15 +257,15 @@
         }
         return false;
     }
-    readonly int funcId = 1;//姝﹀皢
     Redpoint redpoint = new Redpoint(MainRedDot.HeroCardRedpoint, MainRedDot.LineupRecommendRepoint);
     public void UpdateRedPoint()
     {
         redpoint.state = RedPointState.None;
         //姝﹀皢娌″紑涓嶅埛绾㈢偣
-        if (!FuncOpen.Instance.IsFuncOpen(funcId))
+        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Hero))
             return;
-
+        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.LineupRecommend))
+            return;
         if (TryGetJumpIndex(out int index))
         {
             redpoint.state = RedPointState.Simple;
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index ce8fa28..5747238 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -844,6 +844,7 @@
     OSGala = 47, //寮�鏈嶇洓鍏告椿鍔�
     FunctionPreview = 48, //鍔熻兘棰勮
     HeroFatesUpgrade = 49, //瀹跨紭鍗囩骇
+    LineupRecommend = 50, //闃靛鎺ㄨ崘
 }
 
 

--
Gitblit v1.8.0