yyl
2026-01-27 ac93e899d5c6331e89ccae552ecbb502a9652d01
Main/System/HeroUI/HeroPosWin.cs
@@ -20,9 +20,6 @@
    [SerializeField] List<Image> scenePosImgs;  //场景布阵位置
    [SerializeField] HeroScenePosCell[] sceneHero;
    [SerializeField] GroupButtonEx attackTeamBtn;
    [SerializeField] GroupButtonEx defendTeamBtn;
    [SerializeField] Text fightPowerText;   //由客户端自己预算的战力
    [SerializeField] ScrollerController heroListScroller;
    [SerializeField] Transform heroListEmpty;
@@ -34,8 +31,6 @@
    [SerializeField] Button oneKeyOnBtn;     //一键上阵
    [SerializeField] Button saveBtn;        //保存阵型
    [SerializeField] Button backBtn;      //退出界面
    [SerializeField] GroupButtonEx jjcBtn;       //竞技场
    // [SerializeField] GroupButtonEx tttBtn;        //通天塔
    [SerializeField] GroupButtonEx mainFBBtn;     //主线副本
    //羁绊
@@ -43,8 +38,13 @@
    [SerializeField] HeroHeadBaseCell flyHead;
    [SerializeField] CanvasGroup flyAlphaTween;
    [SerializeField] ButtonEx lineupRecommendBtn; //阵容推荐
    [SerializeField] Transform caseesObj;
    FuncPresetChooseCells presetChooseCells;
    [SerializeField] Button funPresetBtn;
    Sequence sequence;
    CancellationTokenSource _cts;
@@ -66,20 +66,6 @@
    protected override void InitComponent()
    {
        mainFBBtn.AddListener(() =>
        {
            SelectTeamFunc(TeamManager.Instance.GetMainTeamID());
        });
        jjcBtn.AddListener(() =>
        {
            SelectTeamFunc(TeamManager.Instance.GetTeamID((int)BattlePreSetType.Arena));
        });
        // tttBtn.AddListener(() =>
        // {
        //     SelectTeamFunc(TeamType.Tower);
        // });
        showConnTipToggleBtn.AddListener((value) =>
        {
@@ -107,6 +93,16 @@
        m_IsToggleOn = LocalSave.GetBool("ShowConn" + PlayerDatas.Instance.baseData.PlayerID, false);
        fiterManager = HeroSelectBehaviour.Create(heroSelectBehaviour);
        var presetObj = UIUtility.CreateWidget("FuncPresetChooseCells", "FuncPresetChooseCells");
        presetObj.transform.SetParentEx(caseesObj, Vector3.zero, Quaternion.identity, Vector3.one);
        presetChooseCells = presetObj.GetComponent<FuncPresetChooseCells>();
        presetChooseCells.ChangeAlignment(TextAnchor.MiddleCenter);
        funPresetBtn.AddListener(()=>
        {
            FuncPresetManager.Instance.ClickBattlePreset((int)BattlePreSetType.Story);
        });
    }
@@ -117,9 +113,8 @@
        HeroUIManager.Instance.OnTeamPosChangeEvent += TeamChangeEvent;
        TeamManager.Instance.OnTeamChange += OnTeamChange;
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
        ShowFuncBtn();
        FuncPresetManager.Instance.OnFuncPresetUseDataEvent += OnFuncPresetUseDataEvent;
        SelectTiltleBtn();
        // CreateScroller();
        Display();
        DisplayLineupRecommend();
    }
@@ -131,6 +126,7 @@
        HeroUIManager.Instance.OnTeamPosChangeEvent -= TeamChangeEvent;
        TeamManager.Instance.OnTeamChange -= OnTeamChange;
        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
        FuncPresetManager.Instance.OnFuncPresetUseDataEvent -= OnFuncPresetUseDataEvent;
        TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType).RestoreTeam();
    }
@@ -147,44 +143,35 @@
        lineupRecommendBtn.SetActive(isOpen);
    }
    void ShowFuncBtn()
    {
        jjcBtn.SetActive(FuncOpen.Instance.IsFuncOpen(ArenaManager.Instance.DeployTroopsFuncId));
    }
    void SelectTiltleBtn()
    {
        if (functionOrder == 0)
        {
            mainFBBtn.SelectBtn();
        }
        else if (functionOrder == 1)
        {
            jjcBtn.SelectBtn();
        }
        //方案变更 只有主战
        mainFBBtn.SelectBtn();
    }
    void OnFuncPresetUseDataEvent(int type)
    {
        HeroUIManager.Instance.selectTeamType = TeamManager.Instance.GetMainTeamID();
        Display();
    }
    public void Display()
    {
        OnBattleTeamAttrPer();
        RefreshOnTeamCountry();
        RefreshOnTeamBtn();
        RefreshTeamHero();
        RefreshFlyHead();
        RefreshConn();
        RefreshEmptyTip();
        showConnTipToggleBtn.isOn = isToggleOn;
        fiterManager.Display(0, SelectJobCountry);
        fightPowerText.text = UIHelper.ReplaceLargeArtNum(FightPowerManager.Instance.GetTeamFightPower(HeroUIManager.Instance.selectTeamType, true));
        presetChooseCells.Display((int)BattlePreSetType.Story, (int)FuncPresetType.Team);
        funPresetBtn.SetActive(FuncPresetManager.Instance.IsPreShow());
    }
    void RefreshFlyHead()
@@ -247,33 +234,7 @@
        heroListScroller.Restart();
    }
    //上阵加成
    void OnBattleTeamAttrPer()
    {
        var valuePer = 0;
        var team = TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType);
        if (team != null)
        {
            for (int i = 0; i < team.tempHeroes.Length; i++)
            {
                if (team.tempHeroes[i] == null)
                    continue;
                var hero = HeroManager.Instance.GetHero(team.tempHeroes[i].guid);
                if (hero != null)
                {
                    valuePer += hero.GetAddPer();
                }
            }
        }
        // //上阵属性
        // for (int i = 0; i < attrOnList.Length; i++)
        // {
        //     string format = valuePer == 0 ? "{0}+{1}" : "{0}+" + UIHelper.AppendColor(TextColType.Green, "{1}", false);
        //     attrOnList[i].text = PlayerPropertyConfig.GetFullDescription(PlayerPropertyConfig.basePerAttrs[i], valuePer, format);
        // }
    }
    //上阵武将国家光环激活
    void RefreshOnTeamCountry(bool playEffect = false)
    {
@@ -374,7 +335,6 @@
        RefreshPosScale();
        heroListScroller.m_Scorller.RefreshActiveCellViews();
        RefreshOnTeamCountry(true);
        OnBattleTeamAttrPer();
        //表现飞入,连续点击不同头像触发的话则重置
        if (flyFrom > -1)
@@ -499,19 +459,6 @@
    {
        var team = TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType);
        team.SaveTeam();
    }
    void SelectTeamFunc(int type)
    {
        if (HeroUIManager.Instance.selectTeamType == type)
        {
            return;
        }
        HeroUIManager.Instance.selectTeamType = type;
        HeroUIManager.Instance.SortHeroOnTeamList();
        Display();
        heroListScroller.m_Scorller.RefreshActiveCellViews();
    }
    protected void OnTeamChange(int teamType)