//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, July 17, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AddUpRechargeWin : Window { [SerializeField] ScrollerController m_Scroller; [SerializeField] Button m_CloseBtn; AddUpRechargeModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Scroller.OnRefreshCell += OnRefreshCell; //m_Recharge.SetListener(() => //{ // if (VersionConfig.Get().isBanShu) // { // SysNotifyMgr.Instance.ShowTip("FuncNoOpen_Nowaday"); // return; // } // if (FuncOpen.Instance.IsFuncOpen(113)) // { // ModelCenter.Instance.GetModel().OpenVipPayUI(VipModel.VipWinType.Pay); // } // else // { // FuncOpen.Instance.ProcessorFuncErrorTip(113); // } //}); m_CloseBtn.onClick.AddListener(() => { CloseImmediately(); WindowCenter.Instance.Open(); }); } protected override void OnPreOpen() { model.onRewardRecordUpdate += OnRewardRecordUpdate; } protected override void OnActived() { base.OnActived(); Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { model.onRewardRecordUpdate -= OnRewardRecordUpdate; } protected override void OnAfterClose() { } #endregion private void OnRewardRecordUpdate() { m_Scroller.m_Scorller.RefreshActiveCellViews(); } void Display() { var configs = AddUpRechargeConfig.GetValues(); var jumpIndex = 0; m_Scroller.Refresh(); foreach (var config in configs) { if (PlayerDatas.Instance.baseData.VIPLv >= config.VIPLimit) { m_Scroller.AddCell(ScrollerDataType.Header, config.RewardID); if (model.GetAddUpRechargeState(config.RewardID) == 1) { jumpIndex++; } } } jumpIndex = Mathf.Min(jumpIndex, configs.Count - 1); m_Scroller.Restart(); var offset = 0f; m_Scroller.JumpIndex(jumpIndex, ref offset); var rect = m_Scroller.mScrollRect.transform as RectTransform; m_Scroller.JumpIndex(offset - rect.rect.height / 2, 0, EnhancedUI.EnhancedScroller.EnhancedScroller.TweenType.immediate); } private void OnRefreshCell(ScrollerDataType type, CellView cell) { var rechargeCell = cell as AddUpRechargeBehaviour; rechargeCell.Display(cell.index); } } }