using UnityEngine;
|
|
public class HeroReturnShopWin : UIBase
|
{
|
[SerializeField] OwnItemCell ownItemCell;
|
[SerializeField] ButtonEx closeButton;
|
[SerializeField] TextEx timeText;
|
[SerializeField] ScrollerController scroller;
|
HeroReturnManager manager => HeroReturnManager.Instance;
|
protected override void InitComponent()
|
{
|
closeButton.SetListener(CloseWindow);
|
}
|
|
protected override void OnPreOpen()
|
{
|
scroller.OnRefreshCell += OnRefreshCell;
|
StoreModel.Instance.RefreshShopEvent += CreateScroller;
|
StoreModel.Instance.RefreshBuyShopLimitEvent += CreateScroller;
|
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
|
if (!manager.IsShopVisitedToday)
|
{
|
HeroReturnManager.Instance.SaveShopVisitTimeData();
|
manager.UpdateRedpoint();
|
}
|
|
var act = manager.GetOperationHeroAppearInfo();
|
if (act == null) return;
|
|
var config = ActHeroAppearConfig.Get(act.CfgID);
|
if (config == null) return;
|
|
ownItemCell.itemID = config.ExShopCostItemID;
|
CreateScroller();
|
OnSecondEvent();
|
}
|
|
protected override void OnPreClose()
|
{
|
scroller.OnRefreshCell -= OnRefreshCell;
|
StoreModel.Instance.RefreshShopEvent -= CreateScroller;
|
StoreModel.Instance.RefreshBuyShopLimitEvent -= CreateScroller;
|
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
|
StoreModel.Instance.selectStoreFuncType = StoreFunc.Normal;
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as HeroReturnShopLineCell;
|
_cell.Display(cell.index);
|
}
|
|
private void OnSecondEvent()
|
{
|
manager.GetActTimeStr(timeText);
|
}
|
|
void CreateScroller()
|
{
|
var act = manager.GetOperationHeroAppearInfo();
|
if (act == null) return;
|
|
var config = ActHeroAppearConfig.Get(act.CfgID);
|
if (config == null) return;
|
|
if (!StoreModel.Instance.storeTypeDict.TryGetValue(config.ExShopType, out var list)) return;
|
|
scroller.Refresh();
|
for (int i = 0; i < list.Count; i++)
|
{
|
if (i % 3 == 0)
|
{
|
scroller.AddCell(ScrollerDataType.Header, i);
|
}
|
}
|
scroller.Restart();
|
scroller.lockType = EnhanceLockType.KeepVertical;
|
}
|
|
}
|