168 lines
3.6 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-01-03
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "MissionWindow.View" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
namespace G.UI
{
using UnityEngine;
using UnityEngine.UI;
/// <summary>
///
/// </summary>
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
/// <summary>
///
/// </summary>
public void InitView()
{
this.SetViewData();
_btnClose.onClick.AddListener(this.OnCloseBtnClick);
__listMissions.AddTemplate<MissionWidget>();
_btnOnekey.onClick.AddListener(this.OnOnekeyBtnClick);
_pageToggles = _goPages.GetComponentsInChildren<Toggle>();
for (int i = 0; i < _pageToggles.Length; i++)
{
_pageToggles[i].onValueChanged.AddListener(this.OnPageToggleValueChanged);
}
}
/// <summary>
///
/// </summary>
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);
}
}
/// <summary>
///
/// </summary>
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
}
}