Project_WL/Assets/Script/UI/Mission/MissionCard.cs

74 lines
2.5 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class MissionCard : CardBase
{
public Image[] images; // 0 보상 아이콘, 1 보상 버튼
public TextMeshProUGUI[] texts; // 0 조건, 1 보상수량, 2 진행상황
public Slider slider_proc;
public GameObject[] gos; // 0 완료
MissionListTableData m_Data;
public override void Set<T>(T _base)
{
base.Set(_base);
m_Data = _base as MissionListTableData;
bool active = isProceesing();
if (active)
{
images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_RewardValue);
texts[0].text = m_Data.Get_Desc();
Set_Proc();
Set_Complete();
}
else
gameObject.SetActive(false);
}
bool isProceesing()
{
if (m_Data.e_LinkedQuestType == eLinkedQuestType.None) return true;
var sdata = ServerInfo.Ins.m_ServerData;
if (m_Data.e_LinkedQuestType == eLinkedQuestType.Last)
{
if (sdata.Get_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex - 1) > 0)
return true;
}
else if (m_Data.e_LinkedQuestType == eLinkedQuestType.Ing)
return sdata.Get_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex - 1) > 0 &&
sdata.Get_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex) == 0;
else if (m_Data.e_LinkedQuestType == eLinkedQuestType.First)
return sdata.Get_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex) == 0;
return false;
}
void Set_Proc()
{
var sdata = ServerInfo.Ins.m_ServerData;
var amount = sdata.Get_MissionCount(m_Data.n_MissionGroupId, m_Data.n_MissionIndex);
texts[1].text = m_Data.n_RewardCount.ToString();
texts[2].text = $"{amount}/{m_Data.l_MissionConditionCount}";
slider_proc.value = DSUtil.Get_SliderValue(amount / (float)m_Data.l_MissionConditionCount);
}
void Set_Complete()
{
gos[0].SetActive(ServerInfo.Ins.m_ServerData.Get_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex) > 0);
}
public virtual void OnClick_GetReward()
{
var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.Get_MissionReward(m_Data))
{
NewGameUI.Ins.m_MissionUI.Set_UI();
Set_Complete();
}
else
Popup.Ins.Set(ePopupType.One, 174, null, null, "미션 보상 받을 수 없음");
}
}