//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, December 21, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class KingFairyAllotWin : Window { [SerializeField] Button m_LevelBtn; [SerializeField] Button m_DutyBtn; [SerializeField] Button m_ContributeBtn; [SerializeField] Button m_CloseBtn; [SerializeField] ScrollerController scrollerController; FairyModel m_Model; FairyModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_LevelBtn.onClick.AddListener(() => { OnClickSort(1); }); m_DutyBtn.onClick.AddListener(() => { OnClickSort(2); }); m_ContributeBtn.onClick.AddListener(() => { OnClickSort(3); }); m_CloseBtn.onClick.AddListener(CloseClick); } protected override void OnPreOpen() { PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += RefreshFairyMember; model.IsOnAllot = true; model.sortType = 3; model.up = false; RefreshFairyMember(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= RefreshFairyMember; } protected override void OnAfterClose() { model.IsOnAllot = false; } #endregion private void OnClickSort(int type) { model.OnSort(type); if (model.sortFairyMembers.Count > 0) { scrollerController.m_Scorller.RefreshActiveCellViews(); } } private void RefreshFairyMember() { model.sortFairyMembers.Clear(); scrollerController.Refresh(); PlayerFairyData.FairyData fairy = PlayerDatas.Instance.fairyData.fairy; if (fairy != null) { List list = fairy.Member; if (list != null) { model.sortFairyMembers.AddRange(list); } model.sortFairyMembers.Sort(model.Compare); for (int i = 0; i < model.sortFairyMembers.Count; i++) { scrollerController.AddCell(i % 2 == 0 ? ScrollerDataType.Header : ScrollerDataType.Normal, i); } } scrollerController.Restart(); } } }