using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class GetWaysWin : Window
|
{
|
[SerializeField]
|
private ScrollerController _waysCtrl;
|
[SerializeField]
|
private Transform waysLineCell;
|
|
[SerializeField]
|
private Button _closeBtn;
|
|
GetItemPathModel _itemPathModel;
|
GetItemPathModel itemPathModel
|
{
|
get
|
{
|
return _itemPathModel ?? (_itemPathModel = ModelCenter.Instance.GetModel<GetItemPathModel>());
|
}
|
}
|
|
DailyQuestModel _questModel;
|
DailyQuestModel QuestModel
|
{
|
get { return _questModel ?? (_questModel = ModelCenter.Instance.GetModel<DailyQuestModel>()); }
|
}
|
|
protected override void BindController()
|
{
|
_waysCtrl.OnRefreshCell += RefreshWayCell;
|
}
|
|
protected override void AddListeners()
|
{
|
_closeBtn.onClick.AddListener(CloseWin);
|
}
|
|
protected override void OnPreOpen()
|
{
|
CreateWayCell();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
transform.SetAsLastSibling();
|
}
|
|
protected override void OnPreClose()
|
{
|
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
private List<GetItemWaysConfig> getWayslist;
|
private void CreateWayCell()
|
{
|
getWayslist = itemPathModel.GetWaysList(itemPathModel.chinItemModel);
|
_waysCtrl.Refresh();
|
int i = 0;
|
int remain = getWayslist.Count % waysLineCell.childCount;
|
int line = (int)getWayslist.Count / waysLineCell.childCount;
|
if (remain > 0)
|
{
|
line += 1;
|
}
|
|
for (i = 0; i < line; i++)
|
{
|
_waysCtrl.AddCell(ScrollerDataType.Header, i);
|
}
|
_waysCtrl.Restart();
|
}
|
|
private void RefreshWayCell(ScrollerDataType type, CellView cell)
|
{
|
int i = 0;
|
for (i = 0; i < cell.transform.childCount; i++)
|
{
|
WayCell wayCell = cell.transform.GetChild(i).GetComponent<WayCell>();
|
if (wayCell == null)
|
wayCell = cell.transform.GetChild(i).gameObject.AddComponent<WayCell>();
|
|
int index = (cell.transform.childCount) * cell.index + i;
|
if (index <= getWayslist.Count - 1)
|
{
|
cell.transform.GetChild(i).gameObject.SetActive(true);
|
GetItemWaysConfig itemWaysModel = getWayslist[index];
|
wayCell.icon.SetSprite(itemWaysModel.Icon);
|
wayCell.wayName.text = itemWaysModel.Text;
|
wayCell.funcName.text = itemWaysModel.name;
|
wayCell.wayButton.RemoveAllListeners();
|
wayCell.wayButton.AddListener(() => {
|
ClickWayCell(itemWaysModel);
|
});
|
}
|
else
|
{
|
cell.transform.GetChild(i).gameObject.SetActive(false);
|
}
|
}
|
}
|
|
public void ClickWayCell(GetItemWaysConfig itemWaysModel)
|
{
|
CloseImmediately();
|
itemPathModel.ClickGetWay(itemPathModel.chinItemModel.ID, itemWaysModel);
|
}
|
|
private void CloseWin()
|
{
|
itemPathModel.ResetAllModel();
|
Close();
|
}
|
|
}
|
}
|