Project_WL/Assets/Script/UI/Collection/Equipment/CollectionEquipmentCard.cs

66 lines
2.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class CollectionEquipmentCard : CardBase
{
public Image[] images; // 0 등급, 1 아이콘
public TextMeshProUGUI[] texts; // 0 이름, 1 보유효과, 2 보유/필요
public Slider slider_proc;
public GameObject go_getreward, go_selected;
CollectionListTableData m_Data;
public override void Set<T>(T _base)
{
base.Set(_base);
m_Data = _base as CollectionListTableData;
var sdata = ServerInfo.Ins.m_ServerData;
var itemData = table_itemlist.Ins.Get_Data(m_Data.n_TargetValue);
if (DSUtil.CheckNull(itemData)) return;
images[0].sprite = UIAtlasMgr.Ins.Get_GradeSprite(itemData.n_ItemGrade);
images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(itemData.n_ItemID);
texts[0].text = table_itemlist.Ins.Get_ItemName(itemData.n_ItemID);
texts[1].text = m_Data.n_RepeatRewardValue;
var amount = sdata.Get_ItemAmount(m_Data.n_TargetValue);
var lv = sdata.Get_CollectionLv(m_Data.n_TargetValue);
var count = m_Data.Get_ConditionCount(lv);
texts[2].text = $"{amount}/{count}";
slider_proc.value = DSUtil.Get_SliderValue((float)(amount / count));
go_getreward.SetActive(amount >= count);
go_selected.SetActive(false);
}
public override TableDataBase Get_Data() { return m_Data; }
bool CanGet(bool showtoast)
{
var sdata = ServerInfo.Ins.m_ServerData;
var lv = sdata.Get_CollectionLv(m_Data.n_TargetValue);
return sdata.Check_ItemAmount(m_Data.n_TargetValue, m_Data.Get_ConditionCount(lv), showtoast);
}
public void OnClick_Card()
{
CollectionEquipmentUI.Ins.Set_SelectCard(this);
}
public void OnClick_GetReward()
{
if (CanGet(true))
{
var sdata = ServerInfo.Ins.m_ServerData;
var lv = sdata.Get_CollectionLv(m_Data.n_TargetValue);
sdata.Use_Item(m_Data.n_TargetValue, m_Data.Get_ConditionCount(lv));
sdata.Add_CollectionLv(m_Data.n_TargetValue);
OnClick_Card();
CollectionEquipmentUI.Ins.Set_UI();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
}
}
}