using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class SkinStoreWin : UIBase
|
{
|
[SerializeField] Button giftBtn;
|
|
[SerializeField] ScrollerController scroller;
|
|
|
|
protected override void InitComponent()
|
{
|
giftBtn.AddListener(() =>
|
{
|
UIManager.Instance.OpenWindow<HeroSkinGiftWin>();
|
});
|
|
}
|
|
|
protected override void OnPreOpen()
|
{
|
scroller.OnRefreshCell += OnRefreshCell;
|
StoreModel.Instance.RefreshShopEvent += Show;
|
StoreModel.Instance.RefreshBuyShopLimitEvent += Show;
|
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
scroller.OnRefreshCell -= OnRefreshCell;
|
StoreModel.Instance.RefreshShopEvent -= Show;
|
StoreModel.Instance.RefreshBuyShopLimitEvent -= Show;
|
}
|
|
void Display()
|
{
|
CreateScroller();
|
}
|
|
void Show()
|
{
|
scroller.m_Scorller.RefreshActiveCellViews();
|
}
|
|
void CreateScroller()
|
{
|
if (!StoreModel.Instance.storeTypeDict.ContainsKey(StoreModel.skinStoreType))
|
{
|
return;
|
}
|
|
int jumpIndex = -1;
|
scroller.Refresh();
|
var list = StoreModel.Instance.storeTypeDict[StoreModel.skinStoreType];
|
for (int i = 0; i < list.Count; i++)
|
{
|
if (i % 4 == 0)
|
{
|
scroller.AddCell(ScrollerDataType.Header, i);
|
}
|
if (jumpIndex == -1 && list[i].shopId == StoreModel.Instance.jumpShopID)
|
{
|
jumpIndex = i / 4;
|
}
|
}
|
scroller.Restart();
|
scroller.lockType = EnhanceLockType.KeepVertical;
|
if (StoreModel.Instance.jumpShopID != 0)
|
{
|
scroller.JumpIndex(jumpIndex);
|
StoreModel.Instance.jumpShopID = 0;
|
}
|
}
|
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as SkinStoreLineCell;
|
_cell.Display(cell.index);
|
}
|
|
|
}
|