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] GameObject vipPray;
|
[SerializeField] Text prayVipLimit;
|
[SerializeField] GameObject unVipPray;
|
[SerializeField] GameObject vipLimitText;
|
[SerializeField] GameObject prayMoneyGo;
|
[SerializeField] GameObject alreadyPrayObj;
|
|
[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();
|
alreadyPrayObj.SetActive(false);
|
if (PrayModel.CheckIsPrayByVip())
|
{
|
vipLimitText.SetActive(false);
|
vipPray.SetActive(false);
|
unVipPray.SetActive(true);
|
if (PrayModel.alreadyPrayNum >= PrayModel.everyDayNum)
|
{
|
prayBtnImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
|
alreadyPrayObj.SetActive(true);
|
prayMoneyGo.SetActive(false);
|
}
|
else
|
{
|
prayMoneyGo.SetActive(true);
|
prayBtn.AddListener(ClickPrayBtn);
|
prayBtnImg.material = MaterialUtility.GetUIDefaultGraphicMaterial();
|
}
|
}
|
else
|
{
|
prayBtnImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
|
vipPray.SetActive(true);
|
unVipPray.SetActive(false);
|
vipLimitText.SetActive(true);
|
prayMoneyGo.SetActive(false);
|
prayVipLimit.text = StringUtility.Contact("V",PrayModel.minVipLvLimit);
|
prayBtn.AddListener(()=>
|
{
|
PrayForDrugVipLackWin.vipLv = PrayModel.minVipLvLimit;
|
PrayForDrugVipLackWin.content = Language.Get("BlessingHint", PrayModel.costMoney);
|
WindowCenter.Instance.Open<PrayForDrugVipLackWin>();
|
});
|
}
|
|
}
|
|
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);
|
}
|
|
}
|
}
|
}
|
}
|