using CodeStage.AntiCheat.ObscuredTypes; using System.Collections; using System.Collections.Generic; using UnityEngine; public class TitleUI : LobbyNonMenuBase { public GameObject[] gos; // 0 붙이기 버튼, 1 가이드 애로우, 2 젬 버튼 public UILabel[] labels; // 0 현재 착용, 1 설명, 2 보유효과, 3 붙이기, 4 선택 타이틀 이름, 5 젬 가격 public UISprite[] sprites; // 0 등급, 1 젬 버튼 public UISlider slider_proc; TitleCard m_SelectTitle; ObscuredInt m_Gem; public override void Set() { base.Set(); m_Gem = 0; m_Gem.RandomizeCryptoKey(); var lst = table_title.Ins.Get_DataList(); Set_ScrollView(lst); var equiptitle = ServerInfo.Ins.m_ServerData.Get_Common(eCommon.Title); for (int i = 0; i < list_CardBase.Count; i++) { var tc = list_CardBase[i] as TitleCard; if (tc.Get_Data().ID == equiptitle) { tc.OnClick_Select(); labels[0].text = tc.Get_Data().Name; Set_Coroutine(() => { if (tc.Get_Data().ID < 11) m_scrollview.ResetPosition(); else m_scrollview.SetDragAmount(0f, (float)tc.Get_Data().ID / lst.Count, false); }, Time.deltaTime); break; } } } public void SelectTitle(TitleCard _tc) { if (m_SelectTitle != null && m_SelectTitle != _tc) m_SelectTitle.UnSelect(); m_SelectTitle = _tc; var data = _tc.Get_Data(); labels[1].text = data.Desc; labels[2].text = data.Stat == eStat.None ? "없음" : DSUtil.Format("{0} {1}", MyText.Get_StatName(data.Stat), MyText.Get_StatValueText(data.Stat, data.StatValue)); sprites[0].spriteName = DSUtil.Format("titlegrade{0}", (int)data.Grade); labels[4].text = data.Name; var sdata = ServerInfo.Ins.m_ServerData; gos[0].SetActive(sdata.IsObtainItem(data.ID) && sdata.Get_Common(eCommon.Title) != data.ID); if (sdata.Title.Find(f => f[0] == data.ID)[1] == 1) slider_proc.value = 1f; else { var a = sdata.Get_TitleCondition(data.ID); var b = data.ConditionValue < 1f ? 1f : data.ConditionValue; slider_proc.value = a / b; } gos[1].SetActive(data.ID == 94 && NewGameUI.Ins.m_GuideQuestUI.Get_Purpose() == ePurpose.ChangeTitle && ServerInfo.Ins.m_ServerData.Get_Common(eCommon.GuideClear) == 0); Cal_Gem(); } void Cal_Gem() { switch (m_SelectTitle.Get_Data().Grade) { case eItemGrade.Common: m_Gem = 100; break; case eItemGrade.Magic: m_Gem = 200; break; case eItemGrade.Rare: m_Gem = 400; break; case eItemGrade.Unique: m_Gem = 600; break; case eItemGrade.Epic: m_Gem = 1000; break; case eItemGrade.Legend: m_Gem = 1500; break; case eItemGrade.Myth: m_Gem = 2000; break; } int ID = m_SelectTitle.Get_Data().ID; if (ID == 1 || ID == 94) m_Gem = 0; else if (ID == 2) m_Gem = 2000; m_Gem.RandomizeCryptoKey(); labels[5].text = m_Gem.ToString(); var sdata = ServerInfo.Ins.m_ServerData; var isGet = sdata.Title.Find(f => f[0] == ID)[3] > 0; var isObtain = sdata.IsObtainItem(ID); gos[2].SetActive(m_Gem > 0 && !isGet); if (gos[2].activeSelf) sprites[1].spriteName = m_Gem > 0 && !isGet && isObtain ? "button5" : MyValue.OffButtonName; } public void OnClick_Equip() { if (gos[0].activeInHierarchy) { ServerInfo.Ins.m_ServerData.Set_Common(eCommon.Title, m_SelectTitle.Get_Data().ID); Set(); if (m_SelectTitle.Get_Data().ID == 94) { NewGameUI.Ins.m_GuideQuestUI.Add_GuideQuest(ePurpose.ChangeTitle); gos[1].SetActive(false); } } } public void OnClick_Get() { if (gos[2].activeSelf && sprites[1].spriteName.Equals("button5")) { var sdata = ServerInfo.Ins.m_ServerData; int ID = m_SelectTitle.Get_Data().ID; var titlesdata = sdata.Title.Find(f => f[0] == ID); titlesdata[3] = 1; titlesdata[3].RandomizeCryptoKey(); var obtain = sdata.Add_Item(new ItemData(eItem.Gem, 0, m_Gem, "title " + ID, eUICardType.GetItem)); GetItemUI.Ins.Set(obtain); GetItemUI.Ins.Show_Items(); Cal_Gem(); } } public override void OnClick_Back() { base.OnClick_Back(); TitleGetUI.list_gettitle.Clear(); GameUI.Ins.LobbyUI.Set_Noti(); GuideQuestArrow.Ins.gos_arrow[31].gos[0].SetActive(NewGameUI.Ins.m_GuideQuestUI.Get_Purpose() == ePurpose.ChangeTitle && ServerInfo.Ins.m_ServerData.Get_Common(eCommon.GuideClear) == 0); } }