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 _base) { base.Set(_base); var sdata = ServerInfo.Ins.m_ServerData; m_Data = _base as MissionListTableData; var amount = sdata.Get_MissionCount(m_Data.n_MissionGroupId, m_Data.n_MissionIndex); images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_RewardValue); switch (m_Data.e_MissionConditionType) { case ePurpose.KILL_MONSTER: var mob = table_monsterlist.Ins.Get_Data_orNull(m_Data.n_MissionConditionValue); texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, m_Data.l_MissionConditionCount, mob.Get_Name()); break; case ePurpose.KILL_MONSTER_GRADE: case ePurpose.KILL_MONSTER_GRADE_ACC: switch (m_Data.n_MissionConditionValue) { case 1: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, m_Data.l_MissionConditionCount, table_localtext.Ins.Get_Text(297)); break; case 2: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, m_Data.l_MissionConditionCount, table_localtext.Ins.Get_Text(298)); break; case 3: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, m_Data.l_MissionConditionCount, table_localtext.Ins.Get_Text(299)); break; } break; case ePurpose.TAKE_GOODS: case ePurpose.TAKE_GOODS_ACC: case ePurpose.TAKE_GOODS_LIMIT: case ePurpose.CONSUME_GOODS: case ePurpose.CONSUME_GOODS_ACC: { var item = table_itemlist.Ins.Get_Data(m_Data.n_MissionConditionValue); texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, m_Data.l_MissionConditionCount, item.Get_Name()); } break; case ePurpose.ARRIVAL_MAP_LIMIT: var map = table_battlemapconfig.Ins.Get_Data(m_Data.n_MissionConditionValue); texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, map.Get_Name()); break; case ePurpose.HERO_ABILITY_UPGRADE_CLASS_LIMIT: //switch (m_Data.n_MissionConditionValue) //{ // case 1: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1001)); break; // case 2: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1011)); break; // case 3: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1021)); break; // case 4: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1031)); break; // case 5: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1021)); break; // case 6: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1031)); break; //} texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, m_Data.l_MissionConditionCount, (eBattleType)m_Data.n_MissionConditionValue); break; case ePurpose.CLASS_OPEN_LIMIT: var classData = table_classopencondition.Ins.Get_MissionData(m_Data.n_MissionConditionValue); texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, classData.Get_Name()); break; case ePurpose.HERO_AWAKEN_ACC: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, m_Data.l_MissionConditionCount, (eMainStatType)(m_Data.n_MissionConditionValue - 1)); break; case ePurpose.GET_EQUIP_ITEM_GRADE_ACC: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, m_Data.l_MissionConditionCount, MyText.Get_GradeName(m_Data.n_MissionConditionValue)); break; case ePurpose.SKILL_UPGRADE_LIMIT: var skill = table_skilllist.Ins.Get_Data_orNull(m_Data.n_MissionConditionValue); texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, skill.Get_Name()); break; case ePurpose.CONTENTS_CLEAR: switch (m_Data.n_MissionConditionValue) { case 1: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1001)); break; case 2: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1011)); break; case 3: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1021)); break; case 4: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, table_localtext.Ins.Get_Text(1031)); break; } break; default: texts[0].text = DSUtil.Format(m_Data.n_MissionDesc, m_Data.l_MissionConditionCount); break; } 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); Set_Complete(); } 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.CanGet_Mission(m_Data.n_MissionGroupId, m_Data.n_MissionIndex)) { sdata.Add_Item(m_Data.n_RewardValue, m_Data.n_RewardCount); sdata.Add_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex); sdata.Add_MissionCompletCount(m_Data.n_MissionGroupId); Set_Complete(); } else Popup.Ins.Set(ePopupType.One, 174, null, null, "미션 보상 받을 수 없음"); } }