using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using Cysharp.Threading.Tasks;
using System.Threading;
using System;
///
/// 武将布阵界面
///
public class HeroPosWin : UIBase
{
[SerializeField] Text[] attrOnList; //上阵属性加成
[SerializeField] Button countryOnBtn;
[SerializeField] Image countryOnImg; //上阵阵型激活国家
[SerializeField] UIEffectPlayer countryEffect;
[SerializeField] List OnCountImgs; //上阵数量激活
[SerializeField] List scenePosImgs; //场景布阵位置
[SerializeField] HeroScenePosCell[] sceneHero;
[SerializeField] GroupButtonEx attackTeamBtn;
[SerializeField] GroupButtonEx defendTeamBtn;
[SerializeField] Text fightPowerText; //由客户端自己预算的战力
[SerializeField] ScrollerController heroListScroller;
[SerializeField] Transform heroListEmpty;
[SerializeField] Toggle showConnTipToggleBtn;
[SerializeField] HeroSelectBehaviour fiterManager; //武将筛选
[SerializeField] Button oneKeyOnBtn; //一键上阵
[SerializeField] Button saveBtn; //保存阵型
[SerializeField] Button backBtn; //退出界面
[SerializeField] GroupButtonEx jjcBtn; //竞技场
// [SerializeField] GroupButtonEx tttBtn; //通天塔
[SerializeField] GroupButtonEx mainFBBtn; //主线副本
//羁绊
[SerializeField] HeroConnectionCell connetionForm;
[SerializeField] HeroHeadBaseCell flyHead;
[SerializeField] CanvasGroup flyAlphaTween;
Sequence sequence;
CancellationTokenSource _cts;
Queue showConnectTipQueue = new Queue();
private bool m_IsToggleOn = false;
private bool isToggleOn
{
get { return m_IsToggleOn; }
set
{
if (m_IsToggleOn != value)
{
m_IsToggleOn = value;
LocalSave.SetBool("ShowConn" + PlayerDatas.Instance.baseData.PlayerID, value);
}
}
}
protected override void InitComponent()
{
attackTeamBtn.AddListener(() =>
{
SelectTeamFunc((TeamType)HeroUIManager.Instance.GetSelectTeamTypeByAttackType(0));
});
defendTeamBtn.AddListener(() =>
{
SelectTeamFunc((TeamType)HeroUIManager.Instance.GetSelectTeamTypeByAttackType(1));
});
mainFBBtn.AddListener(() =>
{
SelectTeamFunc(TeamType.Story);
});
jjcBtn.AddListener(() =>
{
SelectTeamFunc(TeamType.Arena);
});
// tttBtn.AddListener(() =>
// {
// SelectTeamFunc(TeamType.Tower);
// });
showConnTipToggleBtn.AddListener((value) =>
{
isToggleOn = showConnTipToggleBtn.isOn;
if (isToggleOn == false)
{
CancelCurrentTask();
}
});
oneKeyOnBtn.AddListener(OneKeyOnPos);
saveBtn.AddListener(SaveTeam);
backBtn.AddListener(CloseWindow);
countryOnBtn.AddListener(() =>
{
UIManager.Instance.OpenWindow();
});
m_IsToggleOn = LocalSave.GetBool("ShowConn" + PlayerDatas.Instance.baseData.PlayerID, false);
}
protected override void OnPreOpen()
{
HeroUIManager.Instance.selectTeamPosJob = 0;
HeroUIManager.Instance.selectTeamPosCountry = 0;
HeroUIManager.Instance.SortHeroOnTeamList();
heroListScroller.OnRefreshCell += OnRefreshCell;
HeroUIManager.Instance.OnTeamPosChangeEvent += TeamChangeEvent;
TeamManager.Instance.OnTeamChange += OnTeamChange;
CreateScroller();
Refresh();
}
protected override void OnPreClose()
{
CancelCurrentTask();
heroListScroller.OnRefreshCell -= OnRefreshCell;
HeroUIManager.Instance.OnTeamPosChangeEvent -= TeamChangeEvent;
TeamManager.Instance.OnTeamChange -= OnTeamChange;
TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType).RestoreTeam();
}
public override void Refresh()
{
OnBattleTeamAttrPer();
RefreshOnTeamCountry();
RefreshOnTeamBtn();
RefreshTeamHero();
RefreshFlyHead();
RefreshConn();
RefreshEmptyTip();
showConnTipToggleBtn.isOn = isToggleOn;
fiterManager.Display(0, HeroUIManager.Instance.selectTeamPosJob, HeroUIManager.Instance.selectTeamPosCountry, SelectJobCountry);
fightPowerText.text = UIHelper.ReplaceLargeArtNum(FightPowerManager.Instance.GetTeamFightPower(HeroUIManager.Instance.selectTeamType, true));
}
void RefreshFlyHead()
{
var flyCanvas = flyAlphaTween.GetComponent