//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, April 18, 2019 //-------------------------------------------------------- using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class FamilyRechargeConnWin : Window { [SerializeField] Text actTime; [SerializeField] Button gotoBtn; [SerializeField] ScrollerController m_Controller; [SerializeField] Text rechargeNames; FamilyRechargeConnModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { gotoBtn.AddListener(() => { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc1); }); } protected override void OnPreOpen() { m_Controller.OnRefreshCell += OnRefreshCell; GlobalTimeEvent.Instance.secondEvent += secondEvent; model.UpdateAwardEvent += UpdateAwardEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyMine; DisplayScroll(); secondEvent(); DisplayName(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { m_Controller.OnRefreshCell -= OnRefreshCell; GlobalTimeEvent.Instance.secondEvent -= secondEvent; model.UpdateAwardEvent -= UpdateAwardEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyMine; } protected override void OnAfterClose() { } #endregion void DisplayScroll() { OperationFamilyRechargeConn act; OperationTimeHepler.Instance.TryGetOperation(FamilyRechargeConnModel.operaType, out act); int jumpIndex = -1; int jumpIndex2 = -1; // 未激活 m_Controller.Refresh(); for (int i = 0; i < act.needPlayers.Count; i++) { m_Controller.AddCell(ScrollerDataType.Header, i); int state = model.GetAwardState(i); if (jumpIndex == -1 && state == 1) { jumpIndex = i; } if (jumpIndex2 == -1 && state == 0) { jumpIndex2 = i; } } m_Controller.Restart(); if (jumpIndex == -1) { jumpIndex = jumpIndex2; } m_Controller.JumpIndex(jumpIndex); } private void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); if (_cell != null) { _cell.Display(cell.index); } } void secondEvent() { OperationFamilyRechargeConn act; OperationTimeHepler.Instance.TryGetOperation(FamilyRechargeConnModel.operaType, out act); actTime.text = Language.Get("BossFHLanguage2", TimeUtility.SecondsToHMS(act.GetResetSurplusTime())); } void UpdateAwardEvent() { DisplayName(); m_Controller.m_Scorller.RefreshActiveCellViews(); } private void DisplayName() { List names = new List(); for (int i = 0; i < model.rechargePlayerIDs.Count; i++) { var member = PlayerDatas.Instance.fairyData.GetMember(model.rechargePlayerIDs[i]); if (member != null) { names.Add(member.Name); } else { names.Add(Language.Get("L2024")); } } rechargeNames.text = StringUtility.Contact(Language.Get("FamilyRechargeTogether5"), " ", string.Join(", ", names)); } void OnRefreshFairyMine() { if(!PlayerDatas.Instance.fairyData.HasFairy) { CloseClick(); } } } }