2025-05-18 01:04:31 +08:00

161 lines
3.6 KiB
C#

// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-01-03
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "RankingWindow.View" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
namespace G.UI
{
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
///
/// </summary>
partial class RankingWindow
{
#region Field
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
Button _btnClose;
[KUIFlag]
KUIList __listRankings;
[KUIFlag]
GameObject __goMyRanking;
[KUIFlag]
KUIToggleGroup _goPages;
#pragma warning restore CS0649 // 从未对字段“”赋值,字段将一直保持其默认值 null
RankingWidget _myRanking;
private int _curRankingId = RankingProxy.ENDLESS_RANKING_ID;
#endregion
#region Method
/// <summary>
///
/// </summary>
public void InitView()
{
this.SetViewData();
_btnClose.onClick.AddListener(this.OnCloseBtnClick);
__listRankings.AddTemplate<RankingWidget>(true);
_myRanking = __goMyRanking.AddComponent<RankingWidget>();
_goPages.onToggleSelected.AddListener(this.OnToggleIndexChanged);
_goPages.toggles[1].gameObject.SetActive(false);
_goPages.toggles[2].gameObject.SetActive(false);
}
/// <summary>
///
/// </summary>
public void RefreshView()
{
var toggles = _goPages.toggles;
if ("sword".Equals(this.data))
{
toggles[0].gameObject.SetActive(false);
toggles[1].gameObject.SetActive(false);
toggles[2].gameObject.SetActive(false);
toggles[3].gameObject.SetActive(true);
_curRankingId = RankingProxy.SWORD_RANKING_ID;
PullRanking();
return;
}
toggles[0].gameObject.SetActive(true);
toggles[1].gameObject.SetActive(FunctionProxy.Instance.GetFunctionUnlock(FunctionProxy.FunctionId.Pet_Rank));
toggles[2].gameObject.SetActive(FunctionProxy.Instance.GetFunctionUnlock(FunctionProxy.FunctionId.Battle_Rank));
toggles[3].gameObject.SetActive(false);
if ("endless".Equals(this.data))
{
if (!toggles[0].isOn)
{
toggles[0].isOn = true;
return;
}
}
if ("pet".Equals(this.data))
{
if (!toggles[1].isOn)
{
toggles[1].isOn = true;
return;
}
}
PullRanking();
}
void PullRanking()
{
ServerProxy.Instance.PullRanking(_curRankingId, OnGetData);
}
private void OnGetData(int error, string message)
{
var myRankingInfo = RankingProxy.Instance.GetMyRankingInfo(_curRankingId);
__listRankings.Clear();
var rankingInfos = RankingProxy.Instance.GetRankingInfos(_curRankingId);
if (rankingInfos != null)
{
foreach (var item in rankingInfos)
{
__listRankings.GetItem().SetData(item);
if (item.isMy)
{
myRankingInfo.ranking = item.ranking;
}
}
}
_myRanking.SetData(myRankingInfo);
}
private void OnCloseBtnClick()
{
CloseWindow(this);
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OnToggleIndexChanged(int index)
{
if (index == 0)
{
_curRankingId = RankingProxy.ENDLESS_RANKING_ID;
PullRanking();
}
else if (index == 1)
{
_curRankingId = RankingProxy.PET_RANKING_ID;
PullRanking();
}
else if (index == 2)
{
_curRankingId = RankingProxy.BATTLE_RANKING_ID;
PullRanking();
}
}
#endregion
}
}