using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
/// <summary>
|
/// 武将皮肤形象选择
|
/// </summary>
|
public class HeroSkinChooseWin : UIBase
|
{
|
[SerializeField] Button closeBtn;
|
[SerializeField] Button okBtn;
|
[SerializeField] ScrollerController skinScroller;
|
|
public static int selectIndex;
|
public static List<int> activeIndexList = new List<int>();
|
HeroConfig heroConfig;
|
|
protected override void InitComponent()
|
{
|
closeBtn.AddListener(() =>
|
{
|
CloseWindow();
|
});
|
okBtn.AddListener(() =>
|
{
|
var hero = HeroManager.Instance.GetHero(HeroUIManager.Instance.selectHeroGuid);
|
HeroUIManager.Instance.SendSkinOP(hero.heroId, heroConfig.SkinIDList[selectIndex], 2, hero.itemHero.gridIndex);
|
CloseWindow();
|
});
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
var hero = HeroManager.Instance.GetHero(HeroUIManager.Instance.selectHeroGuid);
|
heroConfig = hero.heroConfig;
|
skinScroller.OnRefreshCell += OnRefreshCell;
|
selectIndex = hero.SkinIndex;
|
activeIndexList = new List<int>();
|
for (int i = 0; i < heroConfig.SkinIDList.Length; i++)
|
{
|
if (HeroUIManager.Instance.IsHeroSkinActive(hero.heroId, heroConfig.SkinIDList[i]))
|
{
|
activeIndexList.Add(i);
|
}
|
}
|
CreateScroller();
|
}
|
|
protected override void OnPreClose()
|
{
|
skinScroller.OnRefreshCell -= OnRefreshCell;
|
heroConfig = null;
|
}
|
|
void CreateScroller()
|
{
|
|
skinScroller.Refresh();
|
for (int i = 0; i < activeIndexList.Count; i++)
|
{
|
if (i % 4 == 0)
|
{
|
skinScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
}
|
skinScroller.Restart();
|
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as HeroSkinRoleLineCell;
|
_cell.Display(heroConfig, cell.index);
|
}
|
|
public void SetSelectIndex(int index)
|
{
|
selectIndex = index;
|
skinScroller.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|