Files
back_cantanBuilding/Assets/Scripts/Duel/UI/DuelInfoPopupPanel/DuelInfoPopupPanel.cs
2026-05-26 16:15:54 +08:00

115 lines
4.8 KiB
C#

using asap.core;
using cfg;
using game;
using GameCore;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class DuelInfoPopupPanel : MonoBehaviour
{
Image icon_rank;
Head head;
Head head1;
TMP_Text text_info;
List<Image> icon_ranks;
List<TMP_Text> txt_ranks;
List<TMP_Text> text_points;
DuelRankRewardItem duelRankRewardItem;
DuelRankRewardItem duelRankRewardItem1;
FishingEventData fishingEventData;
IUserService userService;
IUIService uiService;
private void Awake()
{
fishingEventData = GContext.container.Resolve<FishingEventData>();
userService = GContext.container.Resolve<IUserService>();
uiService = GContext.container.Resolve<IUIService>();
icon_rank = transform.Find("root/page1/info1/btn_rank/icon").GetComponent<Image>();
head = transform.Find("root/page1/info3/btn_head").GetComponent<Head>();
head1 = transform.Find("root/page2/info3/player_info/btn_head").GetComponent<Head>();
text_info = transform.Find("root/page1/info1/text_info").GetComponent<TMP_Text>();
icon_ranks = new List<Image>();
txt_ranks = new List<TMP_Text>();
text_points = new List<TMP_Text>();
for (int i = 1; i < 8; i++)
{
icon_ranks.Add(transform.Find($"root/page3/info1/rank/rank{i}/btn_green/icon_rank").GetComponent<Image>());
txt_ranks.Add(transform.Find($"root/page3/info1/rank/rank{i}/btn_green/text_rank").GetComponent<TMP_Text>());
text_points.Add(transform.Find($"root/page3/info1/rank/rank{i}/btn_green/text_point").GetComponent<TMP_Text>());
}
duelRankRewardItem = transform.Find("root/page3/info2/item1").GetComponent<DuelRankRewardItem>();
duelRankRewardItem1 = transform.Find("root/page3/info2/item2").GetComponent<DuelRankRewardItem>();
}
private void Start()
{
uiService.SetImageSprite(icon_rank, fishingEventData.rankInit.Icon);
string title = LocalizationMgr.GetText(fishingEventData.rankInit.Title_l10n_key);
text_info.text = LocalizationMgr.GetFormatTextValue("UI_EventFishingDuelPanel_51", title);
head.SetData(userService.AvatarUrl);
head1.SetData(userService.AvatarUrl);
var data = GContext.container.Resolve<Tables>().TbEventSolomain.DataList;
for (int i = 0; i < txt_ranks.Count; i++)
{
txt_ranks[i].text = LocalizationMgr.GetText(data[i].RankText_l10n_key);
text_points[i].text = data[i].TrophyRange[0].ToString();
uiService.SetImageSprite(icon_ranks[i], data[i].RankIcon);
}
ShowReward();
}
void ShowReward()
{
List<EventSolomain> eventSolomain = GContext.container.Resolve<Tables>().TbEventSolomain.DataList;
int count = eventSolomain.Count;
int index = count / 2;
EventSolomain solomain = eventSolomain[index];
uiService.SetImageSprite(duelRankRewardItem.icon_rank, solomain.RankIcon);
duelRankRewardItem.text_rank.text = LocalizationMgr.GetText(solomain.RankText_l10n_key);
duelRankRewardItem.text_point.text = solomain.TrophyRange[0].ToString();
List<ItemData> rewardItemData = GContext.container.Resolve<PlayerItemData>()
.GetItemDataByDropId(solomain.SeasonReward);
if (rewardItemData != null)
{
int dataCount = rewardItemData.Count;
int rewardCount = duelRankRewardItem.rewardItems.Count;
for (int j = 0; j < rewardCount; j++)
{
if (j < dataCount)
{
duelRankRewardItem.rewardItems[j].SetData(rewardItemData[j]);
}
else
{
duelRankRewardItem.rewardItems[j].gameObject.SetActive(false);
}
}
}
solomain = eventSolomain[index - 1];
uiService.SetImageSprite(duelRankRewardItem1.icon_rank, solomain.RankIcon);
duelRankRewardItem1.text_rank.text = LocalizationMgr.GetText(solomain.RankText_l10n_key);
duelRankRewardItem1.text_point.text = solomain.TrophyRange[0].ToString();
rewardItemData = GContext.container.Resolve<PlayerItemData>()
.GetItemDataByDropId(solomain.SeasonReward);
if (rewardItemData != null)
{
int dataCount = rewardItemData.Count;
int rewardCount = duelRankRewardItem1.rewardItems.Count;
for (int j = 0; j < rewardCount; j++)
{
if (j < dataCount)
{
duelRankRewardItem1.rewardItems[j].SetData(rewardItemData[j]);
}
else
{
duelRankRewardItem1.rewardItems[j].gameObject.SetActive(false);
}
}
}
}
}