Project_WL/Assets/Script/UI/Collection/Relic/RelicCard.cs

68 lines
2.3 KiB
C#
Raw Normal View History

2024-12-15 01:39:39 +00:00
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class RelicCard : CardBase
{
2025-03-14 06:09:43 +00:00
public Image[] images; // 0 유물, 1 bg
2024-12-15 01:39:39 +00:00
public GameObject go_Need; // 필요 유물 갯수 (별 없을 때)
2025-03-14 03:06:16 +00:00
public Slider slider_Need;
2025-07-15 19:19:41 +00:00
public TextMeshProUGUI[] texts; // 0 필요 유물 갯수 (별 없을 때), 1 유물 이름, 2 능력치, 3 능력치 값
2024-12-15 01:39:39 +00:00
public Transform tf_starParent;
public GameObject go_star;
RelicListTableData m_Data;
List<GameObject> list_star = new List<GameObject>();
public override void Set<T>(T _base)
{
if (list_star.Count == 0)
{
var maxstar = table_GlobalValue.Ins.Get_Int("n_RelicMaxStar");
for (int i = 0; i < maxstar; i++)
list_star.Add(DSUtil.Get_Clone(go_star, tf_starParent));
}
base.Set(_base);
m_Data = _base as RelicListTableData;
var sdata = ServerInfo.Ins.m_ServerData;
var star = sdata.Get_RelicStar(m_Data.n_RelicID);
2025-03-14 03:06:16 +00:00
images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_RelicID);
2025-07-15 19:19:41 +00:00
//images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(star > 0 ? "pet list slot" : "slot lock 3");
2024-12-15 01:39:39 +00:00
texts[1].text = m_Data.Get_Name();
for (int i = 0; i < list_star.Count; i++)
list_star[i].SetActive(star > i);
if (star > 0)
{
go_Need.SetActive(false);
}
else
{
go_Need.SetActive(true);
texts[0].text = $"{sdata.Get_ItemAmount(m_Data.n_RelicID)}/{m_Data.n_FirstOpenCost}";
2025-03-14 03:06:16 +00:00
slider_Need.value = DSUtil.Get_SliderValue((float)sdata.Get_ItemAmount(m_Data.n_RelicID) / m_Data.n_FirstOpenCost);
2024-12-15 01:39:39 +00:00
}
2025-07-15 19:19:41 +00:00
var lvData = table_optionconfig.Ins.Get_Data(m_Data.n_DefaultOptionID);
texts[2].text = MyText.Get_StatName(lvData.e_OptionType);
texts[3].text = MyText.Get_StatValueText(lvData.e_OptionType, lvData.Get_Value(sdata.Get_RelicLv(m_Data.n_RelicID)));
Set_Selected(false);
}
public override void Set_Selected(bool active)
{
images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(active ? "slot 2" : "slot 1");
2024-12-15 01:39:39 +00:00
}
public override TableDataBase Get_Data() { return m_Data; }
2025-07-15 19:19:41 +00:00
public override int Get_IntData() { return m_Data.n_RelicID; }
2024-12-15 01:39:39 +00:00
public void OnClick_Relic()
{
2025-07-15 19:19:41 +00:00
CollectionRelicUI.Ins.Set(this);
2024-12-15 01:39:39 +00:00
}
}