using vnxbqy.UI; using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using UnityEngine.UI; public class ExchangeActiveTokenWin : Window { [SerializeField] CyclicScroll m_EquipsScroll; [SerializeField] Button m_CloseBtn; [SerializeField] Button m_ConvertBtn; [SerializeField] Text m_ActiveCanGetText; [SerializeField] Text m_ActiveCountText; private ExchangeActiveTokenModel m_Model { get { return ModelCenter.Instance.GetModel(); } } private const int MINLINECOUNT = 5; protected override void AddListeners() { m_CloseBtn.AddListener(() => Close()); m_ConvertBtn.AddListener(OnConvertBtnDown); } protected override void BindController() { } protected override void OnAfterClose() { m_EquipsScroll.Dispose(); m_Model.RefreshActiveCanGetEvent -= RefreshActiveCanGet; m_Model.ExchangetSuccessEvent -= ExchangeSuccess; } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnPreOpen() { RefreshEquipsScroll(); m_Model.RefreshActiveCanGetEvent += RefreshActiveCanGet; m_Model.ExchangetSuccessEvent += ExchangeSuccess; } private void ExchangeSuccess() { RefreshEquipsScroll(); } private void RefreshActiveCanGet() { m_ActiveCanGetText.text = m_Model.GetTotalActiveCount().ToString(); } private void RefreshActiveCount() { m_ActiveCountText.text = UIHelper.ReplaceLargeNum(UIHelper.GetMoneyCnt(15)); } private void OnConvertBtnDown() { m_Model.SendExchangeRequest(); } private void RefreshEquipsScroll() { var itemModelList = m_Model.GetShowEquips(); int count = itemModelList.Count / 5 + (itemModelList.Count % 5 == 0 ? 0 : 1); count = Mathf.Max(MINLINECOUNT, count); List itemModelAryList = new List(); for (int i = 0; i < count; i++) { ItemModel[] itemModelAry = new ItemModel[5]; for (int j = 0; j < 5; j++) { int id = 5 * i + j; if (id >= itemModelList.Count) { break; } itemModelAry[j] = itemModelList[id]; } itemModelAryList.Add(itemModelAry); } m_EquipsScroll.Init(itemModelAryList); RefreshActiveCanGet(); RefreshActiveCount(); } }