//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, December 08, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class DungeonNuwaRuleWin : Window { [SerializeField] Button m_ViewRule; [SerializeField] Button m_ViewReward; [SerializeField] Transform m_ContainerRule; [SerializeField] ScrollerController m_FloorController; [SerializeField] Transform m_ContainerReward; [SerializeField] ScrollerController m_RewardController; [SerializeField] Button m_Close; int m_SelectIndex = 0; int selectIndex { get { return m_SelectIndex; } set { if (m_SelectIndex != value) { m_SelectIndex = value; Display(); } } } PlayerMainDate mainModel { get { return ModelCenter.Instance.GetModel(); } } DungeonNuwaModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_FloorController.OnRefreshCell += OnRefreshFloorCell; m_RewardController.OnRefreshCell += OnRefreshRewardCell; m_ViewRule.AddListener(() => { selectIndex = 0; }); m_ViewReward.AddListener(() => { selectIndex = 1; }); m_Close.AddListener(CloseClick); } protected override void OnPreOpen() { m_SelectIndex = 0; Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion void Display() { m_ContainerRule.SetActive(selectIndex == 0); m_ContainerReward.SetActive(selectIndex == 1); DisplayButtonState(); switch (selectIndex) { case 0: DisplayFloorRule(); break; case 1: DisplayRewards(); break; } } void DisplayFloorRule() { if (m_FloorController.GetNumberOfCells(m_FloorController.m_Scorller) == 0) { m_FloorController.Refresh(); for (int i = 1; i <= model.floorCount; i++) { m_FloorController.AddCell(ScrollerDataType.Header, i); } m_FloorController.Restart(); } else { m_FloorController.m_Scorller.RefreshActiveCellViews(); m_FloorController.JumpIndex(0); } } void DisplayRewards() { if (m_RewardController.GetNumberOfCells(m_RewardController.m_Scorller) == 0) { m_RewardController.Refresh(); for (int i = 1; i <= model.floorCount; i++) { m_RewardController.AddCell(ScrollerDataType.Header, i); } m_RewardController.Restart(); } else { m_RewardController.m_Scorller.RefreshActiveCellViews(); m_RewardController.JumpIndex(0); } } void DisplayButtonState() { m_ViewRule.image.SetSprite(selectIndex == 0 ? "XT_SZ_22" : "XT_SZ_23"); m_ViewReward.image.SetSprite(selectIndex == 1 ? "XT_SZ_22" : "XT_SZ_23"); } private void OnRefreshFloorCell(ScrollerDataType type, CellView cell) { var nuwaRuleCell = cell as NuwaRuleFloorCell; nuwaRuleCell.Display(cell.index); } private void OnRefreshRewardCell(ScrollerDataType type, CellView cell) { var nuwaRewardCell = cell as NuwaRuleRewardCell; nuwaRewardCell.Display(cell.index); } } }