using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
|
namespace Snxxz.UI
|
{
|
public class PrayforDrugWin : Window
|
{
|
[SerializeField] ScrollerController ctrl;
|
[SerializeField] Button prayBtn;
|
[SerializeField] Image prayBtnImg;
|
[SerializeField] Text costText;
|
[SerializeField] Button closeBtn;
|
[Header("最大格子数")]
|
[SerializeField] int gridCount = 100;
|
[Header("每行数量")]
|
[SerializeField] int columnCout = 5;
|
|
PrayForDurgModel PrayModel { get { return ModelCenter.Instance.GetModel<PrayForDurgModel>(); } }
|
List<int> praylist;
|
|
protected override void BindController()
|
{
|
ctrl.OnRefreshCell += RefreshPrayDrug;
|
}
|
|
protected override void AddListeners()
|
{
|
closeBtn.AddListener(CloseClick);
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
PrayModel.ClearPrayRedpoint();
|
praylist = PrayModel.GetPrayDruglist();
|
PrayModel.RefreshPrayEvent += UpdatePrayBtn;
|
UpdatePrayPack();
|
SetDisplayUI();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
PrayModel.RefreshPrayEvent -= UpdatePrayBtn;
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
private void SetDisplayUI()
|
{
|
costText.text = PrayModel.costMoney.ToString();
|
UpdatePrayBtn();
|
}
|
|
private void UpdatePrayBtn()
|
{
|
prayBtn.RemoveAllListeners();
|
if (PrayModel.alreadyPrayNum >= PrayModel.everyDayNum)
|
{
|
prayBtnImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
|
}
|
else
|
{
|
prayBtn.AddListener(ClickPrayBtn);
|
prayBtnImg.material = MaterialUtility.GetUIDefaultGraphicMaterial();
|
}
|
}
|
|
private void ClickPrayBtn()
|
{
|
if(PrayModel.alreadyPrayNum >= PrayModel.everyDayNum)
|
{
|
return;
|
}
|
|
if(UIHelper.GetMoneyCnt(1) >= (ulong)PrayModel.costMoney)
|
{
|
PrayModel.SendPrayElixir();
|
}
|
else
|
{
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
}
|
}
|
|
private void UpdatePrayPack()
|
{
|
if (ctrl.GetNumberOfCells(ctrl.m_Scorller) == 0)
|
{
|
ctrl.Refresh();
|
var _line = gridCount / columnCout;
|
for (int i = 0; i < _line; i++)
|
{
|
ctrl.AddCell(ScrollerDataType.Header, i);
|
}
|
ctrl.Restart();
|
}
|
else
|
{
|
ctrl.m_Scorller.RefreshActiveCellViews();
|
}
|
ctrl.JumpIndex(0);
|
}
|
|
private void RefreshPrayDrug(ScrollerDataType type, CellView cell)
|
{
|
var _line = cell.index;
|
int length = cell.transform.childCount;
|
for (int i = 0; i < length; i++)
|
{
|
var _index = _line * length + i;
|
PrayDrugCell prayCell = cell.transform.GetChild(i).GetComponent<PrayDrugCell>();
|
if(_index < praylist.Count)
|
{
|
prayCell.SetDisplayModel(praylist[_index]);
|
}
|
else
|
{
|
prayCell.SetDisplayModel(0);
|
}
|
|
}
|
}
|
}
|
}
|