// *********************************************************************** // Assembly : Game // Author : Kimch // Created : 2021-01-03 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** namespace G.UI { using UnityEngine; using UnityEngine.UI; /// /// /// partial class MissionWindow { public const string DAILY_PANEL = "daily"; public const string ACHIEVEMENT_PANEL = "achievement"; #region Field #pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null [KUIFlag] Button _btnClose; [KUIFlag] KUIList __listMissions; [KUIFlag] Button _btnOnekey; [KUIFlag] GameObject _goPages; [KUIFlag] GameObject _goTips; [KUIFlag] GameObject _goTitle1; [KUIFlag] GameObject _goTitle2; #pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null private Toggle[] _pageToggles; private int _pageIndex = -1; #endregion #region Method /// /// /// public void InitView() { this.SetViewData(); _btnClose.onClick.AddListener(this.OnCloseBtnClick); __listMissions.AddTemplate(); _btnOnekey.onClick.AddListener(this.OnOnekeyBtnClick); _pageToggles = _goPages.GetComponentsInChildren(); for (int i = 0; i < _pageToggles.Length; i++) { _pageToggles[i].onValueChanged.AddListener(this.OnPageToggleValueChanged); } } /// /// /// public void RefreshView() { if (DAILY_PANEL.Equals(this.data)) { SetToggleOn(0); } else { SetToggleOn(1); } } private void SetToggleOn(int index) { if (!_pageToggles[index].isOn) _pageToggles[index].isOn = true; else { ShowPage(index, true); } } /// /// /// public void UpdateView() { } private void ShowPage(int index, bool force = false) { if (force || _pageIndex != index) { _pageIndex = index; __listMissions.Clear(); if (index == 0) { var dailies = MissionProxy.Instance.dailyMissions; foreach (var item in dailies) { __listMissions.GetItem().SetData(item); } //_goTitle2.SetActive(false); //_goTitle1.SetActive(true); _goTips.SetActive(true); } else if (index == 1) { var achievements = MissionProxy.Instance.achievements; foreach (var item in achievements) { if (!item.isRewarded && (item.prevMission == null || item.prevMission.isRewarded)) __listMissions.GetItem().SetData(item); } //_goTitle1.SetActive(false); //_goTitle2.SetActive(true); _goTips.SetActive(false); } } } private void OnCloseBtnClick() { CloseWindow(this); SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); } private void OnOnekeyBtnClick() { if (_pageIndex == 0) MissionProxy.Instance.OneKeyGainRewards(1, null); else if (_pageIndex == 1) MissionProxy.Instance.OneKeyGainRewards(2, null); SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); } private void OnPageToggleValueChanged(bool value) { if (value) { for (int i = 0; i < _pageToggles.Length; i++) { if (_pageToggles[i].isOn) { ShowPage(i); break; } } SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND); } } #endregion } }