Project_WL/Assets/Script/UI/Center/Title/TitleUI.cs

134 lines
4.9 KiB
C#

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);
}
}