Project_WL/Assets/Script/UI/Collection/Monster/CollectionMonsterCard.cs

65 lines
2.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class CollectionMonsterCard : 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 mobData = table_monsterlist.Ins.Get_Data_orNull(m_Data.n_TargetValue);
images[0].sprite = UIAtlasMgr.Ins.Get_GradeSprite(1);
images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(mobData.n_MonsterID);
texts[0].text = mobData.Get_Name();
texts[1].text = m_Data.n_RepeatRewardValue;
var amount = sdata.Get_CollectionMobKill(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.Get_CollectionMobKill(m_Data.n_TargetValue) >= m_Data.Get_ConditionCount(lv);
}
public void OnClick_Card()
{
CollectionMonsterUI.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_CollectionMobKill(m_Data.n_TargetValue, m_Data.Get_ConditionCount(lv));
sdata.Add_CollectionLv(m_Data.n_TargetValue);
OnClick_Card();
CollectionMonsterUI.Ins.Set_UI();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
}
}
}