using UnityEngine;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
|
public class MysticalQGWin : Window
|
{
|
[SerializeField] Text opreationTimeText;
|
[SerializeField] Image moneyIcon;
|
[SerializeField] Text moneyNumText;
|
[SerializeField] GameObject activityOpenObj;
|
[SerializeField] GameObject activityCloseObj;
|
[SerializeField] RectTransform saleItemsContent;
|
[SerializeField] List<MysticalQGSaleItem> saleItems = new List<MysticalQGSaleItem>();
|
|
Vector3 startPos = Vector3.zero;
|
StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
|
MysticalQGModel qgModel { get { return ModelCenter.Instance.GetModel<MysticalQGModel>(); } }
|
int moneyType = 0;
|
#region Built-in
|
protected override void BindController()
|
{
|
|
}
|
protected override void AddListeners()
|
{
|
|
}
|
protected override void OnPreOpen()
|
{
|
OpenServerActivityWin.tryCloseEvent += CloseOpenServerActivity;
|
qgModel.UpdateMysticalShopEvent += UpdateSaleItems;
|
storeModel.RefreshBuyShopLimitEvent += UpdateMoney;
|
SetDisplay();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
startPos = saleItemsContent.anchoredPosition3D;
|
}
|
|
protected override void OnPreClose()
|
{
|
OpenServerActivityWin.tryCloseEvent -= CloseOpenServerActivity;
|
qgModel.UpdateMysticalShopEvent -= UpdateSaleItems;
|
storeModel.RefreshBuyShopLimitEvent -= UpdateMoney;
|
saleItemsContent.anchoredPosition3D = startPos;
|
}
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
private void SetDisplay()
|
{
|
qgModel.CloseRedPoint();
|
UpdateSaleItems();
|
UpdateMoneyInfo();
|
}
|
|
private void UpdateSaleItems()
|
{
|
List<MysticalQGModel.MysticalShop> mysticalShops = null;
|
bool isHaveSell = qgModel.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<MysticalQGModel.MysticalShop> mysticalShops = null;
|
bool isHaveSell = qgModel.TryGetCurSellShop(out mysticalShops);
|
if (!isHaveSell) return true;
|
|
if(qgModel.isOpenPrompting)
|
{
|
ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("MysticalQG103"),
|
Language.Get("ConfirmCancel102"), (Action<bool, bool>)((bool isOk, bool isToggle) =>
|
{
|
if (isOk)
|
{
|
WindowCenter.Instance.Close<OpenServerActivityWin>();
|
}
|
qgModel.isOpenPrompting = !isToggle;
|
}));
|
return false;
|
}
|
return true;
|
}
|
}
|
}
|