using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
///
/// 武将列表
///
public class HeroListWin : UIBase
{
[SerializeField] Button heroPackBtn;
[SerializeField] Text heroPackText;
[SerializeField] ScrollerController heroListScroller;
[SerializeField] GameObject heroListEmpty;
[SerializeField] List attrOnList; //上阵属性加成
[SerializeField] GameObject attrOnTip;
[SerializeField] Button attrOnTipBtn;
[SerializeField] Button changeHeroPosBtn; //布阵按钮
private List countrySelectImgList;
private List jobSelectImgList;
SinglePack singlePack;
///
protected override void InitComponent()
{
heroPackBtn.AddListener(() =>
{
HeroUIManager.Instance.QueryUnLockHeroPack();
});
changeHeroPosBtn.AddListener(() =>
{
HeroUIManager.Instance.selectTeamType = TeamType.Story;
UIManager.Instance.OpenWindow();
});
}
protected override void OnPreOpen()
{
singlePack = PackManager.Instance.GetSinglePack(PackType.Hero);
heroListScroller.OnRefreshCell += OnRefreshCell;
//需要考虑调整为武将的事件,而不是背包
PackManager.Instance.RefreshItemEvent += RefreshPakCount;
HeroUIManager.Instance.SortHeroList();
CreateScroller();
Refresh();
}
protected override void OnPreClose()
{
heroListScroller.OnRefreshCell -= OnRefreshCell;
PackManager.Instance.RefreshItemEvent -= RefreshPakCount;
}
public override void Refresh()
{
if (singlePack == null || singlePack.GetAllItems().Count <= 0)
{
heroListEmpty.SetActive(true);
heroListScroller.SetActive(false);
}
else
{
heroListEmpty.SetActive(false);
heroListScroller.SetActive(true);
}
OnBattleTeamAttrPer();
RefreshPakCount(PackType.Hero, 0, 0);
}
//上阵加成
void OnBattleTeamAttrPer()
{
var valuePer = 0;
var team = TeamManager.Instance.GetTeam(TeamType.Story);
if (team != null)
{
for (int i = 0; i < team.serverData.Length; i++)
{
var hero = HeroManager.Instance.GetHero(team.serverData[i].guid);
if (hero != null)
{
valuePer += hero.GetOnBattleAddPer();
}
}
}
//上阵属性
for (int i = 0; i < attrOnList.Count; i++)
{
attrOnList[i].text = PlayerPropertyConfig.GetFullDescription(new Int2(PlayerPropertyConfig.basePerAttrs[i], valuePer));
}
}
void OnRefreshCell(ScrollerDataType type, CellView cell)
{
var _cell = cell as HeroCardLineCell;
_cell.Display(cell.index);
}
void CreateScroller()
{
heroListScroller.Refresh();
for (int i = 0; i < HeroUIManager.Instance.heroSortList.Count; i++)
{
if (i % 4 == 0)
{
heroListScroller.AddCell(ScrollerDataType.Header, i);
}
}
heroListScroller.Restart();
}
void RefreshPakCount(PackType type, int index, int itemID)
{
if (type != PackType.Hero)
return;
if (singlePack == null)
return;
int count = singlePack.GetAllItems().Count;
heroPackText.text = UIHelper.AppendColor(count > singlePack.unlockedGridCount ? TextColType.Red : TextColType.NavyBrown,
string.Format("{0}/{1}", count, singlePack.unlockedGridCount));
}
}