Files
ft/Client/Assets/Scripts/Duel/UI/EventFishingDuelRankChangePopupPanel.cs
2026-06-29 21:18:33 +08:00

110 lines
4.0 KiB
C#

using asap.core;
using cfg;
using GameCore;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class EventFishingDuelRankChangePopupPanel : BasePanel
{
Button closeButton;
Button mask;
GameObject rankUpPanel;
GameObject rankDownPanel;
Image last_icon_rank;
TMP_Text last_text_rank;
Image this_icon_rank;
TMP_Text this_text_rank;
Image next_icon_rank;
TMP_Text next_text_rank;
Animation ani;
private void Awake()
{
ani = GetComponent<Animation>();
mask = transform.Find("mask").GetComponent<Button>();
closeButton = transform.Find("btn_close").GetComponent<Button>();
rankUpPanel = transform.Find("root_promote").gameObject;
rankDownPanel = transform.Find("root_demote").gameObject;
closeButton.onClick.AddListener(ClosePanel);
//mask.onClick.AddListener(ClosePanel);
}
public void SetRank(bool isUp, EventSolomain solomain)
{
var _tables = GContext.container.Resolve<Tables>();
var data = _tables.TbEventSolomain.DataList;
int count = data.Count;
EventSolomain lastSolomain = null;
EventSolomain thisSolomain = null;
EventSolomain nextSolomain = null;
int index = solomain.RankTier - 1;
GameObject root = rankUpPanel;
if (isUp)
{
rankUpPanel.SetActive(true);
rankDownPanel.SetActive(false);
if (index >= 2)
{
lastSolomain = data[index - 2];
ani.Play("EventFishingDuelRankChangePromotedShow");
}
else
{
ani.Play("EventFishingDuelRankChangePromotedLastShow");
}
if (index >= 1)
{
thisSolomain = data[index - 1];
}
nextSolomain = solomain;
}
else
{
rankUpPanel.SetActive(false);
rankDownPanel.SetActive(true);
root = rankDownPanel;
lastSolomain = solomain;
if (index + 1 < count)
{
thisSolomain = data[index + 1];
}
if (index + 2 < count)
{
nextSolomain = data[index + 2];
ani.Play("EventFishingDuelRankChangeDemoteShow");
}
else
{
ani.Play("EventFishingDuelRankChangeDemotedFirstShow");
}
}
if (lastSolomain != null)
{
last_icon_rank = root.transform.Find("object_last_rank/icon_last_rank").GetComponent<Image>();
last_text_rank = root.transform.Find("object_last_rank/text_rank").GetComponent<TMP_Text>();
GContext.container.Resolve<IUIService>().SetImageSprite(last_icon_rank, lastSolomain.RankIcon);
last_text_rank.text = LocalizationMgr.GetText(lastSolomain.RankText_l10n_key);
}
if (thisSolomain != null)
{
this_icon_rank = root.transform.Find("object_this_rank/icon_this_rank").GetComponent<Image>();
this_text_rank = root.transform.Find("object_this_rank/text_rank").GetComponent<TMP_Text>();
GContext.container.Resolve<IUIService>().SetImageSprite(this_icon_rank, thisSolomain.RankIcon);
this_text_rank.text = LocalizationMgr.GetText(thisSolomain.RankText_l10n_key);
}
if (nextSolomain != null)
{
next_icon_rank = root.transform.Find("object_next_rank/icon_next_rank").GetComponent<Image>();
next_text_rank = root.transform.Find("object_next_rank/text_rank").GetComponent<TMP_Text>();
GContext.container.Resolve<IUIService>().SetImageSprite(next_icon_rank, nextSolomain.RankIcon);
next_text_rank.text = LocalizationMgr.GetText(nextSolomain.RankText_l10n_key);
}
}
async void ClosePanel()
{
ani.Play("popup_common_out");
await Awaiters.Seconds(0.25f);
UIManager.Instance.DestroyUI(UITypes.EventFishingDuelRankChangePopupPanel);
}
}