//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, June 11, 2019
|
//--------------------------------------------------------
|
|
using UnityEngine.UI;
|
using vnxbqy.UI;
|
|
|
|
public class ManyDayRechargeWin : ILWindow
|
{
|
|
Text m_MoneyAd;
|
Text m_ActiveInfo;
|
Text m_TimeInfo;
|
|
ScrollerController m_AwardScrollControl;
|
ScrollerController m_TitleScrollControl;
|
|
|
#region Built-in
|
protected override void BindController()
|
{
|
m_MoneyAd = proxy.GetWidgtEx<Text>("Text_Money");
|
m_ActiveInfo = proxy.GetWidgtEx<Text>("info");
|
m_TimeInfo = proxy.GetWidgtEx<Text>("Text_OperationTime");
|
m_AwardScrollControl = proxy.GetWidgtEx<ScrollerController>("Scroller");
|
m_TitleScrollControl = proxy.GetWidgtEx<ScrollerController>("ScrollerTitle");
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
m_AwardScrollControl.OnRefreshCell += OnRefreshCell;
|
m_TitleScrollControl.OnRefreshCell += OnTitleRefreshCell;
|
ManyDayRechargeModel.Instance.onSelectUpdate += OnSelectUpdate;
|
ManyDayRechargeModel.Instance.onRechargeInfoUpdate += onRechargeInfoUpdate;
|
ILOperationTimeHepler.Instance.operationTimeUpdateEvent += operationTimeUpdateEvent;
|
ManyDayRechargeModel.Instance.selectType = ManyDayRechargeModel.Instance.GetSelectType();
|
|
}
|
|
|
protected override void OnAfterOpen()
|
{
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
m_AwardScrollControl.OnRefreshCell -= OnRefreshCell;
|
m_TitleScrollControl.OnRefreshCell -= OnTitleRefreshCell;
|
ManyDayRechargeModel.Instance.onSelectUpdate -= OnSelectUpdate;
|
ManyDayRechargeModel.Instance.onRechargeInfoUpdate -= onRechargeInfoUpdate;
|
ILOperationTimeHepler.Instance.operationTimeUpdateEvent -= operationTimeUpdateEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
void Display()
|
{
|
DisplayBase();
|
DisplayTitleScroll();
|
DisplayAwardScroll();
|
DisplayTime();
|
}
|
|
void DisplayBase()
|
{
|
var showNum = UIHelper.GetMoneyFormat(ManyDayRechargeModel.Instance.selectType);
|
m_MoneyAd.text = showNum.ToString();
|
|
m_ActiveInfo.text = Language.Get("ManyDayRecharge2", showNum);
|
|
}
|
|
void DisplayTitleScroll()
|
{
|
m_TitleScrollControl.Refresh();
|
for (int i = 0; i < ManyDayRechargeModel.Instance.rechargeList.Count; i++)
|
{
|
//传入档位价格
|
m_TitleScrollControl.AddCell(ScrollerDataType.Header, ManyDayRechargeModel.Instance.rechargeList[i]);
|
}
|
m_TitleScrollControl.Restart();
|
|
m_TitleScrollControl.JumpIndex(ManyDayRechargeModel.Instance.rechargeList.IndexOf(ManyDayRechargeModel.Instance.selectType));
|
}
|
|
void DisplayAwardScroll()
|
{
|
OperationBase operationBase;
|
if (!OperationTimeHepler.Instance.TryGetOperationTime(ManyDayRechargeModel.operationType, out operationBase))
|
{
|
return;
|
}
|
OperationManyDayRecharge operation = operationBase as OperationManyDayRecharge;
|
|
var jumpIndex = -1;
|
var index = 0;
|
m_AwardScrollControl.Refresh();
|
var recharges = operation.drlcInfoDict[ManyDayRechargeModel.Instance.selectType];
|
for (var i = 0; i < recharges.Count; i++)
|
{
|
//传入档位的数组索引
|
m_AwardScrollControl.AddCell(ScrollerDataType.Header, i);
|
var state = ManyDayRechargeModel.Instance.GetRechargeStateByIndex(ManyDayRechargeModel.Instance.selectType,
|
recharges[i].NeedDays, recharges[i].AwardIndex);
|
//优先可领取的 然后找到顺位未达成的
|
if (state == 1)
|
{
|
jumpIndex = index;
|
}
|
else if (jumpIndex == -1 && state == 0)
|
{
|
//顺位未达成
|
jumpIndex = index;
|
}
|
index++;
|
}
|
|
m_AwardScrollControl.Restart();
|
|
if (jumpIndex != -1)
|
{
|
m_AwardScrollControl.JumpIndex(jumpIndex);
|
}
|
}
|
|
|
private void OnSelectUpdate()
|
{
|
DisplayBase();
|
m_TitleScrollControl.m_Scorller.RefreshActiveCellViews();
|
DisplayAwardScroll();
|
}
|
|
private void onRechargeInfoUpdate()
|
{
|
m_AwardScrollControl.m_Scorller.RefreshActiveCellViews();
|
}
|
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var rechargeCell = cell.GetILBehaviour<ManyDayRechargeCell>();
|
//传入档位字典的数组索引
|
rechargeCell.Display(cell.index);
|
}
|
|
private void OnTitleRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var title = cell.GetILBehaviour<ManyDayTitleCell>();
|
//传入档位价格
|
title.Display(cell.index);
|
}
|
|
private void DisplayTime()
|
{
|
OperationBase operationBase;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(ManyDayRechargeModel.operationType, out operationBase))
|
{
|
OperationManyDayRecharge operation = operationBase as OperationManyDayRecharge;
|
m_TimeInfo.text = StringUtility.Contact(Language.Get("ExpActivity_Text1"), operation.ToDisplayTime());
|
}
|
}
|
|
private void operationTimeUpdateEvent(Operation type)
|
{
|
if (type == ManyDayRechargeModel.operationType)
|
{
|
ManyDayRechargeModel.Instance.selectType = ManyDayRechargeModel.Instance.GetSelectType();
|
Display();
|
}
|
}
|
|
}
|