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(); } } FlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel(); } } 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 == null|| 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(); } } } }