hch
1 天以前 87d5c46997d61523aed87fdb7ed0b07e9dded223
Main/System/HeroUI/HeroPosWin.cs
@@ -34,7 +34,7 @@
    [SerializeField] Button saveBtn;        //保存阵型
    [SerializeField] Button backBtn;      //退出界面
    [SerializeField] GroupButtonEx jjcBtn;       //竞技场
    [SerializeField] GroupButtonEx tttBtn;        //通天塔
    // [SerializeField] GroupButtonEx tttBtn;        //通天塔
    [SerializeField] GroupButtonEx mainFBBtn;     //主线副本
    //羁绊
@@ -48,7 +48,7 @@
    private bool m_IsToggleOn = false;
    private bool isToggleOn
    {
    {
        get { return m_IsToggleOn; }
        set
        {
@@ -80,10 +80,10 @@
        {
            SelectTeamFunc(TeamType.Arena);
        });
        tttBtn.AddListener(() =>
        {
            SelectTeamFunc(TeamType.Tower);
        });
        // tttBtn.AddListener(() =>
        // {
        //     SelectTeamFunc(TeamType.Tower);
        // });
        showConnTipToggleBtn.AddListener((value) =>
        {
@@ -114,8 +114,9 @@
        HeroUIManager.Instance.SortHeroOnTeamList();
        heroListScroller.OnRefreshCell += OnRefreshCell;
        HeroUIManager.Instance.OnTeamPosChangeEvent += TeamChangeEvent;
        TeamManager.Instance.OnTeamChange += OnTeamChange;
        CreateScroller();
        Refresh();
        Display();
    }
    protected override void OnPreClose()
@@ -123,11 +124,12 @@
        CancelCurrentTask();
        heroListScroller.OnRefreshCell -= OnRefreshCell;
        HeroUIManager.Instance.OnTeamPosChangeEvent -= TeamChangeEvent;
        TeamManager.Instance.OnTeamChange -= OnTeamChange;
        TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType).RestoreTeam();
    }
    public override void Refresh()
    public void Display()
    {
        OnBattleTeamAttrPer();
        RefreshOnTeamCountry();
@@ -136,25 +138,16 @@
        RefreshFlyHead();
        RefreshConn();
        if (HeroManager.Instance.GetHeroCount() == 0)
        {
            heroListEmpty.SetActive(true);
            heroListScroller.SetActive(false);
        }
        else
        {
            heroListEmpty.SetActive(false);
            heroListScroller.SetActive(true);
        }
        RefreshEmptyTip();
        showConnTipToggleBtn.isOn = isToggleOn;
        fiterManager.Display(0, HeroUIManager.Instance.selectTeamPosJob, HeroUIManager.Instance.selectTeamPosCountry, SelectJobCountry);
        fightPowerText.text = "1234k";
        fightPowerText.text = UIHelper.ReplaceLargeArtNum(FightPowerManager.Instance.GetTeamFightPower(HeroUIManager.Instance.selectTeamType, true));
    }
    void RefreshFlyHead()
@@ -181,6 +174,21 @@
        HeroUIManager.Instance.selectTeamPosCountry = country;
        HeroUIManager.Instance.SortHeroOnTeamList();
        CreateScroller();
        RefreshEmptyTip();
    }
    void RefreshEmptyTip()
    {
        if (HeroUIManager.Instance.heroOnTeamSortList.Count <= 0)
        {
            heroListEmpty.SetActive(true);
            heroListScroller.SetActive(false);
        }
        else
        {
            heroListEmpty.SetActive(false);
            heroListScroller.SetActive(true);
        }
    }
    void OnRefreshCell(ScrollerDataType type, CellView cell)
@@ -209,11 +217,11 @@
        var team = TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType);
        if (team != null)
        {
            for (int i = 0; i < team.serverHeroes.Length; i++)
            for (int i = 0; i < team.tempHeroes.Length; i++)
            {
                if (team.serverHeroes[i] == null)
                if (team.tempHeroes[i] == null)
                    continue;
                var hero = HeroManager.Instance.GetHero(team.serverHeroes[i].guid);
                var hero = HeroManager.Instance.GetHero(team.tempHeroes[i].guid);
                if (hero != null)
                {
                    valuePer += hero.GetOnBattleAddPer();
@@ -224,14 +232,15 @@
        //上阵属性
        for (int i = 0; i < attrOnList.Length; i++)
        {
            attrOnList[i].text = PlayerPropertyConfig.GetFullDescription(new Int2(PlayerPropertyConfig.basePerAttrs[i], valuePer));
            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)
    {
        Int2 result = HeroUIManager.Instance.GetMaxCountHeroCountry(HeroUIManager.Instance.selectTeamType);
        Int2 result = HeroUIManager.Instance.GetMaxCountHeroCountry(HeroUIManager.Instance.selectTeamType, true);
        var config = HeroLineupHaloConfig.GetConfig(result.x, result.y);
        if (config == null)
@@ -337,7 +346,7 @@
            else
            {
                sceneHero[i].SetActive(true);
                sceneHero[i].Display(teamHero.guid, i, flyFrom >= 0);
                sceneHero[i].Display(teamHero.guid, i, flyFrom >= 0, flyFrom != -2 ? true : false);
                //按scenePosImgs 顺序排序对应位置
                sceneHero[i].transform.position = scenePosImgs[i].transform.position;
                sceneHero[i].transform.localScale = Vector3.one;
@@ -347,6 +356,7 @@
        RefreshPosScale();
        heroListScroller.m_Scorller.RefreshActiveCellViews();
        RefreshOnTeamCountry(true);
        OnBattleTeamAttrPer();
        //表现飞入,连续点击不同头像触发的话则重置
        if (flyFrom > -1)
@@ -374,10 +384,12 @@
            sequence.onComplete = () => { flyHead.transform.localScale = Vector3.zero; };
            if (isToggleOn)
            {
            {
                ShowFetter(flyHero);
            }
        }
        fightPowerText.text = UIHelper.ReplaceLargeArtNum(FightPowerManager.Instance.GetTeamFightPower(HeroUIManager.Instance.selectTeamType, true));
    }
    void ShowFetter(HeroInfo hero)
@@ -386,7 +398,7 @@
        var fetterList = hero.GetActiveFetter(heroConfig, TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType));
        for (int i = 0; i < fetterList.Count; i++)
        {
            if(!showConnectTipQueue.Contains(fetterList[i]))
            if (!showConnectTipQueue.Contains(fetterList[i]))
                showConnectTipQueue.Enqueue(fetterList[i]);
        }
@@ -466,12 +478,20 @@
        {
            return;
        }
        HeroUIManager.Instance.selectTeamPosJob = 0;
        HeroUIManager.Instance.selectTeamPosCountry = 0;
        HeroUIManager.Instance.SortHeroOnTeamList();
        HeroUIManager.Instance.selectTeamType = type;
        HeroUIManager.Instance.SortHeroOnTeamList();
        Refresh();
        heroListScroller.m_Scorller.RefreshActiveCellViews();
    }
    protected void OnTeamChange(TeamType teamType)
    {
        if (HeroUIManager.Instance.selectTeamType == teamType)
        {
            HeroUIManager.Instance.SortHeroOnTeamList();
            heroListScroller.m_Scorller.RefreshActiveCellViews();
        }
    }
}