yyl
2026-05-11 51b0f6ed9f4e1d3bb6f8144470b46908c7699a96
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
 
/// <summary>
/// 积分招募规则
/// </summary>
public class HeroCallScoreRuleWin : UIBase
{
 
    [SerializeField] ScrollerController scrollerController;
    [SerializeField] Transform heroSelectBehaviour;
    HeroSelectBehaviour fiterManager;  //武将筛选
 
    protected override void InitComponent()
    {
        
    }
 
 
    protected override void OnPreOpen()
    {
 
        HeroUIManager.Instance.SortHeroCallList();
        scrollerController.OnRefreshCell += OnRefreshCell;
        Refresh();
        CreateScroller();
    }
 
    protected override void OnPreClose()
    {
        scrollerController.OnRefreshCell -= OnRefreshCell;
    }
 
    public override void Refresh()
    {
        if (null != fiterManager)
        {
            fiterManager.Display(0, SelectJobCountry);
        }
        else
        {
            HeroSelectBehaviour.Create(heroSelectBehaviour).ContinueWith(fmgr =>
            {
                if (this == null)
                {
                    if (fmgr != null)
                    {
                        GameObject.DestroyImmediate(fmgr.gameObject);
                    }
                    return;
                }
                fiterManager = fmgr;
                fiterManager.Display(0, SelectJobCountry);
            }).Forget();   
        }
    }
 
    /// 回调参数: 职业,国家,伤害类型,6大战斗属性,特殊属性
    void SelectJobCountry(List<int> selects)
    {
        HeroUIManager.Instance.selectHeroCallList = selects;
 
        HeroUIManager.Instance.SortHeroCallList();
        scrollerController.m_Scorller.RefreshActiveCellViews();
    }
 
    void OnRefreshCell(ScrollerDataType type, CellView cellView)
    {
        var _cell = cellView as HeroSmallHeadLineCell;
        _cell.Display(cellView.index);
    }
 
    void CreateScroller()
    {
        scrollerController.Refresh();
        for (int i = 0; i < HeroUIManager.Instance.heroCallSortList.Count; i++)
        {
            if (i % 4 == 0)
            {
                scrollerController.AddCell(ScrollerDataType.Header, i);
            }
        }
        scrollerController.Restart();
    }
}