using UnityEngine;  
 | 
using UnityEngine.UI;  
 | 
using System.Collections.Generic;  
 | 
using System;  
 | 
  
 | 
namespace Snxxz.UI  
 | 
{  
 | 
      
 | 
    public class MysticalPurchaseWin : Window  
 | 
    {  
 | 
        [SerializeField] Text opreationTimeText;  
 | 
        [SerializeField] Image moneyIcon;  
 | 
        [SerializeField] Text moneyNumText;  
 | 
        [SerializeField] GameObject activityOpenObj;  
 | 
        [SerializeField] GameObject activityCloseObj;  
 | 
        [SerializeField] RectTransform saleItemsContent;  
 | 
        [SerializeField] List<MysticalPurchaseSaleItem> saleItems = new List<MysticalPurchaseSaleItem>();  
 | 
  
 | 
        Vector3 startPos = Vector3.zero;  
 | 
        StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }  
 | 
        MysticalPurchaseModel purchaseModel { get { return ModelCenter.Instance.GetModel<MysticalPurchaseModel>(); } }  
 | 
        int moneyType = 0;  
 | 
        #region Built-in  
 | 
        protected override void BindController()  
 | 
        {  
 | 
  
 | 
        }  
 | 
        protected override void AddListeners()  
 | 
        {  
 | 
             
 | 
        }  
 | 
        protected override void OnPreOpen()  
 | 
        {  
 | 
            OpenServerActivityWin.tryCloseEvent += CloseOpenServerActivity;  
 | 
            purchaseModel.UpdateMysticalShopEvent += UpdateSaleItems;  
 | 
            storeModel.RefreshBuyShopLimitEvent += UpdateMoney;  
 | 
            SetDisplay();  
 | 
        }  
 | 
   
 | 
        protected override void OnAfterOpen()  
 | 
        {  
 | 
            startPos = saleItemsContent.anchoredPosition3D;  
 | 
        }  
 | 
  
 | 
        protected override void OnPreClose()  
 | 
        {  
 | 
            OpenServerActivityWin.tryCloseEvent -= CloseOpenServerActivity;  
 | 
            purchaseModel.UpdateMysticalShopEvent -= UpdateSaleItems;  
 | 
            storeModel.RefreshBuyShopLimitEvent -= UpdateMoney;  
 | 
            saleItemsContent.anchoredPosition3D = startPos;  
 | 
        }  
 | 
        protected override void OnAfterClose()  
 | 
        {  
 | 
  
 | 
        }  
 | 
        #endregion  
 | 
  
 | 
        private void SetDisplay()  
 | 
        {  
 | 
            purchaseModel.CloseRedPoint();  
 | 
            UpdateSaleItems();  
 | 
            UpdateMoneyInfo();  
 | 
        }  
 | 
  
 | 
        private void UpdateSaleItems()  
 | 
        {  
 | 
            List<MysticalPurchaseModel.MysticalShop> mysticalShops = null;  
 | 
            bool isHaveSell = purchaseModel.TryGetCurSellShop(out mysticalShops);  
 | 
            activityCloseObj.SetActive(!isHaveSell);  
 | 
            activityOpenObj.SetActive(isHaveSell);  
 | 
            if (isHaveSell)  
 | 
            {  
 | 
                for (int i = 0; i < saleItems.Count; i++)  
 | 
                {  
 | 
                    var saleItem = saleItems[i];  
 | 
                    if (i < mysticalShops.Count)  
 | 
                    {  
 | 
                        var mysticalShop = mysticalShops[i];  
 | 
                        moneyType = mysticalShop.storeConfig.MoneyType;  
 | 
                        saleItem.SetDisplay(mysticalShop);  
 | 
                        saleItem.SetActive(true);  
 | 
                    }  
 | 
                    else  
 | 
                    {  
 | 
                        saleItem.SetActive(false);  
 | 
                    }  
 | 
                }  
 | 
            }  
 | 
        }  
 | 
  
 | 
        private void UpdateMoneyInfo()  
 | 
        {  
 | 
            moneyIcon.SetIconWithMoneyType(moneyType);  
 | 
            moneyNumText.text = UIHelper.GetMoneyCnt(moneyType).ToString();  
 | 
        }  
 | 
  
 | 
        private void UpdateMoney()  
 | 
        {  
 | 
            UpdateMoneyInfo();  
 | 
        }  
 | 
  
 | 
        private bool CloseOpenServerActivity()  
 | 
        {  
 | 
            List<MysticalPurchaseModel.MysticalShop> mysticalShops = null;  
 | 
            bool isHaveSell = purchaseModel.TryGetCurSellShop(out mysticalShops);  
 | 
            if (!isHaveSell) return true;  
 | 
  
 | 
            if(purchaseModel.isOpenPrompting)  
 | 
            {  
 | 
                ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("MysticalPurchase103"),  
 | 
                Language.Get("ConfirmCancel102"), (Action<bool, bool>)((bool isOk, bool isToggle) =>  
 | 
               {  
 | 
                  if (isOk)  
 | 
                  {  
 | 
                       WindowCenter.Instance.Close<OpenServerActivityWin>();  
 | 
                  }  
 | 
                   purchaseModel.isOpenPrompting = !isToggle;  
 | 
              }));  
 | 
                return false;  
 | 
            }  
 | 
            return true;  
 | 
        }  
 | 
    }  
 | 
}  
 |