using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class FlashRushToBuyWin : Window
|
{
|
[SerializeField] ScrollerController saleItemCtrl;
|
[SerializeField] ScrollerController saleTimeCtrl;
|
[SerializeField] Text opreationTimeText;
|
[SerializeField] Image moneyIcon;
|
[SerializeField] Text moneyNumText;
|
|
StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
|
FlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel<FlashRushToBuyModel>(); } }
|
OperationFlashRushToBuy operation = null;
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
rushToBuyModel.SetDefaultSelectSaleTime();
|
OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
|
OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
|
rushToBuyModel.UpdateSelectSaleTimeEvent += UpdateSelectSaleTime;
|
SetDisplayModel();
|
Display();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
rushToBuyModel.SetDayRemind();
|
}
|
|
protected override void OnPreClose()
|
{
|
rushToBuyModel.UpdateSelectSaleTimeEvent -= UpdateSelectSaleTime;
|
OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
|
OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
|
rushToBuyModel.ResetFlashShop();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
private void SetDisplayModel()
|
{
|
operation = null;
|
OperationBase operationBase;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.FlashRushToBuy, out operationBase))
|
{
|
operation = operationBase as OperationFlashRushToBuy;
|
}
|
}
|
|
private void Display()
|
{
|
if (rushToBuyModel.presentFlashShop.Equals(default(OperationFlashRushToBuy.FlashSaleShop))
|
|| operation == null) return;
|
|
opreationTimeText.text = StringUtility.Contact(Language.Get("ExpActivity_Text1"), operation.ToDisplayTime());
|
if (rushToBuyModel.presentFlashShop.items.Length > 0)
|
{
|
var moneyType = rushToBuyModel.presentFlashShop.items[0].moneyType;
|
moneyIcon.SetIconWithMoneyType(moneyType);
|
moneyNumText.text = UIHelper.GetMoneyCnt(moneyType).ToString();
|
}
|
CreateOperationTimes();
|
CreateSaleItem();
|
}
|
|
|
private void UpdateSelectSaleTime()
|
{
|
CreateSaleItem();
|
saleTimeCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
|
private void CreateOperationTimes()
|
{
|
if (operation == null) return;
|
|
saleTimeCtrl.Refresh();
|
for (int i = 0; i < operation.flashShops.Count; i++)
|
{
|
saleTimeCtrl.AddCell(ScrollerDataType.Header, i);
|
}
|
saleTimeCtrl.Restart();
|
}
|
|
public void CreateSaleItem()
|
{
|
saleItemCtrl.Refresh();
|
var flashItems = rushToBuyModel.presentFlashShop.items;
|
for (int i = 0; i < flashItems.Length; i++)
|
{
|
saleItemCtrl.AddCell(ScrollerDataType.Header, i);
|
}
|
saleItemCtrl.Restart();
|
}
|
|
private void OperationTimeUpdateEvent(Operation type)
|
{
|
if (type == Operation.FlashRushToBuy)
|
{
|
Display();
|
}
|
}
|
|
private void OperationStartEvent(Operation type, int state)
|
{
|
if (type == Operation.FlashRushToBuy && state == 0)
|
{
|
Display();
|
}
|
}
|
}
|
}
|