87 lines
3.1 KiB
C#
87 lines
3.1 KiB
C#
using asap.core;
|
|
using cfg;
|
|
using GameCore;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class EventFishingDuelRankPopupPanel : MonoBehaviour
|
|
{
|
|
List<Button> buttons;
|
|
List<Image> icon_ranks;
|
|
List<TMP_Text> txt_ranks;
|
|
List<TMP_Text> text_points;
|
|
List<GameObject> selecteds;
|
|
List<RewardItemNew> rewardItemNews;
|
|
List<EventSolomain> data;
|
|
Button btn_close;
|
|
FishingDuelManager fishingDuelManager;
|
|
private void Awake()
|
|
{
|
|
fishingDuelManager = GContext.container.Resolve<FishingDuelManager>();
|
|
buttons = new List<Button>();
|
|
icon_ranks = new List<Image>();
|
|
txt_ranks = new List<TMP_Text>();
|
|
text_points = new List<TMP_Text>();
|
|
selecteds = new List<GameObject>();
|
|
for (int i = 1; i < 8; i++)
|
|
{
|
|
buttons.Add(transform.Find($"root/rank{i}/btn_green").GetComponent<Button>());
|
|
icon_ranks.Add(transform.Find($"root/rank{i}/btn_green/icon_rank").GetComponent<Image>());
|
|
txt_ranks.Add(transform.Find($"root/rank{i}/btn_green/text_rank").GetComponent<TMP_Text>());
|
|
text_points.Add(transform.Find($"root/rank{i}/btn_green/text_point").GetComponent<TMP_Text>());
|
|
selecteds.Add(transform.Find($"root/rank{i}/btn_green/selected").gameObject);
|
|
}
|
|
|
|
rewardItemNews = new List<RewardItemNew>();
|
|
Transform layout_reward = transform.Find("root/layout_reward");
|
|
for (int i = 0; i < layout_reward.childCount; i++)
|
|
{
|
|
rewardItemNews.Add(layout_reward.GetChild(i).GetComponent<RewardItemNew>());
|
|
}
|
|
|
|
btn_close = transform.Find("btn_close").GetComponent<Button>();
|
|
}
|
|
void Start()
|
|
{
|
|
data = GContext.container.Resolve<Tables>().TbEventSolomain.DataList;
|
|
IUIService uiService = GContext.container.Resolve<IUIService>();
|
|
for (int i = 0; i < buttons.Count; i++)
|
|
{
|
|
int index = 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);
|
|
buttons[i].onClick.AddListener(() => SetRewardPanel(index));
|
|
if (data[i].RankTier == fishingDuelManager.eventSolomain.RankTier)
|
|
{
|
|
SetRewardPanel(index);
|
|
}
|
|
}
|
|
btn_close.onClick.AddListener(() => UIManager.Instance.DestroyUI(UITypes.EventFishingDuelRankPopupPanel));
|
|
|
|
}
|
|
|
|
void SetRewardPanel(int index)
|
|
{
|
|
var rank = data[index];
|
|
List<ItemData> itemDatas = GContext.container.Resolve<PlayerItemData>().GetItemDataByDropId(rank.WinReward);
|
|
for (int i = 0; i < rewardItemNews.Count; i++)
|
|
{
|
|
if (i < itemDatas.Count)
|
|
{
|
|
rewardItemNews[i].SetData(itemDatas[i]);
|
|
}
|
|
else
|
|
{
|
|
rewardItemNews[i].gameObject.SetActive(false);
|
|
}
|
|
}
|
|
for (int i = 0; i < selecteds.Count; i++)
|
|
{
|
|
selecteds[i].SetActive(i == index);
|
|
}
|
|
}
|
|
}
|